--- name: simplify description: Reduce a change to the minimum that solves the problem. Use when code is over-engineered or a diff is bloated. when_to_use: over-abstraction, a 200-line diff for a small ask, premature generality --- # Simplify Over-engineering is the default failure mode. Cut it: - **Premature abstraction** — a class/strategy/factory for one caller. Inline it. Abstract on the THIRD use, not the first. - **Speculative config** — a parameter/flag/env var for something that never changes. Hardcode it until there's a real reason. - **Dead flexibility** — an interface with one implementation, a generic with one type. Delete the indirection. - **Defensive noise** — null checks on values that can't be null, try/except for errors that can't happen. Handle only real failure modes. Test: can you justify every changed line by a direct connection to what was asked? If a line is there "while I was in there", revert it.