Code Quality
redis/RedisInsight
Code-quality standards for RedisInsight: TypeScript strictness, naming conventions (camelCase, PascalCase, UPPERSNAKECASE), linting rules, no any without reason, no !important in styles, and…
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.
$ npx skills add dmmulroy/anti-slop --skill install-anti-slop -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install dmmulroy/anti-slop install-anti-slop --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "install-anti-slop" agent skill from https://github.com/dmmulroy/anti-slop/tree/main/skills/install-anti-slop into .claude/skills/install-anti-slop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "install-anti-slop", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/dmmulroy/anti-slop/tree/main/skills/install-anti-slopType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add dmmulroy/anti-slop --skill install-anti-slop -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install dmmulroy/anti-slop install-anti-slop --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dmmulroy/anti-slop.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/install-anti-slop .agents/skills/install-anti-slop && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "install-anti-slop" agent skill from https://github.com/dmmulroy/anti-slop/tree/main/skills/install-anti-slop into .agents/skills/install-anti-slop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "install-anti-slop", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dmmulroy/anti-slop --skill install-anti-slop -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install dmmulroy/anti-slop install-anti-slop --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dmmulroy/anti-slop.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/install-anti-slop .cursor/skills/install-anti-slop && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "install-anti-slop" agent skill from https://github.com/dmmulroy/anti-slop/tree/main/skills/install-anti-slop into .cursor/skills/install-anti-slop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "install-anti-slop", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/dmmulroy/anti-slop.git --path skills/install-anti-slop--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add dmmulroy/anti-slop --skill install-anti-slop -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install dmmulroy/anti-slop install-anti-slop --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dmmulroy/anti-slop.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/install-anti-slop .gemini/skills/install-anti-slop && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "install-anti-slop" agent skill from https://github.com/dmmulroy/anti-slop/tree/main/skills/install-anti-slop into .gemini/skills/install-anti-slop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "install-anti-slop", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install dmmulroy/anti-slop install-anti-slopInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add dmmulroy/anti-slop --skill install-anti-slop -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/dmmulroy/anti-slop.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/install-anti-slop .github/skills/install-anti-slop && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "install-anti-slop" agent skill from https://github.com/dmmulroy/anti-slop/tree/main/skills/install-anti-slop into .github/skills/install-anti-slop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "install-anti-slop", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dmmulroy/anti-slop --skill install-anti-slop -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install dmmulroy/anti-slop install-anti-slop --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dmmulroy/anti-slop.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/install-anti-slop .opencode/skills/install-anti-slop && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "install-anti-slop" agent skill from https://github.com/dmmulroy/anti-slop/tree/main/skills/install-anti-slop into .opencode/skills/install-anti-slop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "install-anti-slop", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
install-anti-slopInstalls, 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. 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.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit c44ef22. It shows what the files ask for, not the result of running them.
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.
Ships 1 file in scripts/ (TypeScript, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
npmnodegitFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from dmmulroy/anti-slop at commit c44ef22, republished under its MIT licence (© dmmulroy). 882 words, ~2,174 tokens.
.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.Anti-slop is vendored code: the target repository owns its rules, diagnostics, tests, and configuration. Preserve those choices when bringing in upstream changes.
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.
Complete when the operation and target path are established and pre-existing work is identified.
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/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.
Install current compatible dependencies rather than trusting versions remembered by the agent:
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.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.Complete when matching compatible versions are installed and unrelated dependency ranges are preserved.
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:
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:
{
"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:
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 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.
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
SKILL.md and 45 other files (scripts, references, assets) in skills/install-anti-slop of dmmulroy/anti-slop.
Open the folder on GitHubat commit c44ef22
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Install Anti-Slop Oxlint Rules this skilldmmulroy/anti-slop | 5.4k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Code Qualityredis/RedisInsight | 8.9k | — | ~1.2k | Automated safety check: Pass | Custom licence | |
| Prepare Rslint npm Releaseweb-infra-dev/rslint | 461 | — | ~1.5k | Automated safety check: Pass | MIT | |
| Fallow Setupfallow-rs/fallow-skills | 128 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Plankton Code Qualityaffaan-m/ECC | 277k | 2 repos | ~1.3k | Automated safety check: Pass | MIT | |
| Dx Code Analyzer Custom Rule Createforcedotcom/sf-skills | 1.1k | — | ~9.9k | Automated safety check: Pass | Apache-2.0 |
redis/RedisInsight
Code-quality standards for RedisInsight: TypeScript strictness, naming conventions (camelCase, PascalCase, UPPERSNAKECASE), linting rules, no any without reason, no !important in styles, and…
web-infra-dev/rslint
Prepare a stable release PR for the unified rslint npm packages by updating package versions and rule/TypeScript release metadata.
fallow-rs/fallow-skills
Set up or modernize code-quality tooling for JavaScript and TypeScript projects.
affaan-m/ECC
使用Plankton进行编写时代码质量强制执行——通过钩子在每次文件编辑时自动格式化、代码检查和Claude驱动的修复。
forcedotcom/sf-skills
Create custom Code Analyzer rules for Regex (pattern matching), PMD (XPath/AST for Apex and metadata XML), and ESLint (LWC/JavaScript/TypeScript).
jeremylongshore/tons-of-skills-marketplace
Execute automatically formats and validates code files using Prettier and other formatting tools.
Works with
Categories
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.