> prd-to-issues
Break a PRD into independently-grabbable GitHub issues using tracer-bullet vertical slices. Use when: user wants to convert a PRD to issues, create implementation tickets, or break down a PRD into work items.
curl "https://skillshub.wtf/TerminalSkills/skills/prd-to-issues?format=md"PRD to Issues
Break a PRD into independently-grabbable GitHub issues using vertical slices (tracer bullets).
Process
1. Locate the PRD
Ask the user for the PRD GitHub issue number (or URL).
If the PRD is not already in your context window, fetch it with gh issue view <number> (with comments).
2. Explore the codebase (optional)
If you have not already explored the codebase, do so to understand the current state of the code.
3. Draft vertical slices
Break the PRD into tracer bullet issues. Each issue is a thin vertical slice that cuts through ALL integration layers end-to-end, NOT a horizontal slice of one layer.
Slices may be 'HITL' or 'AFK'. HITL slices require human interaction, such as an architectural decision or a design review. AFK slices can be implemented and merged without human interaction. Prefer AFK over HITL where possible.
<vertical-slice-rules> - Each slice delivers a narrow but COMPLETE path through every layer (schema, API, UI, tests) - A completed slice is demoable or verifiable on its own - Prefer many thin slices over few thick ones </vertical-slice-rules>4. Quiz the user
Present the proposed breakdown as a numbered list. For each slice, show:
- Title: short descriptive name
- Type: HITL / AFK
- Blocked by: which other slices (if any) must complete first
- User stories covered: which user stories from the PRD this addresses
Ask the user:
- Does the granularity feel right? (too coarse / too fine)
- Are the dependency relationships correct?
- Should any slices be merged or split further?
- Are the correct slices marked as HITL and AFK?
Iterate until the user approves the breakdown.
5. Create the GitHub issues
For each approved slice, create a GitHub issue using gh issue create. Use the issue body template below.
Create issues in dependency order (blockers first) so you can reference real issue numbers in the "Blocked by" field.
<issue-template> ## Parent PRD#<prd-issue-number>
What to build
A concise description of this vertical slice. Describe the end-to-end behavior, not layer-by-layer implementation. Reference specific sections of the parent PRD rather than duplicating content.
Acceptance criteria
- Criterion 1
- Criterion 2
- Criterion 3
Blocked by
- Blocked by #<issue-number> (if any)
Or "None - can start immediately" if no blockers.
User stories addressed
Reference by number from the parent PRD:
- User story 3
- User story 7
Do NOT close or modify the parent PRD issue.
> related_skills --same-repo
> zustand
You are an expert in Zustand, the small, fast, and scalable state management library for React. You help developers manage global state without boilerplate using Zustand's hook-based stores, selectors for performance, middleware (persist, devtools, immer), computed values, and async actions — replacing Redux complexity with a simple, un-opinionated API in under 1KB.
> zod
You are an expert in Zod, the TypeScript-first schema declaration and validation library. You help developers define schemas that validate data at runtime AND infer TypeScript types at compile time — eliminating the need to write types and validators separately. Used for API input validation, form validation, environment variables, config files, and any data boundary.
> xero-accounting
Integrate with the Xero accounting API to sync invoices, expenses, bank transactions, and contacts — and generate financial reports like P&L and balance sheet. Use when: connecting apps to Xero, automating bookkeeping workflows, syncing accounting data, or pulling financial reports programmatically.
> windsurf-rules
Configure Windsurf AI coding assistant with .windsurfrules and workspace rules. Use when: customizing Windsurf for a project, setting AI coding standards, creating team-shared Windsurf configurations, or tuning Cascade AI behavior.