principle-subtract-before-you-add
cursor/plugins
Remove complexity first—delete dead code and redundancy before adding features or refactoring.
What is principle-subtract-before-you-add?
A design principle for sequencing changes: prioritize removing dead code, redundant validators, and stub references before building new features or refactoring. This leaves a simpler base that reveals essential structure and usually makes the next design obvious.
- Guides sequencing of removals before additions or refactors
- Identifies dead code, redundant validators, and stub references for deletion
- Simplifies prompts by removing redundant instructions and excessive templates
- Eliminates speculative edge-case handling that isn't in the spec
- Leaves designs simpler and more capable than found
How to install principle-subtract-before-you-add
npx skills add https://github.com/cursor/plugins --skill principle-subtract-before-you-addHow to use principle-subtract-before-you-add
- 1.Identify the change you plan to make (addition, refactor, or rewrite)
- 2.Audit the current codebase or prompt for dead code, redundant validators, and stub references
- 3.Remove identified complexity before starting construction
- 4.Build the new feature or refactor on the simpler base
- 5.Verify the design is now more obvious and maintainable
Use cases
- Planning a feature addition—first audit and remove unused code
- Refactoring a complex module—cut before polishing
- Simplifying an agent prompt—remove redundant instructions and templates
- Reviewing validators and guards—delete those beyond spec requirements
- Evaluating references and documentation—remove stubs with no novel content
- Software architects planning refactors
- Developers managing technical debt
- Prompt engineers optimizing agent instructions
- Teams adopting incremental simplification practices
principle-subtract-before-you-add FAQ
Apply it when sequencing any addition, refactor, or rewrite. Make removal your first step before construction.
Look for dead code (unreachable or unused), redundant validators (beyond spec), stub references (no novel content), and speculative edge cases not in the requirements.
No. It means remove first to simplify the base, then build on that cleaner foundation. The goal is to add to less complexity.
Yes. Simplify prompts by removing redundant instructions, excessive templates, and speculative guards that aren't required by the spec.
Stop when the design is clear, the spec is met, and further removal would break functionality or violate requirements.
Full instructions (SKILL.md)
Source of truth, from cursor/plugins.
name: principle-subtract-before-you-add description: "Apply when sequencing an addition, refactor, or rewrite. Remove dead code, redundant validators, and stub references first, then build on the simpler base." disable-model-invocation: true
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
Related skills
More from cursor/plugins and the wider catalog.

principle-type-system-discipline
Apply type-system discipline to eliminate impossible states and catch bugs at compile time.

recall
Reconstruct your recent working context from chat history and shared records to resume work efficiently.

reflect
Mine conversations for durable learnings and route them into skill edits.

review-and-ship
Review code for bugs and intent fit, run tests, and open or update a PR.

run-smoke-tests
Run Playwright smoke tests, debug failures, and verify fixes

setup-pstack
Agent skill from cursor/plugins.