--- name: structured-plan-mode description: This skill should be used when planning and tracking complex feature implementations that require systematic task decomposition. Use this skill to break down large features into manageable, well-documented tasks with clear dependencies, action items, and success criteria. The skill provides a structured template and methodology for iterative planning and tracking throughout implementation. --- # Structured Plan Mode Skill ## Purpose This skill provides a structured approach for planning and tracking complex feature implementations through systematic task decomposition. It helps break down large, multi-component features into manageable tasks with clear goals, dependencies, and success criteria. ## When to Use This Skill Use this skill when: - **Complex features**: Features requiring multiple components or integration points - **Multi-step implementations**: Work spanning several days with interdependent tasks - **Pattern-setting work**: Features that will establish patterns for future development - **Research required**: Work where multiple approaches need evaluation Do NOT use this skill for: - Simple bug fixes - Trivial feature additions - One-off scripts or experiments - Work with single, clear implementation path ## How to Use the Skill **IMPORTANT**: This is a PHASED approach. Complete each phase BEFORE moving to the next. ### Phase 1: Initial Setup **Actions:** 1. Create `.plans/[feature-name]/` directory (in current project directory) 2. Copy `assets/plan-template.md` to `.plans/[feature-name]/plan.md` 3. Create `.plans/[feature-name]/tasks/` directory for task files 4. Replace `[Feature Name]` with your feature name in plan.md 5. Fill in basic overview and context 6. Create Research section with: - Goal - Context - Strategy Proposals (leave empty for now) - **Leave "Selected Approach" EMPTY** 7. Create a todo list by using TodoWrite based on the phases below **TodoWrite tracks ONLY phases 1-4:** ``` - [ ] Phase 1: Setup template with Research section - [ ] Phase 2: Conduct research and iterate with user - [ ] Phase 3: Finalize selected approach - [ ] Phase 4: Create implementation tasks (T01-T0N) ``` **Mark Phase 1 as completed in TodoWrite** **Output**: Skeleton plan document with Research section defined and todo list created for phases 1-4 --- ### Phase 2: Conduct Research and Iterate with User **Research Process (Iterative):** 1. **Explore codebase**: Read relevant files, find similar patterns 2. **Document findings incrementally**: Add to "Key Findings" as you discover 3. **Identify 2-3 approach options**: Add to "Strategy Proposals" section 4. **ITERATE with user on EACH proposal**: - Present each proposal with trade-offs (pros/cons) - Use `AskUserQuestion` to clarify requirements and constraints - **User may correct assumptions** - update research based on feedback - Refine understanding through questions (typically 3-5 questions, but quality over quantity) - **If user strongly prefers one approach early**, you may skip detailed discussion of remaining options 5. **Proactively ask if research is complete**: Once you've explored all options and answered clarifying questions, explicitly ask: "Are you ready to select an approach?" **CRITICAL**: - This is an ITERATIVE process - expect back-and-forth discussion on each proposal - Use AskUserQuestion frequently to refine understanding - Don't wait for user to say research is done - ASK them proactively **Mark Phase 2 as completed in TodoWrite when user confirms that research is complete** **Output**: Research with 2-3 Strategy Proposals documented and reviewed with user --- ### Phase 3: Finalize Selected Approach **Actions:** 1. **Ask the user to select an approach** using AskUserQuestion (present the 2-3 researched approaches as formal selection options) 2. **Once user confirms their selection**, fill "Selected Approach" section with: - **Decision**: Which approach was selected (must match user's confirmed preference) - **Rationale**: Why this approach was chosen over alternatives - **Key Findings**: Summarize important discoveries from research - **Implementation Plan**: High-level steps (5-7 bullet points) 3. Mark all research action items as [x] completed 4. Change research status to ✅ **Completed** 5. Update Progress Summary to show research complete **Mark Phase 3 as completed in TodoWrite once Selected Approach section is fully documented** **Output**: Research fully documented with clear decision and rationale --- ### Phase 4: Create Implementation Tasks (ONLY AFTER Phase 1-3 Complete) **IMPORTANT**: Before creating tasks, read `references/task-planning-guide.md` to understand: - How to break down work into appropriate task sizes - Task file structure and required sections - Best practices for defining clear requirements and action items - How to set proper dependencies between tasks **Actions:** **NOW create T01, T02, T03, ...T0N** as separate files in `.plans/[feature-name]/tasks/` based on selected approach - Number of tasks depends on complexity (simple: 1-2, medium: 3-5, complex: 5+) - Break down into manageable chunks (2-5 days each) **Step-by-Step: Creating a Task File** For each task you need to create: 1. **Copy the template**: ```bash cp [path-to-task-template.md] .plans/[feature-name]/tasks/T01.md ``` 2. **Update task header**: Replace `T0X` with actual task number (T01, T02, etc.) 3. **Fill in core sections**: - Goal: One clear, measurable objective - Context: How it relates to the feature and selected approach - Requirements: Detailed specifications with implementation steps - Action Items: Specific checkboxes for work to complete 4. **Update metadata**: Set Status (🟡 Planned), Effort (Small/Medium/Large), Blocked By 5. **Add to Progress Summary**: Update plan.md with link: `- [ ] [**T01**: Task Name](tasks/T01.md) - Status: 🟡 Planned` **Mark Phase 4 as completed in TodoWrite** **Output**: Complete task breakdown (T01.md - T0N.md files) in tasks/ folder, all linked from plan.md Progress Summary --- ### Phase 5: Working with Tasks (Implementation) **Note**: Phase 5 is NOT tracked in TodoWrite. Track progress directly in task files and plan.md. **IMPORTANT**: Before starting work on ANY task, read `references/task-planning-guide.md` for: - Task structure guidance and best practices - How to maintain task files during execution - Examples of effective task documentation - Common pitfalls to avoid **When to consult task-planning-guide.md:** - Before starting a new task (every time) - When unclear about task file structure or what to document - When encountering challenges during task execution - When adding new tasks mid-implementation #### Task Execution Discipline **CRITICAL RULE**: Work on ONE task at a time. Do NOT start the next task until the current task is FULLY completed. **Task Status Flow:** 1. 🟡 **Planned** → Task created but not started 2. 🟢 **In Progress** → Currently working on this task (only ONE task should be in this state) 3. ✅ **Completed** → All action items done, both locations updated, Execution Summary filled 4. 🔴 **Blocked** → Cannot proceed due to dependency or external issue (move to next task until unblocked) #### Task Lifecycle: Step-by-Step **Starting a Task:** 1. **Read `references/task-planning-guide.md`** - Review relevant sections before beginning work 2. Choose next task from plan.md Progress Summary (respecting dependencies) 3. Update status to 🟢 **In Progress** in TWO places: - Task file metadata: `**Status**: 🟢 **In Progress**` - plan.md Progress Summary: `- [ ] [**T01**: Task Name](tasks/T01.md) - Status: 🟢 In Progress` **During Task Execution:** 4. Work through Action Items, checking off boxes as you complete them: ```markdown - [x] Create API endpoint - [x] Add request validation - [ ] Add error handling ← Currently working here - [ ] Write tests ``` 5. Update task file in real-time as work progresses 6. If you discover new requirements, add them to Action Items **Completing a Task:** 7. Verify ALL action items are checked: `[x]` 8. Fill in "Execution Summary" section in task file: ```markdown ## Execution Summary **Completed**: 2025-01-08 14:30 **What was implemented**: - Added /api/users endpoint with validation - Implemented error handling for edge cases **Challenges encountered**: - Had to refactor auth middleware to support new endpoint ``` 9. Update status to ✅ **Completed** in TWO places: - Task file metadata: `**Status**: ✅ **Completed**` - plan.md Progress Summary: `- [x] [**T01**: Task Name](tasks/T01.md) - Status: ✅ Completed` 10. **Explicitly ask user**: "Task T01 is complete. Ready to move to T02?" 11. **ONLY after user confirms** proceed to next task #### Dual-Tracking Example When completing T01, you must update BOTH locations: **In `tasks/T01.md`** (lines 7-9): ```markdown **Status**: ✅ **Completed** **Effort**: Medium **Blocked By**: None ``` **In `plan.md` Progress Summary** (line ~18): ```markdown - [x] [**T01**: Add API endpoint](tasks/T01.md) - Status: ✅ Completed ``` **Why dual-tracking?** - plan.md provides high-level overview of all tasks at a glance - Task files provide detailed implementation notes for deep dives - Both serve different purposes and audiences #### Handling Blocked Tasks If you cannot complete a task: 1. Update status to 🔴 **Blocked** in both locations 2. Update "Blocked By" field in task file metadata 3. Document blocking reason in task file 4. Move to next non-blocked task 5. Return when blocker is resolved #### Discovering New Tasks Mid-Implementation If you discover additional work during Phase 5: 1. Create new task file (e.g., `T06.md`) in tasks/ directory 2. Fill in all sections using task-template.md 3. Add link to plan.md Progress Summary 4. Update dependent tasks if needed --- **Remember**: ONE task at a time. Complete it FULLY (all checkboxes, both locations updated, Execution Summary filled), then ASK USER for confirmation before moving to the next. --- ### Phase 6: Post-Implementation Review **Note**: Phase 6 is NOT tracked in TodoWrite. Update the plan document directly. After feature completion: - Fill in "Lessons Learned" section - Verify all task statuses are accurate - Document any technical debt or future work - Review what went well and what could improve ## Workflow Summary **TodoWrite tracks ONLY phases 1-4 (not subtasks):** ``` - [ ] Phase 1: Setup template with Research section - [ ] Phase 2: Conduct research and iterate with user - [ ] Phase 3: Finalize selected approach - [ ] Phase 4: Create implementation tasks (T01-T0N) ``` **Phase-by-Phase Workflow:** 1. **Phase 1 - Setup**: - Create `.plans/[feature-name]/` and `.plans/[feature-name]/tasks/` directories - Copy plan-template.md to `.plans/[feature-name]/plan.md` - Create Research section ONLY in plan.md - DO NOT create T01, T02, T03 task files yet - Mark Phase 1 complete in TodoWrite 2. **Phase 2 - Research & Iterate** (AskUserQuestion REQUIRED): - Explore codebase, document findings in plan.md - Present 2-3 approach options - **Iterate on EACH proposal** via AskUserQuestion (discuss trade-offs, clarify constraints) - User may correct assumptions - update research - **If user strongly prefers one approach**, may skip detailed discussion of remaining options - **Proactively ask**: "Are you ready to select an approach?" - Mark Phase 2 complete when user confirms 3. **Phase 3 - Finalize**: - Present 2-3 researched approaches and ask user to select one - Once user confirms, fill "Selected Approach" section in plan.md - Mark research as ✅ Completed in plan.md - Mark Phase 3 complete once documentation is done 4. **Phase 4 - Create Tasks**: - **Read `references/task-planning-guide.md` before creating tasks** - NOW create T01.md, T02.md, T03.md, ...T0N.md files in `.plans/[feature-name]/tasks/` - Copy task-template.md for each task file - Fill in task details based on selected approach - Number of tasks depends on complexity - Update Progress Summary in plan.md with links to task files - Mark Phase 4 complete in TodoWrite 5. **Phase 5 - Implementation** (ONE task at a time): - **Read `references/task-planning-guide.md` before starting EACH task** - Work on ONE task until FULLY completed (all checkboxes, both locations updated, Execution Summary filled) - Update status in TWO places: task file metadata AND plan.md Progress Summary - Track progress: 🟡 Planned → 🟢 In Progress → ✅ Completed - Check off action items as you complete them - Fill Execution Summary before marking complete - **Explicitly ask user for confirmation** before moving to next task - ONLY after user confirms proceed to next task 6. **Phase 6 - Review**: - Document lessons learned in plan.md ## Key Patterns from Successful Use ### Pattern 1: Follow Existing Patterns During research phase, research existing similar features and match their architecture exactly. **Benefit**: Consistent codebase, faster implementation, reduced bugs. ### Pattern 2: Simplify When Possible During research, look for ways to simplify (e.g., avoid unnecessary API calls). **Benefit**: Reduced dependencies, better performance, easier maintenance. ### Pattern 3: Discover Existing Implementations Research phase may reveal the work is already done - mark task complete. **Benefit**: Avoids duplicate work, leverages tested code. ### Pattern 4: Document Design Decisions During research phase, use the **"Selected Approach"** section to document WHY you chose one approach over alternatives. Include: decision, rationale, key findings, and implementation plan. **Benefit**: Future developers understand rationale, prevents second-guessing, provides clear starting point. ### Pattern 5: Keep Tasks Focused Break large tasks into smaller chunks that are independently testable. **Benefit**: Steady progress, clear milestones, easier to parallelize. ## Reference Materials **CRITICAL**: `references/task-planning-guide.md` is NOT just for planning - read it throughout implementation. **Read `references/task-planning-guide.md`:** - **Phase 4**: Before creating task files (understand task structure, sizing, dependencies) - **Phase 5**: Before starting EACH task (review best practices, avoid common pitfalls) - **During execution**: When updating task files, adding action items, or documenting progress - **When stuck**: Consult checklist for good task planning and common pitfalls section **Additional reference:** - `references/usage-guide.md` - Detailed template section explanations --- **Remember**: 1. **TodoWrite tracks PHASES** - not individual subtasks 2. **Phases are sequential** - complete Phase 1 before Phase 2, etc. 3. **Phase 2 is iterative** - use AskUserQuestion multiple times, expect back-and-forth 4. **User confirms approach** - do NOT fill "Selected Approach" until user confirms 5. **No premature planning** - T01-T0N created in Phase 4 6. **Task count is flexible** - create as many as needed (T01, T02, ...T0N) 7. **ONE task at a time** - Complete current task FULLY (all checkboxes, both locations, Execution Summary) before starting next 8. **Dual-tracking required** - Update status in BOTH task file AND plan.md 9. **Explicit user confirmation** - Ask user for approval before moving to next task 10. **Read task-planning-guide.md** - Before Phase 4, before EACH task in Phase 5, and when stuck