SKILL.md
Hard Cut
Use this when a feature should die, not linger.
Rules
- Delete the surface. Do not deprecate it.
- Do not leave
throw new Error("Not implemented"), placeholder notices,
"feature removed" banners, or TODOs about bringing it back unless the user explicitly asks.
- Do not keep compatibility aliases, deprecated shims, fallback parsing,
migration bridges, or dead exports.
- Delete tests for deleted behavior. Keep tests only for the behavior that
still exists.
- Delete comments that describe deleted code or mourn the old feature.
- If removal exposes adjacent dead code, keep cutting until the graph is clean.
Sweep
- Find the real surface area:
- exports - commands and flags - routes - UI entrypoints - feature flags - docs and examples
- Trace references with
rg. - Delete the implementation and the glue:
- call sites - types - state - tests - docs - comments
- Grep again for the removed name and obvious aliases.
- Run the narrowest honest verification for the surviving product.
Smells
- deprecated notices
- not-implemented throws
- stub handlers
- dead enum or union members
- permanently-false feature-flag branches
- unused env vars and config
- tests that only prove the deleted feature used to exist
Bias
If the choice is between deleting more code and leaving a zombie seam, delete more code.