install-anti-slop
Install, configure, update, or upgrade vendored anti-slop Oxlint plugins
Install / Use
npx skills add dmmulroy/anti-slop --skill install-anti-slopInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Development & EngineeringSupported Platforms
Our assessment of install-anti-slop
install-anti-slop scores 80/100 on our quality scale, 1370th of 2,569 Development & Engineering skills we index.
Its SKILL.md is 8.5 KB long, split into 3 sections and no code examples: a thorough specification that gives an agent plenty to work with.
With 4,930 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 16 days ago, so install-anti-slop is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
install-anti-slop compared with similar skills
All 4 of these similar skills score higher than install-anti-slop; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| install-anti-slop (this skill)by dmmulroy | 80 | 4.9k | 16d ago | SKILL.md |
| Agent-Reachby Panniantong | 100 | 85.6k | 11d ago | CLAUDE.md |
| ai-job-searchby MadsLorentzen | 100 | 44.0k | 6d ago | CLAUDE.md |
| claude-howtoby luongnv89 | 100 | 41.7k | today | CLAUDE.md |
| algorithmic-artby anthropics | 100 | 177.9k | 4d ago | SKILL.md |
Frequently asked questions
- How do I install install-anti-slop?
- Run
npx skills add dmmulroy/anti-slop --skill install-anti-slop. The install tabs above show the steps for each supported agent. - Which AI agents does install-anti-slop work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is install-anti-slop safe to use?
- It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is install-anti-slop still maintained?
- The repository was last updated 16 days ago, so install-anti-slop is actively maintained.
Skill content
View source on GitHubname: install-anti-slop description: Install, configure, update, or upgrade vendored anti-slop Oxlint plugins. Use when adding anti-slop, picking up upstream rules or fixes, or migrating an existing installation while preserving local customizations.
Install or update anti-slop
Anti-slop is vendored code: the target repository owns its rules, diagnostics, tests, and configuration. Preserve those choices when bringing in upstream changes.
Choose the path
Read the repository's agent instructions and git status. Identify its package manager, Oxlint/Vite+ configuration, and any existing anti-slop entry points, including renamed or relocated copies referenced by jsPlugins.
- Existing installation — update, upgrade, migrate, or reconfigure: read Update a vendored installation and follow that procedure instead of the fresh-install steps below.
- No installation — fresh install: follow the procedure below. If the user requested an update but no installation can be found, confirm the target before installing.
Complete when the operation and target path are established and pre-existing work is identified.
Fresh install
-
Copy the bundled plugin from this skill. Run from the target repository:
node <skill-directory>/scripts/install.mjsThis creates
tools/oxlint/anti-slop/. Pass another relative destination as the first argument when the repository has an established tooling layout. The script refuses to replace an existing destination; route existing copies through the update procedure rather than--force.Preserve the nested
vendor/eslint-stylistic/LICENSEandUPSTREAM.md; they travel with the copied rule. Readability enforcement is self-contained and requires no Stylistic plugin dependency.Complete when the files, including vendored license and provenance, exist at the agreed destination without replacing an existing copy.
-
Install current compatible dependencies rather than trusting versions remembered by the agent:
- If the repository already depends on
oxlint, read its installed version from the package manager or lockfile and install@oxlint/pluginsat exactly that version. Pin it exactly rather than by range so future upgrades move both packages together. - Only when the repository has no
oxlintdependency, querynpm view oxlint versionandnpm view @oxlint/plugins version, then install the same current version of both packages. oxlintis a development dependency. The copied source imports@oxlint/plugins, so install it as a development dependency for a local-only plugin.- Do not replace the package manager or rewrite unrelated dependency ranges.
Complete when matching compatible versions are installed and unrelated dependency ranges are preserved.
- If the repository already depends on
-
Register the generic plugin, configure ignores, and enable all generic rules. For
oxlint.config.tsor.oxlintrc.json, merge these fields with the existing configuration:ignorePatterns: [ ".agent/**", ".agents/**", ".claude/**", ".codex/**", ".continue/**", ".cursor/**", ".gemini/**", ".opencode/**", ".pi/**", ".roo/**", ".windsurf/**", "tools/oxlint/anti-slop/**", ], jsPlugins: [ { name: "anti-slop", specifier: "./tools/oxlint/anti-slop/index.ts" }, ],Keep every existing ignore. Adjust the final pattern when the plugin was copied elsewhere. Inspect the repository for other project-local agent tooling directories and add them rather than linting installed skills, hooks, or generated agent configuration as application source. Do not broadly ignore all dot-directories, because some repositories keep owned source or checks in them.
For Vite+, add these fields to
lint.ignorePatternsandlint.jsPlugins. Also merge the same patterns intofmt.ignorePatternssovp checkdoes not reformat installed agent assets or the vendored plugin. Merge existing entries instead of replacing them.Enable these rules at
"error", including the native Oxlint companion rule:{ "oxc/no-accumulating-spread": "error", "anti-slop/no-array-filter-map": "error", "anti-slop/no-reduce-accumulator-copy": "error", "anti-slop/no-chained-type-assertions": "error", "anti-slop/no-conditional-empty-object-spread": "error", "anti-slop/no-known-value-widening": "error", "anti-slop/no-module-mocking": "error", "anti-slop/no-object-parameters": "error", "anti-slop/no-reflect-apply": "error", "anti-slop/no-reflect-get": "error", "anti-slop/no-runtime-typeof": "error", "anti-slop/no-shape-in-symbol-names": "error", "anti-slop/no-unknown-parameters": "error", "anti-slop/no-unknown-returns": "error", "anti-slop/no-unknown-type-aliases": "error", "anti-slop/no-unsafe-dictionary-type": "error", "anti-slop/no-widen-then-assert": "error", "anti-slop/require-readable-spacing": "error", "anti-slop/require-safety-comment-for-type-assertion": "error" }For
no-array-filter-map, prefer lazy.values().filter(...).map(...).toArray()pipelines only when the target runtime supports iterator helpers; otherwise use an appropriate singleflatMapor locally mutating reducer. Review callback order, indexes, sparse arrays,thisArg, and filtering semantics rather than mechanically rewriting chains. Unknown receiver types are deliberately not inferred by this AST/scope rule.Pair
no-reduce-accumulator-copywith nativeoxc/no-accumulating-spread: the custom rule catches supported non-spread copies such asObject.assign({}, acc, item),Array.from(acc), and array accumulatorconcat/slicecalls. Mutating a fresh local accumulator is allowed; copying individual input items is also allowed. Named callbacks, indirect helpers, and nested accumulator properties are not fully analyzed, so do not claim all quadratic reducers are ruled out.If the repository declares
effectin a package manifest, or the user explicitly requests Effect rules, also register the opt-in Effect plugin:jsPlugins: [ { name: "anti-slop-effect", specifier: "./tools/oxlint/anti-slop/effect/index.ts", }, ], rules: { "anti-slop-effect/no-manual-effect-error-tag": "error", "anti-slop-effect/no-manual-tag-comparison": "error", "anti-slop-effect/no-manual-tagged-construction": "error", "anti-slop-effect/no-service-constructor-imports": "error", "anti-slop-effect/prefer-effect-match": "error", },Merge these entries with the generic plugin configuration rather than replacing it. Do not enable the Effect plugin merely because Effect appears transitively in a lockfile; require a direct package-manifest dependency or an explicit user request. The rule covers relative project imports. Report package-alias imports as a current limitation rather than pretending they are enforced.
Complete when the generic rules and eligible Effect rules are registered and existing configuration is preserved.
-
Run the repository's lint command and typecheck. For Vite+, run the repository's full
vp checkcommand after adding both lint and format ignores. If findings appear in owned project source, report them and fix them only when the user asked for migration/cleanup. Do not suppress rules, weaken rule severity, add unsafe casts, or mechanically launder types to make lint pass.When cleanup is authorized, apply
require-readable-spacingwith lint autofix, then run the repository's formatter and lint again. Confirm a second fix/format pass leaves files unchanged. Keep whitespace fixes separate from semantic edits, preserve documentation attachment and overload groups, and do not enable an entire competing formatting preset.Complete when checks have run, fix/format stability has been verified for authorized cleanup, and every failure is resolved or reported with its diagnostics.
-
Record provenance in
UPSTREAM.mdbeside the vendored entry point: source repository, exact source commit or recoverable pristine snapshot when available, installed plugin paths, and intentional deviations. Verify that the revision identifies the actual copied assets; a package version or the current upstream HEAD alone is insufficient. If provenance cannot be established, record it as unknown rather than guessing.Review the final diff and report the installed path, source identity, dependency/configuration changes, and check results. Complete when the record and report describe the files actually installed and any remaining findings.
Related Skills
Agent-Reach
85.6kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
ai-job-search
44.0kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
claude-howto
41.7kA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
