install-anti-slop

Installs and configures the anti-slop Oxlint plugin in TypeScript and JavaScript repositories.

3|Updated Nov 8, 2014
One-click install
npx skills add https://github.com/mintuz/.dotfiles --skill install-anti-slop-mintuz
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: install-anti-slop
Source: https://github.com/mintuz/.dotfiles/tree/main/agents/.agents/skills/install-anti-slop
Command: npx skills add https://github.com/mintuz/.dotfiles --skill install-anti-slop-mintuz

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires oxlint, @oxlint/plugins, and includes scripts (resource) and assets (resource) components.

What problem does it solve? Setting up a custom Oxlint plugin with opinionated TypeScript lint rules requires copying plugin source, installing matching dependency versions, and carefully merging configuration without breaking existing lint setups. This Skill automates that entire installation and migration process while preserving unrelated work in the repository. ## Core Features & Use Cases - Bundled Plugin Installation: Copies the anti-slop Oxlint plugin (15 rules rejecting low-evidence TypeScript patterns like chained assertions, unknown parameters, and unsafe dictionary types) into the target repository via a deterministic script. - Configuration Merging: Registers the plugin in oxlint.config.*, .oxlintrc*, or Vite+ configs, merging ignore patterns and enabling all rules at error severity without overwriting existing settings. - Dependency Management: Queries npm for current compatible versions of oxlint and @oxlint/plugins and installs them with the repository's own package manager. - Use Case: A team wants to enforce stricter TypeScript hygiene across their monorepo. Run this Skill to vendor the anti-slop plugin, wire it into the existing Oxlint setup, and verify with the project's lint and typecheck commands. ## Quick Start Install the anti-slop Oxlint plugin into this repository and configure it with our existing lint setup.

Frequently Asked Questions about install-anti-slop

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add custom Oxlint rules to my TypeScript project?

Custom Oxlint rules are added as a jsPlugin by copying the plugin source into your repository and registering it in your Oxlint config under jsPlugins with a name and specifier path. This Skill copies the anti-slop plugin to tools/oxlint/anti-slop and merges the registration into your existing configuration.

What rules does the anti-slop Oxlint plugin enforce?

The plugin provides 15 rules targeting low-evidence TypeScript patterns, including no-chained-type-assertions, no-unknown-parameters, no-unknown-returns, no-unsafe-dictionary-type, no-module-mocking, no-runtime-typeof, and require-safety-comment-for-type-assertion. All rules are enabled at error severity during installation.

Does the anti-slop plugin work with Vite+ projects?

Yes, the plugin integrates with Vite+ by adding ignore patterns and jsPlugins to the lint configuration, and merging the same patterns into fmt.ignorePatterns so vp check does not reformat vendored plugin files. The full vp check command is run afterward to verify.

Will installing the plugin overwrite my existing Oxlint configuration?

No, the installation merges new fields with existing configuration and keeps every existing ignore pattern. The copy script refuses to replace an existing plugin destination unless --force is passed after reviewing the files.

What dependencies does the anti-slop plugin require?

The plugin requires oxlint and @oxlint/plugins installed as development dependencies at matching current versions. The Skill queries npm for the latest compatible versions and installs them using the repository's own package manager.

What should I do when lint findings appear after enabling anti-slop rules?

Findings in owned project source should be reported and fixed only when migration or cleanup was requested. Fixes should prefer inference, as const, satisfies, named owner contracts, and boundary parsing rather than suppressing rules or adding unsafe casts.