PluginBench
Skill
Pass
Audit score 90

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-add
Claude Code
Cursor
Windsurf
Cline

How to use principle-subtract-before-you-add

  1. 1.Identify the change you plan to make (addition, refactor, or rewrite)
  2. 2.Audit the current codebase or prompt for dead code, redundant validators, and stub references
  3. 3.Remove identified complexity before starting construction
  4. 4.Build the new feature or refactor on the simpler base
  5. 5.Verify the design is now more obvious and maintainable

Use cases

Good for
  • 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
Who it's for
  • Software architects planning refactors
  • Developers managing technical debt
  • Prompt engineers optimizing agent instructions
  • Teams adopting incremental simplification practices

principle-subtract-before-you-add FAQ

When should I apply this principle?

Apply it when sequencing any addition, refactor, or rewrite. Make removal your first step before construction.

How do I identify what to remove?

Look for dead code (unreachable or unused), redundant validators (beyond spec), stub references (no novel content), and speculative edge cases not in the requirements.

Does this mean never add anything?

No. It means remove first to simplify the base, then build on that cleaner foundation. The goal is to add to less complexity.

Can I apply this to prompts?

Yes. Simplify prompts by removing redundant instructions, excessive templates, and speculative guards that aren't required by the spec.

How do I know when I've removed enough?

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