# content-redundant-with-tooling Detect instructions that duplicate .editorconfig, ESLint, Prettier, or tsconfig settings | | | |---|---| | **Severity** | warning (auto) | | **Autofix** | - | | **Since** | v0.7.0 | | **Category** | [Content Intelligence](content-intelligence.md) | ## Why Instructions that restate what `.editorconfig`, ESLint, Prettier, or `tsconfig.json` already enforce waste context budget without changing behavior — the tooling runs regardless of what the instruction file says. Worse, if the instruction and the config diverge, the model faces a contradiction it cannot resolve. ## Examples **Bad (when .editorconfig already sets indent_size = 2):** ```markdown Use 2-space indentation in all files. ``` **Good:** ```markdown Indentation is enforced by .editorconfig — do not override it. ``` Or simply remove the line entirely. ## How to fix Delete the redundant instruction. If you want the model to be aware of the setting, reference the config file instead of restating its contents. A coding agent can remove flagged lines automatically. ## Configuration ```yaml rules: content-redundant-with-tooling: enabled: auto # true | false | auto severity: warning ``` ## Research Basis **Detects instructions that duplicate what .editorconfig, ESLint, Prettier, or tsconfig already enforce.** When CLAUDE.md says "use 2-space indentation" and `.editorconfig` already specifies `indent_size = 2`, the instruction is redundant. Worse, it creates configuration drift risk: if someone updates `.editorconfig` to 4 spaces but forgets the CLAUDE.md, the model receives contradictory signals. Tooling enforcement is **deterministic** — it runs every time, without fail. Instruction-file enforcement is **probabilistic** — the model follows it most of the time, but not always. Restating deterministic rules as probabilistic instructions wastes context tokens and adds no reliability. **References:** - Levy, Jacoby & Goldberg, [Same Task, More Tokens](https://arxiv.org/abs/2402.14848) — Every redundant instruction consumes context budget - [Anthropic: Effective Context Engineering](https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents) — "One of the most common failure modes we see is bloated tool sets" — applies equally to bloated instructions - [Dotzlaw: Claude Code Hooks](https://www.dotzlaw.com/insights/claude-hooks/) — "CLAUDE.md instructions are advisory… Hooks are enforcement" *Run `skillsaw explain content-redundant-with-tooling` to see this documentation and the rule's effective configuration in your terminal.*