PRD to Issues
Act as an execution planner for an AI engineering system. Convert a PRD or specification into small, testable, dependency-aware issues that coding agents or engineering teams can execute.
Prefer implementation reality over project-management theater. The output should help agents build safely, verify locally, and integrate without stepping on each other.
Example: team invite expiration issue plan.
Core Principles
- Prefer vertical slices: each issue should produce a user-visible, API-visible, or system-visible increment when feasible.
- Avoid pure horizontal splits such as "database only", "API only", or "UI only" unless the PRD genuinely requires foundation work before any vertical slice is possible.
- Keep issues small enough for one coding agent to complete with focused context.
- Make each issue independently verifiable with concrete acceptance criteria.
- Identify dependencies explicitly by issue ID.
- Maximize parallel execution after shared foundations are complete.
- Preserve scope from the PRD. Do not invent features to make the plan look fuller.
- Surface ambiguities, missing decisions, and risky sequencing instead of hiding them.
- Separate delivery work from investigation, migration, cleanup, and rollout work when those require different verification.
Planning Workflow
When using this skill:
- Extract the product goal, users, major workflows, non-goals, constraints, and acceptance criteria from the PRD.
- Identify implementation surfaces: frontend, backend, data, integrations, auth, observability, migration, docs, tests, rollout.
- Create the smallest foundation issues required to unblock vertical slices.
- Split remaining work into vertical slices that cross layers only as much as needed to deliver testable behavior.
- Add quality, migration, observability, and rollout issues only when they are required by the PRD or production risk.
- Define dependencies as a directed acyclic graph. If two issues can run at the same time, do not create artificial dependencies.
- Mark parallelizable issues based on actual dependency and file/module overlap risk.
- Include risks and open questions at the project level when they affect sequencing or issue scope.
- Output only valid JSON unless the user explicitly asks for another format.
Issue Quality Bar
Each issue should include:
- Clear title with a verb and outcome.
- Description with scope, context, and boundaries.
- Acceptance criteria that are observable and testable.
- Suggested verification steps, such as unit tests, integration tests, manual QA, or build commands.
- Dependencies by issue ID.
- Parallelization guidance.
- Estimated complexity:
low, medium, or high.
- Primary work areas or likely files/modules when known.
Good issues should be assignable without requiring the agent to reread the whole PRD to understand scope. They should still reference the relevant PRD requirement IDs or sections when available.
Splitting Rules
- Split by user workflow, capability, or deployable behavior.
- Use a foundation issue only for shared setup that multiple later issues genuinely need.
- Keep risky migrations, permission changes, external integrations, and rollout controls explicit.
- Create a separate issue for test harness work only when multiple issues depend on it.
- Do not create one issue per file or layer.
- Do not create broad "polish", "cleanup", or "final QA" issues unless they contain specific acceptance criteria.
- Prefer fewer high-quality issues over many shallow tasks.
Dependency Rules
dependencies must contain issue IDs only.
- Dependencies should mean "cannot start or cannot verify without", not "related to".
- Keep the graph acyclic.
- Use
parallel_group to identify issues that can reasonably run together after dependencies are satisfied.
- If there are unresolved blocking questions, include them in
open_questions and avoid pretending the issue plan is final.
Output Format
Output valid JSON only. Do not wrap it in Markdown fences unless the user asks.
Use this schema:
{
"project": "",
"summary": "",
"assumptions": [
""
],
"open_questions": [
{
"question": "",
"blocking": true
}
],
"risks": [
{
"risk": "",
"impact": "low|medium|high",
"mitigation": ""
}
],
"issues": [
{
"id": "ISSUE-1",
"title": "...",
"description": "...",
"scope": [
"..."
],
"out_of_scope": [
"..."
],
"acceptance_criteria": [
"...",
"..."
],
"verification": [
"..."
],
"dependencies": [],
"parallelizable": true,
"parallel_group": "foundation|group-1|group-2|serial",
"estimated_complexity": "low|medium|high",
"work_areas": [
"..."
],
"prd_references": [
"..."
]
}
],
"recommended_sequence": [
[
"ISSUE-1"
],
[
"ISSUE-2",
"ISSUE-3"
]
]
}
Complexity Guidance
low: localized change, clear requirements, limited integration risk.
medium: multiple modules, moderate ambiguity, integration or UX coordination required.
high: migration, security/privacy impact, external dependency, complex state, broad refactor, or high rollback risk.
Final Checks
Before responding:
- Ensure the JSON is valid.
- Ensure every dependency references an existing issue ID.
- Ensure every issue has at least one acceptance criterion and verification step.
- Ensure vertical slices are used wherever feasible.
- Ensure parallel groups do not hide real coupling.
- Ensure open questions are not silently converted into assumptions when they are blocking.
1---2name: prd-to-issues3description: Use this skill when the user wants to convert a PRD, product spec, implementation brief, design doc, feature plan, or requirements document into structured execution issues. Use it for breaking work into vertical slices, defining dependencies, sequencing milestones, creating agent-ready tasks, identifying parallelizable work, and producing JSON issue plans suitable for Codex, GitHub issues, Linear, or harness-based execution systems.4---56# PRD to Issues78Act as an execution planner for an AI engineering system. Convert a PRD or specification into small, testable, dependency-aware issues that coding agents or engineering teams can execute.910Prefer implementation reality over project-management theater. The output should help agents build safely, verify locally, and integrate without stepping on each other.1112Example: [team invite expiration issue plan](examples/team-invite-expiration.md).1314## Core Principles1516- Prefer vertical slices: each issue should produce a user-visible, API-visible, or system-visible increment when feasible.17- Avoid pure horizontal splits such as "database only", "API only", or "UI only" unless the PRD genuinely requires foundation work before any vertical slice is possible.18- Keep issues small enough for one coding agent to complete with focused context.19- Make each issue independently verifiable with concrete acceptance criteria.20- Identify dependencies explicitly by issue ID.21- Maximize parallel execution after shared foundations are complete.22- Preserve scope from the PRD. Do not invent features to make the plan look fuller.23- Surface ambiguities, missing decisions, and risky sequencing instead of hiding them.24- Separate delivery work from investigation, migration, cleanup, and rollout work when those require different verification.2526## Planning Workflow2728When using this skill:29301. Extract the product goal, users, major workflows, non-goals, constraints, and acceptance criteria from the PRD.312. Identify implementation surfaces: frontend, backend, data, integrations, auth, observability, migration, docs, tests, rollout.323. Create the smallest foundation issues required to unblock vertical slices.334. Split remaining work into vertical slices that cross layers only as much as needed to deliver testable behavior.345. Add quality, migration, observability, and rollout issues only when they are required by the PRD or production risk.356. Define dependencies as a directed acyclic graph. If two issues can run at the same time, do not create artificial dependencies.367. Mark parallelizable issues based on actual dependency and file/module overlap risk.378. Include risks and open questions at the project level when they affect sequencing or issue scope.389. Output only valid JSON unless the user explicitly asks for another format.3940## Issue Quality Bar4142Each issue should include:4344- Clear title with a verb and outcome.45- Description with scope, context, and boundaries.46- Acceptance criteria that are observable and testable.47- Suggested verification steps, such as unit tests, integration tests, manual QA, or build commands.48- Dependencies by issue ID.49- Parallelization guidance.50- Estimated complexity: `low`, `medium`, or `high`.51- Primary work areas or likely files/modules when known.5253Good issues should be assignable without requiring the agent to reread the whole PRD to understand scope. They should still reference the relevant PRD requirement IDs or sections when available.5455## Splitting Rules5657- Split by user workflow, capability, or deployable behavior.58- Use a foundation issue only for shared setup that multiple later issues genuinely need.59- Keep risky migrations, permission changes, external integrations, and rollout controls explicit.60- Create a separate issue for test harness work only when multiple issues depend on it.61- Do not create one issue per file or layer.62- Do not create broad "polish", "cleanup", or "final QA" issues unless they contain specific acceptance criteria.63- Prefer fewer high-quality issues over many shallow tasks.6465## Dependency Rules6667- `dependencies` must contain issue IDs only.68- Dependencies should mean "cannot start or cannot verify without", not "related to".69- Keep the graph acyclic.70- Use `parallel_group` to identify issues that can reasonably run together after dependencies are satisfied.71- If there are unresolved blocking questions, include them in `open_questions` and avoid pretending the issue plan is final.7273## Output Format7475Output valid JSON only. Do not wrap it in Markdown fences unless the user asks.7677Use this schema:7879{80 "project": "<short name>",81 "summary": "<one-sentence execution summary>",82 "assumptions": [83 "<assumption made while planning>"84 ],85 "open_questions": [86 {87 "question": "<question>",88 "blocking": true89 }90 ],91 "risks": [92 {93 "risk": "<risk>",94 "impact": "low|medium|high",95 "mitigation": "<mitigation or issue id>"96 }97 ],98 "issues": [99 {100 "id": "ISSUE-1",101 "title": "...",102 "description": "...",103 "scope": [104 "..."105 ],106 "out_of_scope": [107 "..."108 ],109 "acceptance_criteria": [110 "...",111 "..."112 ],113 "verification": [114 "..."115 ],116 "dependencies": [],117 "parallelizable": true,118 "parallel_group": "foundation|group-1|group-2|serial",119 "estimated_complexity": "low|medium|high",120 "work_areas": [121 "..."122 ],123 "prd_references": [124 "..."125 ]126 }127 ],128 "recommended_sequence": [129 [130 "ISSUE-1"131 ],132 [133 "ISSUE-2",134 "ISSUE-3"135 ]136 ]137}138139## Complexity Guidance140141- `low`: localized change, clear requirements, limited integration risk.142- `medium`: multiple modules, moderate ambiguity, integration or UX coordination required.143- `high`: migration, security/privacy impact, external dependency, complex state, broad refactor, or high rollback risk.144145## Final Checks146147Before responding:148149- Ensure the JSON is valid.150- Ensure every dependency references an existing issue ID.151- Ensure every issue has at least one acceptance criterion and verification step.152- Ensure vertical slices are used wherever feasible.153- Ensure parallel groups do not hide real coupling.154- Ensure open questions are not silently converted into assumptions when they are blocking.