Anti-slop
dmmulroy/anti-slop
Opinionated Oxlint rules that reject low-evidence TypeScript and JavaScript, installed by an agent skill.
Anti-slop is an MIT-licensed set of opinionated Oxlint rules from Dillon Mulroy that reject low-evidence and low-signal TypeScript and JavaScript patterns. The repo is meant to be vendored, not installed as an npm package. Its bundled install-anti-slop skill copies the rules into your repository, installs compatible Oxlint dependencies, merges the config and validates the result.
Facts checked on against the sources listed at the end of this page.
- GitHub stars
- 5,116
- Skills in the pack
- 1
- Agents supported
- 3The README shows the skills CLI install and does not name specific agents
- Instruction size
- 1k wordsacross its SKILL.md file
How to install Anti-slop
| Agent | Command | Copy |
|---|---|---|
| Any agent | Then ask your agent to install or configure anti-slop in the current repository. There is no official npm package. |
Commands as given in the README on 3 October 2026.
What is inside Anti-slop
| Skill or command | What it makes the agent do |
|---|---|
| install-anti-slop | Copies the plugin into your repo, installs matching Oxlint packages, merges the lint config, enables the generic rules and validates the result. |
The rules are the main part of the repo: 18 generic rules and 5 optional Effect rules. The skill also handles updates with a three-way merge that keeps your local changes.
What Anti-slop runs on your machine
| Hooks | None found in the repo. |
|---|---|
| Bundled scripts | Yes. The skill runs a Node install script that copies the plugin into tools/oxlint/anti-slop and refuses to overwrite an existing copy. It then installs dependencies with your package manager and runs validation. |
| Network calls | Yes, through your package manager. The skill installs oxlint and @oxlint/plugins at matching versions, and may query npm for current versions on a fresh install. |
| API keys needed | None named in the README. |
These are facts read from the repo, not a security rating. Read the files before you install any skill.
How much context Anti-slop uses
| The skill | 1,022 words in its SKILL.md file |
|---|---|
| Loaded at start | Only each skill's name and description. The full text loads when a task needs that skill. |
Word counts are measured from the repo every day. Reference files a skill loads on demand are not counted.
How Anti-slop works
The rules reject patterns such as adjacent array filter and map passes, chained type assertions, runtime typeof narrowing, parameters typed as unknown or object, and Vitest or Jest module mocking. One rule requires a nearby safety comment for each non-const type assertion. The rules use Oxlint's ESTree and scope APIs, not a TypeScript type checker.
The author says this is the ruleset he uses for his own work and team, so it reflects his taste and is not a universal standard. After the skill copies the files, they are yours to change. The README says community forks and packages are welcome but belong to their maintainers.
A good fit for
- TypeScript teams that already use Oxlint and want stricter rules against loosely typed code
- Developers who want rules they can read and change, since the plugin is vendored into the repo
- Teams that use Effect, because five optional rules cover tagged errors and Match
- Projects that want an agent to wire up the lint config and keep it updated
Skip it if
- Teams that want a versioned npm package, since the README says there is none
- Projects that do not use Oxlint or Vite+
- Anyone who wants a neutral standard, as the author calls the rules opinionated
Is Anti-slop still maintained?
| Last commit | , 3 weeks ago |
|---|---|
| Stars gained in 7 days | Shown after 7 days of tracking |
| Stars gained in 30 days | Shown after 30 days of tracking |
| Open issues and pull requests | 6 |
| Forks | 119 |
Tools Anti-slop works with
Questions about Anti-slop
Is Anti-slop an npm package?
No. The README says there is no official npm package. You copy the rules into your repo, and the install skill does that for you.
Is it free?
Yes. It is MIT licensed.
How do I update it?
Ask your agent to update anti-slop while preserving local customizations. The skill stages the incoming source separately and uses a three-way merge when the original snapshot can be recovered.
Does it need a TypeScript type checker?
No. The README says the rules use Oxlint's ESTree and lexical-scope APIs, so cross-file call signatures are not inferred.
Is there Effect support?
Yes. Five optional Effect rules live in a separate plugin, and the skill enables them in repositories that depend directly on Effect.