← ClaudeAtlas

subtraction-firstlisted

Use when improving existing code and the instinct is to add — a wrapper, a flag, a layer, a helper, a config option — before checking whether removing something is the better move; or when code feels bloated, over-engineered, or hard to hold in your head. Not for a full readability-and-elegance pass over working code — that's whittler
atgreen/hackinator · ★ 1 · AI & Automation · score 72
Install: claude install-skill atgreen/hackinator
# Subtraction-First ## Overview **Core principle:** Before adding anything, try to remove something. The best improvement is usually a deletion. Reach for subtraction *first* and adoption only when subtraction fails. Humans — and models — have a documented bias toward solving problems by adding rather than removing, even when removing is simpler and better. The bias is invisible from the inside, which is exactly why it needs a rule: **make deletion the default hypothesis, not the last resort.** ## The Question to Ask First Not "what should I add to make this better?" but: > **What could I remove and have this be *just as good or better*?** Run down the list before you write a single new line: - **Dead code** — unreachable branches, unused functions, commented-out graveyards. - **Unused parameters and options** — arguments nobody passes, flags nobody flips. - **Speculative generality** — abstraction built for a second caller that never arrived. - **Forwarding layers** — a wrapper whose whole job is to call one other thing. - **Defensive checks that can't fire** — guards against states the type system or callers already forbid. - **Comments that restate the code** — delete the comment or fix the name it's apologizing for. - **Whole features** — the option nobody uses is a cost everyone pays. Removing it is a feature. ## The Discipline ``` NO ADDITION UNTIL SUBTRACTION HAS BEEN TRIED AND FAILED ``` When you catch yourself about to add: 1. **State what you're about to