Cancel Skill
Cancel an implementation plan that is no longer being pursued.
Process
- •
Identify the plan to cancel:
- •If the user specifies a plan number/name, use that
- •Otherwise, list in-progress plans and ask user to choose
- •Never auto-cancel - always require explicit identification
- •
Ask for cancellation reason (optional but recommended):
- •"Why is this plan being cancelled?"
- •Common reasons: superseded by another plan, requirements changed, no longer needed
- •If superseded, ask which plan supersedes it
- •
Update plan files:
Update
implementation-plan.mdstatus header:markdown## Status: ❌ CANCELLED **Cancelled:** YYYY-MM-DD **Reason:** [User's reason, if provided] **Superseded by:** NNNN-other-plan (if applicable)
Update
task-list.mdstatus:markdown## Status: ❌ CANCELLED
Update
.plan-state.json:json{ "status": "cancelled", "cancelled_at": "2026-01-25T10:30:00Z", "updated_at": "2026-01-25T10:30:00Z", "cancellation_reason": "Superseded by 0005-dagre-module", "superseded_by": "0005-dagre-module", ...existing fields... } - •
Move to archive:
bashmv .gumbo/plans/NNNN-feature-name .gumbo/plans/archive/
- •
Confirm to user:
code**Cancelled:** `.gumbo/plans/archive/NNNN-feature-name/` **Status:** ❌ CANCELLED **Reason:** [reason] **Progress at cancellation:** X/Y tasks (Z%)
Example Usage
Cancel with reason
code
User: /plan:cancel 0004 Claude: Why is plan 0004-declaration-order-layout being cancelled? User: Superseded by the dagre module plan Claude: Is this superseded by plan 0005-dagre-module? (y/n) User: yes **Cancelled:** `.gumbo/plans/archive/0004-declaration-order-layout/` **Status:** ❌ CANCELLED **Reason:** Superseded by 0005-dagre-module **Progress at cancellation:** 0/14 tasks (0%)
Cancel already-archived plan (update status only)
code
User: /plan:cancel 0004 Claude: Plan 0004 is already in archive/ but shows status IN PROGRESS. Update status to CANCELLED? (y/n) User: yes **Updated:** `.gumbo/plans/archive/0004-declaration-order-layout/` **Status:** ❌ CANCELLED