prd-to-issues
Use when the user asks to break down a PRD into issues or create implementation tickets.
Skill by mia-cx
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/mia-cx-prd-to-issues
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/prd-to-issues
What's inside
- Skill name
prd-to-issues- Description
- Use when the user asks to break down a PRD into issues or create implementation tickets. Also use when writing a plan or roadmap based on a PRD to keep things traceable.
- License
- CC0-1.0
- Instructions
- 126 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# PRD to Issues
Break a PRD into independently-grabbable GitHub issues using vertical slices (tracer bullets). Created issues are attached as **sub-issues** of the parent PRD issue with **blocking relationships**, so GitHub natively tracks completion and dependencies.
## Process
### 1. Locate the PRD
Ask the user for the PRD issue number or URL. If it's not already in context, fetch it with `gh issue view <number>` (with comments). Explore the codebase if you haven't already.
### 2. Discover issue metadata
```bash
gh api graphql -f query='{organization(login:"OWNER"){issueTypes(first:20){nodes{name}}}}' \
--jq '.data.organization.issueTypes.nodes[].name' 2>/dev/null || true
gh label list --json name,description
gh api "/repos/OWNER/REPO/milestones?state=open" --jq '.[].title'
gh project list --owner OWNER --format json --jq '.projects[].title' 2>/dev/null || true
gh api "/repos/OWNER/REPO/collaborators" --jq '.[].login'
```
Note what's available — issue types, labels, milestones, projects, assignees — and apply it when creating issues in step 5. When the org has issue types, they carry the type signal; labels don't double as types.
### 3. Draft vertical slices
While exploring, look for opportunities to **prefactor** — "make the change easy, then make the easy change." Prefactoring slices come first and block the slices they ease.
Each issue is a thin vertical slice cutting through ALL integration layers end-to-end, NOT a horizontal slice of one layer:
- Each slice delivers a narrow but COMPLETE path through every layer (schema, API, UI).
- A completed slice is demoable or verifiable on its own.
- Each slice is sized to fit in a single fresh context window.
- Prefer many thin slices over few thick ones.
Slices are **HITL** (need human interaction — an architectural decision, a design review) or **AFK** (implementable and mergeable without one). Prefer AFK where possible.
**Wide refactors are the exception to vertical slicing.** A wide refactor is one mechanical change — rename a column, retype a shared symbol — whose blast radius fans across the whole codebase, so a single edit breaks thousands of call sites and no vertical slice can land green. Sequence it as **expand–contract**: first *expand* (add the new form beside the old so nothing breaks), then *migrate* call sites in batches sized by blast radius (per package, per directory — each batch its own issue blocked by the expand), finally *contract* (delete the old form once no caller remains, blocked by every migrate batch). When even the batches can't stay green alone, keep the sequence but let them share an integration branch that all block a final integrate-and-verify issue — green is promised only there.
### 4. Quiz the user
Present the breakdown as a numbered list — per slice: title, HITL/AFK, blocked-by, user stories covered — plus the proposed metadata assignments (labels, milestone, project, assignees, issue type). Ask:
- Does the granularity feel right? Should any slice be merged or split?
- Are the dependency relationships correct?
- Are the right slices HITL vs AFK?
- Are the metadata assignments correct?
Iterate until the user approves.
### 5. Create sub-issues with blocking relationships
Create issues in dependency order (blockers first) so real issue numbers can be referenced. For each slice:
```bash
# 1. Create with metadata, capture the number
ISSUE_URL=$(gh issue create --title "Slice title" --body-file <body> \
--label "l1,l2" --assignee "user" --milestone "m" --project "p" --repo OWNER/REPO)
ISSUE_NUMBER=$(echo "$ISSUE_URL" | grep -o '[0-9]*$')
# 2. Issue type, if the org has types
gh api --method PATCH "/repos/OWNER/REPO/issues/${ISSUE_NUMBER}" --input - <<< '{"type": "TYPE_NAME"}'
# 3. Attach as sub-issue of the PRD (needs the numeric id)
ISSUE_ID=$(gh api "/repos/OWNER/REPO/issues/${ISSUE_NUMBER}" --jq '.id')
gh api --method POST "/repos/OWNER/REPO/issues/PRD_NUMBER/sub_issues" \
--input - <<< "{\"sub_issue_id\": ${ISSUE_ID}}"
```
Then set blocking relationships via GraphQL (needs node IDs — collect them all first, then batch):
```bash
declare -A NODES
for num in 3 4 5 6; do
NODES[$num]=$(gh api "/repos/OWNER/REPO/issues/${num}" --jq '.node_id')
done
add_blocked_by() { # add_blocked_by <issue> <blocker>
gh api graphql -f query="
mutation {
addBlockedBy(input: {issueId: \"${NODES[$1]}\", blockingIssueId: \"${NODES[$2]}\"}) {
blockingIssue { number }
issue { number }
}
}" --jq '.data.addBlockedBy | "#\(.issue.number) blocked by #\(.blockingIssue.number)"'
}
add_blocked_by 4 3
add_blocked_by 5 3
```
Do NOT close or modify the parent PRD issue.
<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. Avoid file paths and code snippets — they go stale fast. Exception: a prototype snippet that encodes a decision more precisely than prose can (state machine, reducer, schema, type shape) — inline it trimmed to the decision-rich parts, noting it came from a prototype.
## Acceptance criteria
- [ ] Criterion 1
- [ ] Criterion 2
## Blocked by
- Blocked by #<issue-number> — or "None - can start immediately"
## User stories addressed
By number from the parent PRD, e.g. user stories 3 and 7.
</issue-template>
### 6. Confirm
Print a summary table:From mia-cx/skills, CC0-1.0.
More from mia-cx/skills
- 0.624score
babysit
mia-cx
Use when the user asks to babysit a pull request: watch it for review comments from bots and human reviewers, fix what is real, resolve the threads, and keep…
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
critical-thinking
mia-cx
Use when the user gives a sparse or underspecified request, a multi-step or agentic task, an unfamiliar problem, or examples to learn from, and whenever you…
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
gh-comment
mia-cx
Use when posting, editing, or replying to anything on GitHub under the user's account: pull request and issue comments, inline comments on a diff line…
SkillAFreshness: A★ 5Claude Code +9 - 0.618score
codex-computer-use
mia-cx
Use when the user asks to test a flow, verify UI behavior, inspect a running app, or capture screenshots.
SkillAFreshness: A★ 5Claude Code +9 - 0.616score
codex-review
mia-cx
Get an independent code review from Codex (gpt-6.1-sol) through T3's delegate_task — uncommitted changes, a branch diff, a commit, or a specific implementation.
SkillAFreshness: A★ 5Claude Code +9 - 0.598score
logo-design
mia-cx
Use when the user asks to design a logo, mark, or app icon for a project, or to draw a construction grid for a logo.
SkillAFreshness: A★ 5Claude Code +9 - 0.590score
address-issue
mia-cx
Use when the user asks to address or implement an issue.
SkillAFreshness: A★ 5Claude Code +9 - 0.583score
implement
mia-cx
Implement a piece of work based on a spec or set of tickets.
SkillAFreshness: A★ 5Claude Code +9 - 0.579score
next-slice
mia-cx
Advance to the next PRD slice after a merge: clean up the finished worktree and branch, fast-forward main, pick the next unblocked sub-issue of the PRD, set…
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
how-to-review
mia-cx
Use stage 1 every time you write, edit, or audit code.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
momentum
mia-cx
Shape output for ADHD readers: lower the cost of starting and keep work visibly moving with a small first action, numbered steps, visible wins.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
git-commit-and-push
mia-cx
Splits uncommitted changes into a small set of logical, single-concern git commits, then executes the commits and pushes to remote.
SkillBFreshness: B★ 5Claude Code +9
Signals
- Stars
- 5
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 16, 2026 (14 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- CC0-1.0
- Repository
- github.com/mia-cx/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from mia-cx
- 0.624score
babysit
mia-cx
Use when the user asks to babysit a pull request: watch it for review comments from bots and human reviewers, fix what is real, resolve the threads, and keep…
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
gh-comment
mia-cx
Use when posting, editing, or replying to anything on GitHub under the user's account: pull request and issue comments, inline comments on a diff line…
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
critical-thinking
mia-cx
Use when the user gives a sparse or underspecified request, a multi-step or agentic task, an unfamiliar problem, or examples to learn from, and whenever you…
SkillAFreshness: A★ 5Claude Code +9 - 0.618score
codex-computer-use
mia-cx
Use when the user asks to test a flow, verify UI behavior, inspect a running app, or capture screenshots.
SkillAFreshness: A★ 5Claude Code +9 - 0.616score
codex-review
mia-cx
Get an independent code review from Codex (gpt-6.1-sol) through T3's delegate_task — uncommitted changes, a branch diff, a commit, or a specific implementation.
SkillAFreshness: A★ 5Claude Code +9 - 0.598score
logo-design
mia-cx
Use when the user asks to design a logo, mark, or app icon for a project, or to draw a construction grid for a logo.
SkillAFreshness: A★ 5Claude Code +9
Cite this page
prd-to-issues skill. Agent Mart. https://agentmart.dev/skills/mia-cx-prd-to-issues (last updated 2026-10-24)