When linters penalize the most careful developers

The moment you write more than one external tool in your config, you switch from a single-line requires: codex to a YAML list: requires: - codex - gemini. Yet the linter was only looking at the first form, so anyone who followed YAML conventions got a false warning for “undeclared CLI,” while authors who ignored dependencies entirely sailed through untouched. Three releases, three inverted warnings—each time the rule landed on the engineers who had done the work to document their contracts.
The inverted rule paradox
Text-matching tools see mentions, not actions. A conscientious author’s AGENTS.md might say “only git push when the user asks” or “npm publish requires maintainer approval.” Those sentences contain the very keywords a rule is trained to spot, yet they describe policies, not violations. Meanwhile the careless file, which never mentions the operation at all, slips by unflagged. The base rate is against the linter: the more care a file shows, the more likely it contains the strings that trigger the alert.
Fixing the blind spot
One fix was to broaden the pattern matcher to accept both single and list forms of requires. Another was to exclude files that already contain policy language about “force” pushes or approval steps. After re-running the rules against 586 real skill files, the maintainer trimmed the false-positive rate to 0.7%, and every hit that remained was genuine. Yet the episode reveals a deeper truth: rules that rely on surface text can misclassify intent when good documentation looks like a violation.
Why it matters
Rule-based linters are cheap to deploy but expensive to tune. A single off-by-one pattern can flip the meaning of a warning from “you forgot” to “you cared too much.” Teams that ship automation without measuring its false-positive rate risk turning compliance into a game of whack-a-mole, where the most diligent engineers spend cycles arguing with their own tooling. The fix isn’t just regex patches; it’s asking whether the rule’s signal is aligned with the behavior you actually want to encourage.
Source: DEV Community. AI-assisted editorial synthesis — TechnoExpress.

