remove-feature
Installation
SKILL.md
Remove Feature
Author in a worktree. This skill deletes repo files and lines across many files — work in a git worktree off
main, never the primary checkout on themainbranch (rules/worktree-authoring.md). Integrate with/ship.
Enter plan mode (first action)
Phases 1–2, the REMOVAL MANIFEST, and the handoff pause are planning — read-only, no deletes. Before any interview question or tracing:
- If the session is not already in plan mode, switch into it (Cursor:
SwitchMode→plan; other harnesses: the equivalent read-only / planning posture if available). Explain briefly: removal scoping and the full delete list must land as a plan before any file is touched. - If already in plan mode, stay there — do not bounce modes.
- Stay in plan mode through Phase 1, Phase 2, the filled manifest, the todo materialization below, and the handoff fork. Only leave plan mode when the user answers the handoff and chooses an execute path (or an equivalent "go delete" instruction). Switching to agent/implementation mode is then required so deletes can run.
Removing a feature fails two ways, and this skill exists to prevent both:
- Orphans left behind. The obvious module is deleted but its residue survives — a now-unused dependency, an orphaned test, a stale feature flag still branched on, a dead DB column, an env var no one reads, an IaC resource still provisioned, a doc describing a thing that no longer exists. Half a removal is worse than none: it looks done while the codebase carries dead weight that misleads the next reader. The job is total — every artifact the feature ever added, gone or accounted for.
- Collateral deletion. You delete a helper the feature used but that a live path also uses, or drop a DB column another feature reads. A removal that breaks a surviving feature is a bug shipped under the banner of cleanup.
The north star: the feature is gone, nothing that survives references it, and nothing that survives broke. Evidence — a green suite and a zero-hit reference grep — not a feeling from reading the diff.