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.
-
Inspect the repository before changing it:
- Read its agent instructions.
- Check and preserve unrelated changes.
- Identify the package manager from and lockfiles.
- Find Oxlint configuration (, , 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:
bash
node <skill-directory>/scripts/install.mjs
This creates
. 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
after backing up and reviewing existing files.
-
Install current compatible dependencies rather than trusting versions remembered by the agent:
- Query and
npm view @oxlint/plugins version
.
- Install the same current version of both packages with the repository's package manager.
- is a development dependency. The copied source imports , so install it as a development dependency for a local-only plugin.
- Do not replace the package manager or rewrite unrelated dependency ranges.
-
Register the plugin and enable all rules. For
or
, add:
ts
jsPlugins: [
{ name: "anti-slop", specifier: "./tools/oxlint/anti-slop/index.ts" },
],
For Vite+, add that same entry to
. Merge it with existing entries instead of replacing them.
json
{
"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-object-parameters": "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-type-aliases": "error",
"anti-slop/no-unsafe-dictionary-type": "error",
"anti-slop/no-widen-then-assert": "error"
}
-
Run the repository's lint command and typecheck. If findings appear, 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.
When replacing an older local copy, compare its rules and diagnostics before overwriting. Keep project-specific rules in their own plugin; anti-slop is intentionally generic. Prefer inference,
,
, named owner contracts, and boundary parsing when resolving findings.