subtract-first
Installation
SKILL.md
Run the subtraction gate before adding code, and again when a change outgrows what you expected. Not writing less code as a virtue: people default to searching for additive changes, and the option to remove something usually never gets generated at all, so it never gets compared against the option to add. Cognitive load makes it worse, and a developer mid-task under deadline is exactly that condition. What corrects it is being asked - this gate is that ask, while it still changes the code.
Calibrate: even when asked, the additive option wins most of the time, and often deserves to. A gate that always concludes "delete something" is broken the other way.
When to run it
Run the full gate when the next step introduces a new named thing or a new layer:
- a new file, module, component, hook, class or exported symbol
- a new abstraction, wrapper, indirection or generic parameter
- a new dependency, script, config flag, environment variable or feature toggle
- a change that has grown well past what you predicted, mid-flight