install-anti-slop
Install and configure the generic and optional Effect anti-slop Oxlint plugins in a local TypeScript or JavaScript repository. Use whenever a user asks to add anti-slop lint rules, copy the anti-slop plugin, configure opinionated Oxlint rules, or migrate an existing local anti-slop setup.
- License 许可
- MIT
- 最近更新
- 2026-11-14
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- name
- install-anti-slop
- description
- Install and configure the generic and optional Effect anti-slop Oxlint plugins in a local TypeScript or JavaScript repository. Use whenever a user asks to add anti-slop lint rules, copy the anti-slop plugin, configure opinionated Oxlint rules, or migrate an existing local anti-slop setup.
02 资源文件 25
- 脚本assets/anti-slop/effect/index.ts431 B
- 脚本assets/anti-slop/effect/rules/no-service-constructor-imports.ts1.6 KB
- 脚本assets/anti-slop/index.ts2.2 KB
- 脚本assets/anti-slop/rules/no-chained-type-assertions.ts2.5 KB
- 脚本assets/anti-slop/rules/no-conditional-empty-object-spread.ts1.5 KB
- 脚本assets/anti-slop/rules/no-known-value-widening.ts13.3 KB
- 脚本assets/anti-slop/rules/no-module-mocking.ts3.0 KB
- 脚本assets/anti-slop/rules/no-object-parameters.ts2.6 KB
- 脚本assets/anti-slop/rules/no-reflect-apply.ts926 B
- 脚本assets/anti-slop/rules/no-reflect-get.ts939 B
- 脚本assets/anti-slop/rules/no-runtime-typeof.ts2.3 KB
- 脚本assets/anti-slop/rules/no-shape-in-symbol-names.ts1.6 KB
- 脚本assets/anti-slop/rules/no-unknown-parameters.ts2.5 KB
- 脚本assets/anti-slop/rules/no-unknown-returns.ts2.8 KB
- 脚本assets/anti-slop/rules/no-unknown-type-aliases.ts1.5 KB
- 脚本assets/anti-slop/rules/no-unsafe-dictionary-type.ts4.5 KB
- 脚本assets/anti-slop/rules/no-widen-then-assert.ts12.0 KB
- 脚本assets/anti-slop/rules/require-safety-comment-for-type-assertion.ts3.9 KB
- 脚本assets/anti-slop/shared/dictionary-types.ts16.7 KB
- 脚本assets/anti-slop/shared/function-parameters.ts2.0 KB
- 脚本assets/anti-slop/shared/lexical-type-parameters.ts1.8 KB
- 脚本assets/anti-slop/shared/reflect-method.ts1.3 KB
- 脚本assets/anti-slop/shared/type-alias-resolution.ts7.5 KB
- 许可证LICENSE1.0 KB
- 脚本scripts/install.mjs17.7 KB
03 SKILL.md 正文
Install anti-slop
Install the bundled Oxlint plugin into the current repository and integrate it with the repository's existing lint setup. Preserve unrelated work and adapt to the project's package manager and configuration style.
This Development System adapter is the single contained entrypoint for the
vendored dmmulroy/anti-slop installer (upstream commit
e8c4880471b23ab7f216fba7b27d173a6ef07d4c, MIT). The pristine upstream
installer source is preserved unchanged under
artifacts/1.5.17/skills/upstream/install-anti-slop for provenance only;
always install through this adapter's contained scripts/install.mjs, never
with raw upstream bytes.
Containment contract
Run installs only with:
node <skill-directory>/scripts/install.mjs [relative-destination] [--force]
The installer refuses before any copy:
- absolute destinations;
- empty, dot (
.), or parent (..) path segments, including nested traversal such astools/../../outside; - backslash destinations (ambiguous across platforms);
- any symbolic link ancestor between the working directory and the destination, an existing symlink at the destination, any symbolic link already nested inside an existing destination (even with
--force), and a working directory reached through a symbolic link.
--force keeps its upstream meaning: it may overwrite an existing regular destination after review, but it never authorizes writing through a symlink or outside the working directory.
Procedure
-
Inspect the repository before changing it:
- Read its agent instructions.
- Check
git statusand preserve unrelated changes. - Identify the package manager from
packageManagerand lockfiles. - Find Oxlint configuration (
oxlint.config.*,.oxlintrc*, or a Vite+ config). - Check whether anti-slop files or rules already exist. Do not overwrite them without reviewing the diff.
-
Copy the bundled plugin from this skill. Run from the target repository:
node <skill-directory>/scripts/install.mjsThis creates
tools/oxlint/anti-slop/through the contained installer. Pass another relative destination as the first argument when the repository has an established tooling layout. The script refuses to replace an existing destination; only use--forceafter backing up and reviewing existing files. -
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.
- 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":{ "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-safety-comment-for-type-assertion": "error" }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-service-constructor-imports": "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.
-
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. -
Review the final diff and clearly report:
- copied path,
- dependency versions installed,
- configuration changed,
- checks run and any remaining findings.
Migration guidance
When replacing an older local copy, compare its rules and diagnostics before overwriting. Keep project-specific rules in their own plugin. The default anti-slop plugin is intentionally generic; framework-specific policy belongs in an explicit opt-in group such as anti-slop-effect. Prefer inference, as const, satisfies, named owner contracts, and boundary parsing when resolving findings.
04 同仓库更多 Skills
working-backwards
Define a software feature through PRFAQ and staged documents when the user requests working backwards before coding.
flow-implement
Implement a requested software change through verification, corrections, and its authorized delivery endpoint.
development-steward
Run the scheduled, read-only weekly maintenance review for the six explicitly opted-in repositories and prepare one concise private report for Check-in.
grill-with-docs
Run one recoverable interview for functional, visual, or mixed software grills; reuse equivalent answers and offer the shared HTML questionnaire.
global-agent-guardrails
Install, audit, test, or update the Development System's global destructive-command guard for Codex, Claude Code and T3 Code. Use when configuring agent safety hooks or investigating whether dangerous shell operations are blocked.
impeccable
Design or refine frontend UI using project context and a focused design playbook; also handles visual critique and polish.