prd-to-plan
PRD to Plan
Break a PRD into phased vertical slices (tracer bullets). Output: plans/<name>.md.
Pre-loaded context
Before proceeding, use the Glob tool to list files in prds/ directory.
Workflow
1. Read the PRD
Open the PRD file. If no name given, ask: "Which PRD should we plan?" — list each available PRD as an option. Use AskUserQuestion when available; otherwise present as a numbered list.
2. Explore the codebase
Understand current architecture, existing patterns, and integration points.
3. Identify durable architectural decisions
Before slicing, extract decisions that hold across all phases:
- Route structures / URL patterns
- Database schema shape
- Key data models and definitions
- Auth/authorization approach
- Third-party service boundaries
4. Draft vertical slices
Each phase is a thin tracer bullet -- a narrow but complete path through every integration layer (schema, service, API, UI, tests). A completed phase is demoable on its own.
Deriving tasks from the PRD:
| PRD Section | Becomes |
|---|---|
| New Modules | Implement module with interface |
| Schema Changes | Migration + validation |
| API Contracts | Route returning shape |
| Navigation | Wire component to route |
| User Stories | Verify coverage; add task if missing |
| Testing Decisions | Tests land in the phase where their module lands |
| Out of Scope | Never create tasks for these |
Within each slice, order by dependency: schema -> service -> API -> UI -> tests. Happy paths before edge cases.
Phase naming: use a goal phrase answering "what can we demo when this is done?" (e.g., "Phase 1 -- Revenue visible end-to-end"), not a layer name.
When to use layer-by-layer instead: If the PRD has complex schema changes that all modules depend on and no single user story can stand alone without the full schema, build the data foundation first, then slice the rest vertically.
Phase count: 2-3 for single-module, 3-5 for multi-module, 5+ means consider splitting the PRD.
5. Quiz the user
Present the breakdown. For each phase show:
- Title: short goal phrase
- User stories covered: which PRD stories this addresses
- Done when: the testable condition
Ask: "Does the phase breakdown look right?" — Options: "Looks good, proceed (Recommended)", "Merge some phases", "Split some phases", "Reorder phases". Use AskUserQuestion when available; otherwise present as numbered options. Iterate until approved.
6. Save plan
Save to plans/<same-stem-as-prd>.md (create plans/ if missing).
# Plan: <Feature Name>
> Source PRD: `prds/<name>.md`
## Architectural decisions
Durable decisions that apply across all phases:
- **Routes**: ...
- **Schema**: ...
- **Key models**: ...
---
## Phase 1 -- <Goal>
**User stories**: <list from PRD>
### What to build
Concise description of this vertical slice -- end-to-end behavior, not layer-by-layer.
### Done when
<Specific, testable condition. e.g., "Instructor sees total revenue for a course; service tests pass against in-memory DB.">
---
<!-- Repeat for each phase -->
## Out of Scope
Carried forward from PRD verbatim.
## Open Questions
Gaps found in the PRD needing resolution. Blank if none.
Print saved path and one line per phase: Phase N -- <title> (<condition summary>).
Rules
- Phases derive from PRD user stories -- never invented
- Each phase must be demoable end-to-end on its own
- "Done when" must be testable, not vague
- Never modify the source PRD
- Carry PRD's Out of Scope forward verbatim
Error Handling
- PRD not found -- list available PRDs and ask
- PRD missing sections -- note gaps inline and continue
plans/missing -- create it
More from helderberto/skills
ship
Commit and push changes using atomic commits. Use when user asks to "ship", "commit and push", or requests committing and pushing changes. Don't use for creating pull requests or reviewing changes before committing.
46explain-code
Explains code with visual diagrams and analogies. Use when explaining how code works, teaching about a codebase, or when the user asks "how does this work?" Don't use for modifying code, fixing bugs, or generating new implementations.
45refactor-plan
Create structured refactoring plans. Use when user wants to plan a refactor, needs a refactoring strategy, or mentions breaking down large changes into small commits. Don't use for implementing code changes directly, small one-line fixes, or renaming a single variable.
45safe-repo
Check for sensitive data in repository. Use when user asks to "check for sensitive data", "/safe-repo", or wants to verify no company/credential data is in the repository. Don't use for general code review, adding .gitignore entries, or scanning non-git directories.
41lint
Run linting and formatting checks. Use when user asks to "run linter", "/lint", "check linting", "fix lint errors", or requests code linting/formatting. Don't use for running tests, type-checking only, or projects without a lint script in package.json.
40tdd
Guides test-driven development with red-green-refactor loop. Use when user wants to build features or fix bugs using TDD, mentions "red-green-refactor", wants test-first development, or requests TDD workflow. Don't use for writing tests after implementation, adding tests to existing untested code, or one-off test fixes.
40