prd-to-plan
PRD to Plan
Break a PRD into a phased implementation plan using vertical slices (tracer bullets). Output is a Markdown file in ./docs/<feature-name>/plan.md.
Process
1. Confirm the PRD is in context
The PRD should already be in the conversation. If it isn't, ask the user to paste it or point you to the file.
2. Explore the codebase
If you have not already explored the codebase, do so to understand the current architecture, existing patterns, and integration layers.
3. Identify durable architectural decisions
Before slicing, identify high-level decisions that are unlikely to change throughout implementation:
- Route structures / URL patterns
- Database schema shape
- Key data models
- Authentication / authorization approach
- Third-party service boundaries
These go in the plan header so every phase can reference them.
4. Draft vertical slices
Break the PRD into tracer bullet phases. Each phase is a thin vertical slice that cuts through ALL integration layers end-to-end, NOT a horizontal slice of one layer.
5. Quiz the user
Present the proposed breakdown as a numbered list. For each phase show:
- Title: short descriptive name
- User stories covered: which user stories from the PRD this addresses
Ask the user:
- Does the granularity feel right? (too coarse / too fine)
- Should any phases be merged or split further?
Iterate until the user approves the breakdown.
When invoked by afk (no user interaction): Skip the quiz. Use your best judgment on granularity and write the plan directly.
6. Write the plan file
Create ./docs/<feature-name>/ if it doesn't exist. Write the plan as a Markdown file named after the feature (e.g. ./docs/meta-direct-whatsapp/plan.md). Use the template below.
Task formatting (important for execution)
Each phase's "What to build" section controls how ralph executes the phase:
- Numbered list (1., 2., 3.) — each item becomes a separate implementation task with its own commit. This is the preferred format for phases with multiple deliverables.
- Bullet list (-, *) — each bullet becomes a separate task.
- Single paragraph — the entire phase runs as one task.
Use numbered items whenever a phase has more than one logical deliverable. This gives ralph focused, atomic implementation sessions and granular commit history.
Source PRD: <relative path to PRD.md, e.g. docs/feature/PRD.md>
Architectural decisions
Durable decisions that apply across all phases:
- Routes: ...
- Schema: ...
- Key models: ...
- (add/remove sections as appropriate)
Phase 1:
User stories:
What to build
- First task — describe the first deliverable for this slice
- Second task — describe the next deliverable
- Third task — describe the next deliverable
Acceptance criteria
- Criterion 1
- Criterion 2
- Criterion 3
Phase 2:
User stories:
What to build
- First task — ...
- Second task — ...
Acceptance criteria
- ...
More from tahajemmali/skills
write-a-prd
Create a PRD through user interview, codebase exploration, and module design, then save to docs/<feature>/PRD.md. Use when user wants to write a PRD, create a product requirements document, or plan a new feature.
74reality-check
Activate a brutally honest, skeptical architectural partner that stress-tests ideas, architectures, and assumptions. Use when the user says "reality check", wants their design challenged, asks if their idea is sound, wants a devil's advocate review, or wants architectural critique without hand-holding.
73grill-me
Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".
72ship-check
Run the standard post-change validation flow after a fix, refactor, or new feature. Use when implementation work is done and you should validate the latest changes by invoking the repo's review skills, starting with review-changes and then repo-doc-maintainer, before giving the final close-out.
70review-changes
Review the latest changes and check whether they comply with the project's documented guidelines (AGENTS.md, CLAUDE.md, or equivalent). Use when reviewing local diffs, recent commits, or feature work and you need a findings-first assessment of architecture, reuse, testing, and repo-specific rules.
70repo-doc-maintainer
Review recent repository changes and decide whether AGENTS.md or other project-level documentation needs a high-level update. Use when finishing a feature, fix, refactor, or architectural change and you need to preserve repo-shaping guidance such as new patterns, constraints, workflows, validation rules, or onboarding-relevant gotchas without adding low-level implementation detail.
69