Building a Work Plan
Overview
This skill orchestrates the end-to-end process of converting a design document into an executable work plan. It coordinates branch setup, codebase investigation, milestone-by-milestone planning, and handoff to execution. Think of it as the "conductor" that invokes sub-skills and agents in the right order.
Required Sub-Skills
Load these during execution:
| Skill | Purpose | When Loaded |
|---|---|---|
| writing-a-work-plan | Task decomposition patterns, templates | Phase 2 |
| writing-code | Engineering principles (via writing-a-work-plan) | Phase 2 |
Entry Point
When the user invokes /build-work-plan:
Announce: "I'm using the building-a-work-plan skill to create a work plan from your design document."
Get design document path:
- If user provided a path, use it
- If not, use
AskUserQuestionto request the path - Never guess the path
Choose review mode (MANDATORY):
STOP. You MUST get user preference before creating orchestration tasks.
Use
AskUserQuestionwith these options:- Interactive (Recommended): Plan one milestone, get approval, proceed. Catches errors early.
- Batch: Plan all milestones, then review all. Faster but riskier.
Record the user's choice. This determines behavior in Phase 2 and Phase 4.
Create orchestration tasks (see Task Tracking section)
Proceed through phases
Task Tracking
Create these tasks at the start of each session. Update status as you progress.
◻ #1 Setup: Confirm design doc and optional branch setup
◻ #2 Investigate: Codebase testing patterns
◻ #3 Investigate: Design assumptions verification
◻ #4 Plan: Write milestone tasks (one sub-task per milestone)
◻ #5 Verify: Post-planning codebase check
◻ #6 Review: Code review of plan
◻ #7 Approve: User approval
◻ #8 Write: Save plan to disk
◻ #9 Handoff: Execution instructions
Dependencies:
- #2 blocked by #1
- #3 blocked by #2
- #4 blocked by #3
- #5 blocked by #4
- #6 blocked by #5
- #7 blocked by #6
- #8 blocked by #7
- #9 blocked by #8
Use TaskCreate and TaskUpdate to manage these. Mark each task in_progress when starting, completed when done.
Phases
Phase 0: Setup (Task #1)
Step 1: Confirm design document
Read the design document. Verify it contains:
- Fleshed-out milestones (job stories, descriptions, AC, demos)
- Milestone count ≤ 8
If milestones are vague or missing AC, stop and suggest running /start-milestone-review first.
Step 2: Optional branch setup
Ask the user:
Do you need to set up a branch for this work?
- Yes, create a new branch
- No, I'm already on the correct branch
If yes:
- Determine base branch (
mainormaster) - Generate branch name from design doc title (e.g.,
feat/trackman-scraper) - Create and checkout branch:
git checkout -b <branch-name> - Confirm branch created
Mark Task #1 complete.
Phase 1: Codebase Investigation (Tasks #2, #3)
Task #2: Testing patterns
Dispatch codebase-investigator agent:
Investigate the testing patterns in this codebase:
- How are tests structured? (tests/, test/, colocated?)
- What testing framework is used? (pytest, jest, etc.)
- What mocking patterns exist?
- What fixtures are available?
- Any test utilities or helpers?
Report findings in a structured format.
Document findings. Mark Task #2 complete.
Task #3: Design assumptions (sequential after #2)
Dispatch codebase-investigator agent:
Verify these design assumptions against the current codebase:
Design doc: [path]
Milestones: [list milestone titles]
Check:
- Do files exist where the design expects them?
- Do expected features/dependencies exist?
- Is there drift between design doc and current code?
- What naming conventions should we follow?
Report any mismatches or concerns.
Document findings. Mark Task #3 complete.
Phase 2: Milestone Planning (Task #4)
CHECKPOINT: Verify sub-skill is loaded.
Before processing any milestone, confirm you have loaded writing-a-work-plan skill. If you have not loaded it, STOP and load it now using the Skill tool.
This sub-skill provides:
- Milestone plan header template (Context, Codebase Verification, References)
- Task templates by type (Infrastructure, Functionality, Integration)
- TDD-aligned implementation step patterns
Load sub-skill: Activate writing-a-work-plan skill.
Process each milestone following the writing-a-work-plan Core Pattern:
For each milestone M:
Create sub-task: "Plan: Milestone M - [title]"
Read milestone from design doc
Write complete milestone plan header (see
writing-a-work-planDocument Format)Classify each AC (infrastructure, functionality, integration)
Create scaffold task if needed
Create one task per AC with implementation steps
If Interactive mode: Use
AskUserQuestionto get approval:- Approve: Milestone plan looks good, proceed to next milestone
- Revise: I have feedback on specific tasks (user provides details via "Other")
Do not proceed until user approves or revisions are complete.
Write milestone to disk immediately after approval (enables session recovery)
If Batch mode: Continue to next milestone
Mark sub-task complete
Mark Task #4 complete when all milestones are planned.
Phase 3: Post-Planning Verification (Task #5)
Dispatch codebase-investigator agent:
Verify the planned tasks are implementable:
Work plan location: [path]
Check:
- Do target directories exist (or can be created)?
- Are import paths valid?
- Any conflicts with existing code?
- Are test file locations correct?
Report any issues that would block implementation.
If issues found:
- Present to user
- Update tasks to match reality, or
- Flag as known issues in the plan
Mark Task #5 complete.
Phase 4: Code Review (Task #6)
This phase is MANDATORY. Do not skip code review.
Even for "simple" plans, code review catches:
- Missing tasks for AC
- Vague verification steps that cause confusion during implementation
- Inconsistent commit message formats
- Dependency ordering issues
Dispatch code-reviewer agent over all milestone plan files:
Review these work plan files for quality:
Files: [list of milestone_##.md files]
Check:
- All AC have corresponding tasks
- Tasks include concrete test code where applicable
- Verification steps are explicit
- Commit messages follow conventions
- Dependencies are noted
- No ambiguous or vague steps
Report issues by file and task number.
Handle review results based on review mode (chosen in Entry Point step 3):
- Interactive mode: Present issues to user; let user decide what to fix
- Batch mode: Automatically fix issues; user sees clean plan
Verification: Before marking Task #6 complete, confirm:
- Code review agent was dispatched
- All reported issues were addressed (fixed or user-approved as-is)
- Results were presented to user
Mark Task #6 complete.
Phase 5: User Approval (Task #7)
Present the complete work plan summary:
## Work Plan Summary
**Design doc**: [path]
**Plan location**: [path]
**Milestones**: [count]
| Milestone | Tasks | Type Breakdown |
|-----------|-------|----------------|
| M1: [title] | N tasks | X infra, Y func, Z integ |
| M2: [title] | N tasks | ... |
| ... | ... | ... |
**Total tasks**: [count]
**Codebase verification**: [status]
**Code review**: [status]
Ready to write to disk?
Get explicit approval. Mark Task #7 complete.
Phase 6: Write to Disk (Task #8)
Create directory and files using this EXACT structure:
docs/work-plans/YYYY-MM-DD-<plan-name>/
├── milestone_01.md
├── milestone_02.md
├── ...
└── milestone_NN.md
Concrete example (for a plan named "golf-data-loader" on 2026-01-15):
docs/work-plans/2026-01-15-golf-data-loader/
├── milestone_01.md
├── milestone_02.md
├── milestone_03.md
Naming rules:
- Directory:
YYYY-MM-DD-<plan-name>where plan-name is lowercase, hyphenated - Files:
milestone_01.md,milestone_02.md, etc. (zero-padded two digits) - NOT:
m1-*.md,M1_*.md,milestone-1.md, or any other variant
Verification (REQUIRED before marking complete):
ls -la docs/work-plans/YYYY-MM-DD-<plan-name>/
Confirm output shows:
- Directory name matches
YYYY-MM-DD-<plan-name>format - All files are named
milestone_##.md
Mark Task #8 complete only after verification passes.
Phase 7: Execution Handoff (Task #9)
Capture absolute paths:
git rev-parse --show-toplevel # Working root
Present handoff instructions:
## Work Plan Complete
Your work plan is ready at:
`[absolute-path-to-plan-directory]`
### Next Steps
To execute this work plan:
/execute-work-plan [absolute-path-to-plan-directory]
This will:
1. Read milestones just-in-time (one at a time)
2. Dispatch `code-worker` agents for each task
3. Run code review once per milestone
4. Fix all issues before proceeding to next milestone
5. Provide a full implementation report when complete
### To Resume Later
If you need to resume work on this plan in a new session:
1. Run `/clear` to reset context
2. Run `/execute-work-plan [plan-directory-path]`
3. The skill will detect progress and resume from the next incomplete task
### Files Created
[List all milestone_##.md files with paths]
Mark Task #9 complete.
Resumption
If the user returns to continue a work plan:
- Ask for the plan directory path
- Read existing milestone files
- Identify which milestones are complete vs pending
- Resume from the next pending milestone
Common Mistakes
| Mistake | Why It Fails | Correct Approach |
|---|---|---|
| Guessing design doc path | Wrong file, wasted effort | Always ask if not provided |
| Skipping review mode choice | User loses control over workflow | AskUserQuestion at session start |
| Skipping codebase investigation | Tasks may not be implementable | Always investigate before planning |
| Not tracking orchestration tasks | Lose progress on interruption | Create tasks at session start |
| Relative paths in handoff | Paths break across sessions | Always use absolute paths |
| Batch planning all milestones | Early mistakes compound | Interactive milestone-by-milestone |
| Skipping code review phase | Plan quality issues compound during implementation | Code review is MANDATORY |
Wrong file naming (m1-*.md) |
Breaks execution skill expectations | Use milestone_01.md format |
| Incomplete milestone headers | Implementers lack context | All header fields are required |
Anti-Rationalizations
- "I know where the design doc is" — Ask anyway. Confirmation prevents errors.
- "Codebase investigation is slow" — It's faster than planning tasks for nonexistent files.
- "Task tracking is overhead" — It's insurance against interruption. Do it.
- "The user knows the paths" — Capture absolute paths explicitly. Context resets.
- "Batch mode is faster" — User loses opportunity to catch early mistakes. Compounding errors cost more than time saved. Ask for their preference.
- "Code review is overkill for a plan" — Plans with issues compound during implementation. A 10-minute review saves hours of debugging.
- "The user will notice the file naming" — They won't until the execution skill fails. Follow the spec exactly.
- "The milestone header is just boilerplate" — It's context for the implementer (human or LLM). Missing context means wrong assumptions.
Summary
- Announce the skill. User knows what's happening.
- Create orchestration tasks. Track progress through phases.
- Investigate before planning. Codebase reality grounds the plan.
- Interactive milestone review. Approve each before proceeding.
- Capture absolute paths. Handoff survives context reset.
- Execution is future work. Plan is the deliverable for now.