Agent skill
prd-to-todos
Break a PRD into independently-grabbable file-backed todos using tracer-bullet vertical slices. Use when the user wants to convert a PRD into implementation tasks, create vertical-slice todos, or break down a PRD into work items.
Install this agent skill to your Project
npx add-skill https://github.com/dmmulroy/.dotfiles/tree/main/home/.pi/ephemeral/skills/prd-to-todos
SKILL.md
PRD to Todos
Break a PRD into independently-grabbable implementation todos using vertical slices (tracer bullets).
This skill is adapted for this Pi setup:
- input can come from a local PRD file, a PRD already in context, or a URL/issue the agent can fetch
- output should be created with the
todotool, not GitHub issues
Process
1. Locate the PRD
Ask the user for the PRD source if it is not already clear.
Accept any of:
- a local file path
- a pasted PRD
- a URL
- a GitHub issue number or URL if that is how the PRD is stored
If the PRD is not already in context:
- use
readfor local files - use
webfetchfor URLs - use
bashonly if you need a repo-specific CLI likegh issue viewto fetch the PRD text
Make sure you have the full PRD, including:
- problem statement
- solution summary
- user stories
- constraints
- implementation notes
- out-of-scope notes
If the PRD is incomplete, ask clarifying questions before breaking it down.
2. Explore the codebase (optional but preferred)
If you have not already explored the codebase, do so enough to understand:
- the current architecture
- the relevant modules and boundaries
- likely integration points
- obvious sequencing constraints
- where the risky or ambiguous areas are
Use this exploration to improve the slice boundaries.
3. Draft vertical slices
Break the PRD into tracer-bullet slices.
Each slice must be a thin end-to-end path that cuts through all relevant layers, not a horizontal layer-only task.
Examples of good slices:
- one narrow user flow through schema + backend + UI + tests
- one integration path that is demoable on its own
- one deliverable that can be verified independently
Examples of bad slices:
- “add DB tables”
- “build backend API”
- “implement frontend UI”
Those are horizontal slices and should usually be avoided.
4. Quiz the user
Present the proposed breakdown as a numbered list.
For each slice, include:
- Title: short descriptive name
- Blocked by: other slices, if any
- User stories covered: reference the PRD user story numbers
- Why this is a vertical slice: one sentence explaining the end-to-end value
Then ask the user:
- Does the granularity feel right? Too coarse or too fine?
- Are the dependency relationships correct?
- Should any slices be merged or split?
- Are any important user stories uncovered?
Iterate until the user explicitly approves the breakdown.
Do not create todos before approval.
5. Create todos with the todo tool
Once the breakdown is approved, create one todo per slice using the todo tool.
Do not create the todo files by editing the filesystem directly unless the todo tool is unavailable.
Create todos in dependency order so later todos can reference the real todo ids of blockers.
Before creating the first todo, derive a single normalized PRD slug from the PRD title and reuse it across every todo created from that PRD.
Use that slug in a shared tag of the form:
prd:<slug>
Example:
- PRD title:
Improved tmux session restore - shared PRD tag:
prd:improved-tmux-session-restore
Title conventions
Use a concise title that a teammate could immediately grab.
Good examples:
Add minimal PRD list view with end-to-end data flowSupport first-run auth handshake for sync setupRefine empty-state copy and error recovery flow
Tag conventions
Use tags to make todos easy to filter later.
In the current todo extension, tags are the best built-in grouping/search mechanism for relating multiple todos to the same PRD. There is no separate first-class parent/epic field beyond what you write in the body.
Always include:
prdvertical-slice- the shared PRD tag:
prd:<slug>
Where <slug> is a lowercase, hyphenated slug derived once from the PRD title and reused exactly across all todos from that PRD.
Optionally include:
- an area tag like
api,ui,infra, ormigrationif it helps discoverability
Do not invent a different feature tag per slice if it would fragment search. The point is that all todos for the PRD should share the exact same prd:<slug> tag so they can be listed and grouped easily.
Todo body template
Use this markdown body when creating each todo:
<path, URL, issue reference, or short identifier>
What to build
A concise description of this vertical slice. Describe the end-to-end behavior, not a layer-by-layer implementation checklist. Reference specific sections of the parent PRD rather than duplicating the PRD in full.
Acceptance criteria
- Criterion 1
- Criterion 2
- Criterion 3
Blocked by
- TODO- if blocked
Or:
None - can start immediately
User stories addressed
Reference by number from the parent PRD:
- User story 3
- User story 7
Notes
Any implementation notes, risks, or clarifications needed to make the task independently grabbable.
6. Summarize what you created
After creating the todos:
- list each created todo id and title
- show the shared PRD tag used for all created todos
- show dependency relationships using the real todo ids
- mention any user stories that were intentionally deferred or left out
Do not claim the todos unless the user asks you to. Do not modify the parent PRD unless the user explicitly asks you to.
Quality bar
A good output from this skill has these properties:
- every todo is independently understandable
- every todo is small enough to grab and finish
- every todo produces end-to-end value
- acceptance criteria are concrete and testable
- dependencies are real, not speculative
- the todo list is a better execution plan than the original PRD alone
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
pr-walkthrough
Generate an interactive visual walkthrough of any pull/merge request as a local HTML webapp. Produces a multi-slide presentation with SVG diagrams, annotated code, and architecture visuals. Pass a PR/MR URL and optional audience context (e.g. "assume I don't know Rust"). Use when the user says "walkthrough this PR", "explain this MR", "visual walkthrough", "PR presentation", or provides a PR/MR URL and asks for a walkthrough.
tdd
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 integration tests, or asks for test-first development.
write-a-prd
Create a PRD through user interview, codebase exploration, and module design. Use when user wants to write a PRD, create a product requirements document, or plan a new feature.
grill-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".
tmux
Remote control tmux sessions for interactive CLIs (python, gdb, etc.) by sending keystrokes and scraping pane output.
vcs-detect
Detect whether the current project uses jj (Jujutsu) or git for version control. Run this BEFORE any VCS command to use the correct tool.
Didn't find tool you were looking for?