| name | building-a-work-plan |
| description | Use when orchestrating the creation of a work plan from a design document. Manages branch setup, codebase investigation, milestone planning, and execution handoff. |
| command | build-work-plan |
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:
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
AskUserQuestion to request the path
- Never guess the path
-
Choose review mode (MANDATORY):
STOP. You MUST get user preference before creating orchestration tasks.
Use AskUserQuestion with 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:
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 (
main or master)
- 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-plan Document Format)
-
Classify each AC (infrastructure, functionality, integration)
-
Create scaffold task if needed
-
Create one task per AC with implementation steps
-
If Interactive mode: Use AskUserQuestion to 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:
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
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.