Best for
- Use when the user wants a finished PRD broken into GitHub milestones and issues — "file the issues from the PRD", "/prd-to-issues", "break this into GitHub issues".
richkuo/rk-skills/skills/prd-to-issues/SKILL.md
Use when the user wants a finished PRD broken into GitHub milestones and issues — "file the issues from the PRD", "/prd-to-issues", "break this into GitHub issues". Derives dependency-ordered milestones, files complete complexity-scored issues (github-issue-format), and stamps each with an Execution block (typed predecessors, build model, effort, fableplan, plan effort, review trigger). Stage 4 of the new-app-pipeline.
Decision brief
Break a refined PRD into milestones and fully-specified GitHub issues that cold agents can implement one at a time. Every issue must be self-sufficient: an agent holding only the issue body and the PRD can build it correctly.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/richkuo/rk-skills --skill "skills/prd-to-issues"Inspect the Agent Skill "prd-to-issues" from https://github.com/richkuo/rk-skills/blob/bee0535feb7f449078ba221a67ea5ec4f47a4931/skills/prd-to-issues/SKILL.md at commit bee0535feb7f449078ba221a67ea5ec4f47a4931. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
gh api repos///milestones -f title='...' -f description='...' — one per phase, descriptions listing the member issues' themes.
Derive milestones from dependency structure, not feature themes. Typical shape: v0 — Foundation & core (scaffold, schema, auth, core domain flows, payments happy path), v1 — Lifecycle & delivery (jobs, schedulers, notif…
gh api repos///milestones -f title='...' -f description='...' — one per phase, descriptions listing the member issues' themes.
Per github-issue-format: [C] plain-language title, complexity rationale first line, then Problem (with PRD § references), Goal, Approach, Acceptance criteria, Plain simple English (mandatory, under 55 words, ASD-STE100), attribution footer. The step 4 Execution block is appended…
Append to every issue body, before the footer:
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 48 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Break a refined PRD into milestones and fully-specified GitHub issues that cold agents can implement one at a time. Every issue must be self-sufficient: an agent holding only the issue body and the PRD can build it correctly.
Load the github-issue-format skill before filing anything — mandatory.
v0 — Foundation & core <surface> (scaffold, schema, auth, core domain flows, payments happy path), v1 — Lifecycle & delivery (jobs, schedulers, notifications, end-of-life), v2 — <second surface> parity, v3 — Post-MVP.gh api repos/<owner>/<repo>/milestones -f title='...' -f description='...' — one per phase, descriptions listing the member issues' themes.
Per github-issue-format: [C<score>] plain-language title, complexity rationale first line, then Problem (with PRD § references), Goal, Approach, Acceptance criteria, ## Plain simple English (mandatory, under 55 words, ASD-STE100), attribution footer. The step 4 Execution block is appended between that last section and the footer.
Issue-quality rules learned the hard way:
gh issue create --milestone), sequentially so numbering is stable.Append to every issue body, before the footer:
## Execution
- **Depends on:** #<n>[, #<n>…] | none
- **Runs after:** #<n>[, #<n>…] | none
- **Build model:** <Fable 5 | Opus 5 | ...>
- **Effort:** <low (Fable-only, discretionary — below the formula floor) | medium (Fable-only) | high | xhigh>
- **fableplan first:** <Yes — Fable 5 plans, plan posted to this issue, builder implements against it | No>
- **Plan effort:** <low | medium | high> (optional — omit for the default, high; only meaningful when fableplan first is Yes)
- **PR review:** standard `@claude` review trigger
Ordering-field rules:
none when there is no edge of that kind.Runs after, not Depends on. If an edge is genuinely hard, record it only in Depends on; never list one predecessor in both fields.Assignment — derive from the complexity score band. Load the canonical formula and band table from validate-issue step 6, score each issue there, then stamp Execution from that band:
| Band | Score band | Build model | fableplan first | Effort |
|---|---|---|---|---|
| 0 | 0–9 | Sonnet 5 (or the repo's cheap/fast builder) | No | high |
| 1 | 10–20 | Sonnet 5 (or the repo's cheap/fast builder) | No | xhigh |
| 2 | 21–40 | Opus 5 | No | high |
| 3 | 41–60 | Opus 5 | No | xhigh |
| 4 | 61–80 | Opus 5 | Yes | high |
| 5 | 81–99 | Opus 5 | Yes | xhigh |
Never stamp Fable 5 as the Build model — no band defaults to a Fable build, and this skill never assigns one; a Fable build exists only when the user explicitly directs it on a specific issue.
Axes already encode the old parallel heuristics (money/security → high Risk; design-heavy → high Uncertainty; mechanical grind → high Scope/Volume at Capability 0). Do not override the band with a separate signal table unless a safety carve-out is explicit in the PRD and Risk was under-scored — then raise Risk and re-score, don't bypass the formula.
validate-issue step 6 band table owns the Validate mapping. A missing [C..] prefix is unknown, not small, so it routes as band 5. Never add a Validate model: or Validate effort: line to an Execution block — nothing reads either; a legacy Validate effort: line on an older issue is ignored.fableplan first: Yes issues — it is ignored everywhere else. The planner is always Fable 5, so the legal tiers are low, medium, and high — never xhigh (per the effort-ceiling rule in the next bullet) — this line sets effort only, never a model. Default (and ceiling) high; drop to medium when the score cleared 61 through the Coupling bump rather than Risk/Uncertainty, so the plan is mostly sequencing known work. Reserve low for an issue whose approach is already settled in the issue body and only needs ordering.@claude sonnet review at 0–10, the standard @claude review at 11–40 (no pinned model), @claude opus review at 41–80, @claude fable review effort:high at 81+ or with no score. The fable trigger is first-review-only, and the blocking re-reviews after it step down one rung each — @claude opus review for the first, @claude review for every one after that, stopping there rather than dropping to sonnet. Stamp an explicit @claude <model> review effort:<tier> line only to override that default, and only with a model the Action admits — sonnet, opus or fable. claude.yml resolves no other shorthand, and it reads an unresolved one as the route keyword, which sends the "review" to its write-capable fix-pr job. Stamp sonnet where you mean the cheapest reviewer; never stamp haiku.A compact table: issue number, C, title. Note the spine/waves ordering and which issues concentrate risk.
| Situation | Do this |
|---|---|
| An issue can't be specced without a decision the PRD doesn't make | Stop; run prd-questions for it first — never file a stub |
| Two issues want to touch the same module in the same wave | In the later issue's Runs after, list the earlier issue, or merge them if they are not independently implementable |
| A milestone exceeds ~12 issues | Split it; workflow waves get unwieldy past that |
| Tempted to skip Execution blocks "for now" | Don't — cold agents need them; that's the point |
Frequently asked questions
Break a refined PRD into milestones and fully-specified GitHub issues that cold agents can implement one at a time. Every issue must be self-sufficient: an agent holding only the issue body and the PRD can build it correctly.
The source record exposes this install command: npx skills add https://github.com/richkuo/rk-skills --skill "skills/prd-to-issues". Inspect the command and pinned source before running it.