Skip to content

Anti-slop

dmmulroy/anti-slop

Opinionated Oxlint rules that reject low-evidence TypeScript and JavaScript, installed by an agent skill.

By Dillon MulroyMIT licenseWorks with 3 agentsCode quality and testing

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

AgentCommandCopy
Any agent
npx skills add dmmulroy/anti-slop --skill install-anti-slop

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 commandWhat it makes the agent do
install-anti-slopCopies 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

HooksNone found in the repo.
Bundled scriptsYes. 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 callsYes, 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 neededNone 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 skill1,022 words in its SKILL.md file
Loaded at startOnly 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 daysShown after 7 days of tracking
Stars gained in 30 daysShown after 30 days of tracking
Open issues and pull requests6
Forks119

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.

Sources

Anti-slop agent skill: install, what is inside and supported agents | ScratchDB