Agent skill

Install Anti-Slop Oxlint Rules

by dmmulroy in dmmulroy/anti-slop

Installs, updates or migrates the vendored anti-slop Oxlint plugin in a repository, keeping local rule changes and the plugin's license and provenance files.

MITAuto-check passedDevelopment

Install Install Anti-Slop Oxlint Rules

skills CLI
$ npx skills add dmmulroy/anti-slop --skill install-anti-slop -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install dmmulroy/anti-slop install-anti-slop --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/dmmulroy/anti-slop.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/install-anti-slop .claude/skills/install-anti-slop && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
install-anti-slop
GitHub stars
5.4k
Token cost
~2.2k tokens
SKILL.md length
882 words
Files
46 (incl. scripts, references, assets)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Installs, updates or migrates the vendored anti-slop Oxlint plugin in a repository, keeping local rule changes and the plugin's license and provenance files.

  • Works in 5 steps: Copy the bundled plugin from this skill.… → Install current compatible dependencies… → Register the generic plugin, configure… → …
  • Adding anti-slop Oxlint rules to a TypeScript repository
  • SKILL.md covers Choose the path and Fresh install
  • Runs TypeScript scripts from its folder; calls npm, node and git

What it does

Anti-slop is copied into the target repository as vendored code, so the repository owns its rules, diagnostics, tests and configuration. The agent first reads the repository's agent instructions and `git status`, identifies the package manager, the Oxlint configuration and any existing copies, including renamed ones referenced by `jsPlugins`, and chooses between a fresh install and an update. For an existing installation it follows the update reference instead of the install steps.

A fresh install runs `scripts/install.mjs` from the target repository, which creates `tools/oxlint/anti-slop/` or another relative destination you pass, and refuses to overwrite an existing copy. The vendored stylistic license and `UPSTREAM.md` stay with the copy. The agent then installs `@oxlint/plugins` pinned to exactly the repository's installed `oxlint` version or, if there is no `oxlint`, the current version of both as development dependencies, without changing the package manager or unrelated ranges. Bundled rules target patterns such as chained type assertions, module mocking and object parameters, with a separate set for Effect code.

When your agent uses it

  • Adding anti-slop Oxlint rules to a TypeScript repository
  • Picking up upstream rule fixes without losing local customizations
  • Migrating an older or relocated anti-slop copy to the current layout

Example prompts

  • “Install anti-slop in this repo and wire it into the Oxlint config.”
  • “Update our vendored anti-slop plugin to the latest upstream rules but keep our custom rule changes.”
  • “Find where anti-slop lives in this repo and migrate it to the new layout.”

Requirements

  • Node.js, for the install script
  • A repository that uses Oxlint, or one that will add it

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Copy the bundled plugin from this skill. Run from the target repository
  2. Install current compatible dependencies rather than trusting versions remembered by the agent
  3. Register the generic plugin, configure ignores, and enable all generic rules. For oxlint.config.ts or .oxlintrc.json, merge these fields…
  4. Run the repository's lint command and typecheck. For Vite+, run the repository's full vp check command after adding both lint and format…
  5. Record provenance in UPSTREAM.md beside the vendored entry point: source repository, exact source commit or recoverable pristine snapshot…

What it can do on your machine

Read from SKILL.md and the folder at commit c44ef22. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (TypeScript, from the files we listed), which the agent can run.

    Shell commands in SKILL.md call:

    • npm
    • node
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm and git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Install Anti-Slop Oxlint Rules loads about 2.2k tokens when it runs, and up to ~4.4k if it reads all its reference files. Until then it costs about 58 tokens; SKILL.md has 882 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~58
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from dmmulroy/anti-slop at commit c44ef22, republished under its MIT licence (© dmmulroy). 882 words, ~2,174 tokens.

Download SKILL.mdSave it as .claude/skills/install-anti-slop/SKILL.md (or your agent's skills folder). This skill also uses 45 other files; get the full folder from GitHub.
name
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

  1. Copy the bundled plugin from this skill. Run from the target repository:

    bash
    node <skill-directory>/scripts/install.mjs

    This 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/LICENSE and UPSTREAM.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.

  2. 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/plugins at exactly that version. Pin it exactly rather than by range so future upgrades move both packages together.
    • Only when the repository has no oxlint dependency, query npm view oxlint version and npm view @oxlint/plugins version, then install the same current version of both packages.
    • oxlint is 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.

  3. Register the generic plugin, configure ignores, and enable all generic rules. For oxlint.config.ts or .oxlintrc.json, merge these fields with the existing configuration:

    ts
    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.ignorePatterns and lint.jsPlugins. Also merge the same patterns into fmt.ignorePatterns so vp check does 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:

    json
    {
      "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 single flatMap or 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-copy with native oxc/no-accumulating-spread: the custom rule catches supported non-spread copies such as Object.assign({}, acc, item), Array.from(acc), and array accumulator concat/slice calls. 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 effect in a package manifest, or the user explicitly requests Effect rules, also register the opt-in Effect plugin:

    ts
    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.

  4. Run the repository's lint command and typecheck. For Vite+, run the repository's full vp check command 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-spacing with 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.

  5. Record provenance in UPSTREAM.md beside 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.

© dmmulroy, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 45 other files (scripts, references, assets) in skills/install-anti-slop of dmmulroy/anti-slop.

  • SKILL.md
  • assets/anti-slop/effect/index.ts
  • assets/anti-slop/effect/rules/no-manual-effect-error-tag.ts
  • assets/anti-slop/effect/rules/no-manual-tag-comparison.ts
  • assets/anti-slop/effect/rules/no-manual-tagged-construction.ts
  • assets/anti-slop/effect/rules/no-service-constructor-imports.ts
  • assets/anti-slop/effect/rules/prefer-effect-match.ts
  • assets/anti-slop/effect/shared/tagged-values.ts
  • assets/anti-slop/index.ts
  • assets/anti-slop/rules/no-array-filter-map.ts
  • assets/anti-slop/rules/no-chained-type-assertions.ts
  • assets/anti-slop/rules/no-conditional-empty-object-spread.ts
  • assets/anti-slop/rules/no-known-value-widening.ts
  • assets/anti-slop/rules/no-module-mocking.ts
  • assets/anti-slop/rules/no-object-parameters.ts
  • … and 31 more

Open the folder on GitHubat commit c44ef22

Compare with similar skills

Install Anti-Slop Oxlint Rules next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Install Anti-Slop Oxlint Rules compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Install Anti-Slop Oxlint Rules this skilldmmulroy/anti-slop5.4k—~2.2kAutomated safety check: PassMIT
Code Qualityredis/RedisInsight8.9k—~1.2kAutomated safety check: PassCustom licence
Prepare Rslint npm Releaseweb-infra-dev/rslint461—~1.5kAutomated safety check: PassMIT
Fallow Setupfallow-rs/fallow-skills128—~1.1kAutomated safety check: PassMIT
Plankton Code Qualityaffaan-m/ECC277k2 repos~1.3kAutomated safety check: PassMIT
Dx Code Analyzer Custom Rule Createforcedotcom/sf-skills1.1k—~9.9kAutomated safety check: PassApache-2.0

Similar skills

  • Code Quality

    redis/RedisInsight

    Official

    Code-quality standards for RedisInsight: TypeScript strictness, naming conventions (camelCase, PascalCase, UPPERSNAKECASE), linting rules, no any without reason, no !important in styles, and…

    8.9k GitHub stars~1.2k tokensUpdated 6 days ago
    DevelopmentAuto-check passed
  • Prepare Rslint npm Release

    web-infra-dev/rslint

    Prepare a stable release PR for the unified rslint npm packages by updating package versions and rule/TypeScript release metadata.

    461 GitHub stars~1.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Fallow Setup

    fallow-rs/fallow-skills

    Set up or modernize code-quality tooling for JavaScript and TypeScript projects.

    128 GitHub stars~1.1k tokensUpdated today
    DevelopmentAuto-check passed
  • 使用Plankton进行编写时代码质量强制执行——通过钩子在每次文件编辑时自动格式化、代码检查和Claude驱动的修复。

    277k GitHub starsUsed in 2 repos~1.3k tokens
    DevelopmentAuto-check passed
  • Create custom Code Analyzer rules for Regex (pattern matching), PMD (XPath/AST for Apex and metadata XML), and ESLint (LWC/JavaScript/TypeScript).

    1.1k GitHub stars~9.9k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Code Formatter

    jeremylongshore/tons-of-skills-marketplace

    Execute automatically formats and validates code files using Prettier and other formatting tools.

    2.8k GitHub stars~1.2k tokensUpdated yesterday
    DevelopmentAuto-check passed

Categories

Questions about Install Anti-Slop Oxlint Rules

What does Install Anti-Slop Oxlint Rules do?

Installs, updates or migrates the vendored anti-slop Oxlint plugin in a repository, keeping local rule changes and the plugin's license and provenance files. Anti-slop is copied into the target repository as vendored code, so the repository owns its rules, diagnostics, tests and configuration. The agent first reads the repository's agent instructions and `git status`, identifies the package manager, the Oxlint configuration and any existing copies, including renamed ones referenced by `jsPlugins`, and chooses between a fresh install and an update.

When should I use Install Anti-Slop Oxlint Rules?

Install Anti-Slop Oxlint Rules fits situations like: adding anti-slop Oxlint rules to a TypeScript repository; picking up upstream rule fixes without losing local customizations; migrating an older or relocated anti-slop copy to the current layout.

How do I install Install Anti-Slop Oxlint Rules in Claude Code?

Run `npx skills add dmmulroy/anti-slop --skill install-anti-slop -a claude-code`. Or copy the skill folder (skills/install-anti-slop in dmmulroy/anti-slop) into .claude/skills/install-anti-slop in your project. Claude Code loads it when a task matches its description.

How do I install Install Anti-Slop Oxlint Rules in Codex?

Run `npx skills add dmmulroy/anti-slop --skill install-anti-slop -a codex`. Or copy the skill folder (skills/install-anti-slop in dmmulroy/anti-slop) into .agents/skills/install-anti-slop in your project. Codex loads it when a task matches its description.

Can I use Install Anti-Slop Oxlint Rules in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dmmulroy/anti-slop --skill install-anti-slop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/install-anti-slop, .gemini/skills/install-anti-slop, .github/skills/install-anti-slop and .opencode/skills/install-anti-slop in your project.

What does Install Anti-Slop Oxlint Rules need to run?

Going by SKILL.md and its folder, Install Anti-Slop Oxlint Rules needs TypeScript for the scripts in its folder and the command-line tools its instructions call (npm, node and git). Our summary lists: Node.js, for the install script; A repository that uses Oxlint, or one that will add it.

Does Install Anti-Slop Oxlint Rules access the network?

SKILL.md contains no URLs. Its commands use npm and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Install Anti-Slop Oxlint Rules safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Install Anti-Slop Oxlint Rules use?

Install Anti-Slop Oxlint Rules is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Install Anti-Slop Oxlint Rules use?

About 2.2k tokens (SKILL.md is roughly 8.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.2k tokens, read only when the agent opens those files.

What are the alternatives to Install Anti-Slop Oxlint Rules?

Skills that share tags, products or a category with Install Anti-Slop Oxlint Rules: Code Quality (redis/RedisInsight, 8.9k stars), Prepare Rslint npm Release (web-infra-dev/rslint, 461 stars), Fallow Setup (fallow-rs/fallow-skills, 128 stars) and Plankton Code Quality (affaan-m/ECC, 277k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Install Anti-Slop Oxlint Rules?

dmmulroy (a GitHub user) maintains it in dmmulroy/anti-slop, which has 5,388 GitHub stars. The repository was last updated on September 10, 2026.

Source: dmmulroy/anti-slop on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.