--- name: gsd:execute-plan description: Execute a PLAN.md file argument-hint: "[path-to-PLAN.md]" allowed-tools: - Read - Glob - Grep - Bash - Task - TodoWrite - AskUserQuestion --- Execute a single PLAN.md file by spawning a subagent. Orchestrator stays lean: validate plan, spawn subagent, handle checkpoints, report completion. Subagent loads full execute-plan workflow and handles all execution details. Context budget: ~15% orchestrator, 100% fresh for subagent. @~/.claude/get-shit-done/templates/subagent-task-prompt.md Plan path: $ARGUMENTS @.planning/STATE.md @.planning/config.json (if exists) 1. **Validate plan exists** - Confirm file at $ARGUMENTS exists - Error if not found: "Plan not found: {path}" 2. **Check if already executed** - Derive SUMMARY path from plan path (replace PLAN.md with SUMMARY.md) - If SUMMARY exists: "Plan already executed. SUMMARY: {path}" - Offer: re-execute or exit 3. **Parse plan identifiers** Extract from path like `.planning/phases/03-auth/03-02-PLAN.md`: - phase_number: `03` - phase_name: `auth` - plan_number: `02` - plan_path: full path 4. **Fill and spawn subagent** - Fill subagent-task-prompt template with extracted values - Spawn: `Task(prompt=filled_template, subagent_type="general-purpose")` 5. **Handle subagent return** - If contains "## CHECKPOINT REACHED": Execute checkpoint_handling - If contains "## PLAN COMPLETE": Verify SUMMARY exists, report success 6. **Report completion** - Show SUMMARY path - Show commits from subagent return - Offer next steps When subagent returns with checkpoint: **1. Parse return:** ``` ## CHECKPOINT REACHED **Type:** [human-verify | decision | human-action] **Plan:** {phase}-{plan} **Progress:** {completed}/{total} tasks complete [Checkpoint content] **Awaiting:** [Resume signal] ``` **2. Present to user:** Display the checkpoint content exactly as returned by subagent. **3. Collect response:** Wait for user input: - human-verify: "approved" or description of issues - decision: option selection - human-action: "done" when complete **4. Resume subagent:** ``` Task(resume="{agent_id}", prompt="User response: {user_input}") ``` **5. Repeat:** Continue handling returns until "## PLAN COMPLETE" or user stops. - [ ] Plan executed (SUMMARY.md created) - [ ] All checkpoints handled - [ ] User informed of completion and next steps