--- name: principle-subtract-before-you-add description: "Apply when new work would otherwise build on dead or redundant structure." license: MIT metadata: author: jstack-maintainers source: michael-denyer/pstack-claude source-version: "0.9.30" source-commit: 45f768349a6d7d7e71509fee3f5bccfad54b3bad owner: software-factory risk: low capabilities: jstack,engineering-principle user-invocable: false --- # Subtract Before You Add When evolving a system, remove complexity first, then build. **Why:** Adding to a complex system compounds complexity. Removing first leaves less code, reveals the essential structure, and usually makes the next design obvious. Default to subtraction. Make simplification a continual investment. Leave the design slightly simpler and more capable behind the same or smaller surface than you found it. **The pattern:** - Sequence removal before construction - Cut before you polish (get to the minimum before investing in quality) - Design for observed usage, not speculative edge cases - No speculative validators, parsers, or guards beyond what the spec demands - Simplify prompts (remove redundant instructions, excessive templates) - When a reference has no novel content, delete it rather than leaving a stub