anti-slop: Opinionated Oxlint rules

tosh1 pts0 comments

GitHub - dmmulroy/anti-slop: Opinionated Oxlint rules for rejecting low-evidence TypeScript and JavaScript patterns · GitHub

/" data-turbo-transient="true" />

Skip to content

Type / to search

Sign in<br>Sign upAppearance settings

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

dmmulroy

anti-slop

Public

Notifications<br>You must be signed in to change notification settings

Fork

Star<br>16

main

BranchesTags

Go to file

CodeOpen more actions menu

Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit

History<br>1 Commit<br>1 Commit

.github/workflows

.github/workflows

scripts

scripts

skills/install-anti-slop

skills/install-anti-slop

src

src

.gitignore

.gitignore

AGENTS.md

AGENTS.md

LICENSE

LICENSE

README.md

README.md

package.json

package.json

pnpm-lock.yaml

pnpm-lock.yaml

tsconfig.json

tsconfig.json

View all files

Repository files navigation

anti-slop

Opinionated Oxlint rules that reject low-evidence and low-signal TypeScript and JavaScript patterns.

The plugin is source-distributed for now. An npm release is planned; until then, use the bundled agent skill to copy and configure it in another repository.

Install with an agent skill

npx skills add dmmulroy/anti-slop --skill install-anti-slop

Then ask your coding agent to install or configure anti-slop in the current repository. The skill copies the plugin, installs current Oxlint dependencies, merges the plugin into the existing lint configuration, enables every rule, and validates the result.

To inspect available skills first:

npx skills add dmmulroy/anti-slop --list

Manual local installation

Copy src/ into the target repository, for example at tools/oxlint/anti-slop/, and install matching current versions of oxlint and @oxlint/plugins.

Register the copied entry point in oxlint.config.ts:

import { defineConfig } from "oxlint";

export default defineConfig({<br>jsPlugins: [<br>{ name: "anti-slop", specifier: "./tools/oxlint/anti-slop/index.ts" },<br>],<br>rules: {<br>"anti-slop/no-chained-type-assertions": "error",<br>"anti-slop/no-conditional-empty-object-spread": "error",<br>"anti-slop/no-known-value-widening": "error",<br>"anti-slop/no-object-parameters": "error",<br>"anti-slop/no-runtime-typeof": "error",<br>"anti-slop/no-shape-in-symbol-names": "error",<br>"anti-slop/no-unknown-parameters": "error",<br>"anti-slop/no-unknown-type-aliases": "error",<br>"anti-slop/no-unsafe-dictionary-type": "error",<br>"anti-slop/no-widen-then-assert": "error"<br>});

The same jsPlugins entry and rules work under lint in a Vite+ config.

Rules

no-chained-type-assertions — rejects nested type assertions that fabricate evidence.

no-conditional-empty-object-spread — rejects conditional spreads that use {} to omit fields.

no-known-value-widening — rejects explicit broad target types that discard known value evidence.

no-object-parameters — rejects the broad object type on function inputs.

no-runtime-typeof — requires boundary parsing instead of ad hoc typeof narrowing.

no-shape-in-symbol-names — rejects shape in symbol names.

no-unknown-parameters — rejects unknown inputs except the explicit cause convention.

no-unknown-type-aliases — rejects aliases that merely conceal unknown.

no-unsafe-dictionary-type — rejects dictionary value contracts based on unknown, any, object, {}, and semantic equivalents.

no-widen-then-assert — rejects local flows that widen known values and later assert them back.

Development

pnpm install<br>pnpm check

src/ is canonical. After changing production source, run pnpm sync:skill-assets; CI checks that the skill's bundled copy remains identical.

License

MIT

About<br>Opinionated Oxlint rules for rejecting low-evidence TypeScript and JavaScript patterns<br>Topics<br>agent-skillslintingoxlinttypescript<br>Resources<br>Readme<br>MIT license<br>Activity<br>Stars<br>16 stars<br>Watchers<br>1 watching<br>Forks<br>0 forks<br>Report repository

Releases

Packages

Contributors

Languages

You can’t perform that action at this time.

anti slop oxlint error type rejects

Related Articles