to-issues
Use when a plan, spec, or PRD must become an actionable backlog — break it into thin dependency-aware issues that each deliver a verifiable vertical slice
Best use case
to-issues is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Use when a plan, spec, or PRD must become an actionable backlog — break it into thin dependency-aware issues that each deliver a verifiable vertical slice
Teams using to-issues should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/to-issues/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How to-issues Compares
| Feature / Agent | to-issues | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Use when a plan, spec, or PRD must become an actionable backlog — break it into thin dependency-aware issues that each deliver a verifiable vertical slice
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# To Issues To Issues turns a plan into independently executable backlog items. The goal is not to split work by layer, but to create thin vertical slices that are reviewable, testable, and dependency-aware. ## When to Use - A plan, spec, or PRD is approved and now needs implementation tickets - A broad initiative must be broken into thin, demoable slices - The current backlog is too coarse to delegate safely - You need to separate work that can proceed independently from work that is blocked ## When NOT to Use | Instead of to-issues | Use | |----------------------|-----| | You are still defining the feature itself | `create-prd` or planning first | | You need to triage an existing issue backlog | `github-issue-triage` | | The work is already small enough to execute directly | do the task | ## Workflow ### 1. Start from an approved source Use a real input artifact: - plan - PRD - spec - parent issue Do not create issue slices from an unresolved conversation. ### 2. Extract vertical slices Each issue should represent a thin end-to-end path, not a horizontal layer split. Good slices usually: - have one clear outcome - can be tested or demonstrated on their own - expose their dependency relationship to other slices Bad slices are things like "database changes only" or "UI updates only" if they cannot be verified in isolation. ### 3. Mark blockers explicitly For each proposed issue, identify: - what it delivers - what blocks it - whether it can start immediately Publish blockers first so later issues can reference them cleanly. ### 4. Review the breakdown before publishing Show the user the proposed issue set and ask whether: - the slices are too coarse or too fine - any issue should be merged or split - the dependency order is correct Only publish after the breakdown is approved. ### 5. Publish to the active issue tracker Support the tracker the project already uses. - **GitHub**: use `gh issue create` (or equivalent GitHub CLI workflow) when publishing approved issues - **GitLab**: use the GitLab issue workflow or CLI available in the environment Do not assume one provider if the project uses another. ## Output Template ```markdown ## Proposed Issue Breakdown 1. **Title:** ... **Blocked by:** None / #123 **Delivers:** ... **Acceptance signal:** ... 2. ... ``` ## Issue Body Template ```markdown ## Parent [Reference to the source plan, PRD, or parent issue] ## What to build [One thin vertical slice with end-to-end value] ## Acceptance criteria - [ ] ... - [ ] ... - [ ] ... ## Blocked by None - can start immediately ``` ## Common Rationalizations | Rationalization | Reality | |----------------|---------| | "Let's make one big implementation issue first." | Huge tickets hide sequencing mistakes and block delegation. | | "We can split the layers now and connect them later." | Horizontal slices are harder to demo and easier to strand. | | "Dependencies are obvious." | If they are not written down, the backlog will drift. | ## Red Flags - Several issues depend on work that has no explicit parent blocker - A slice only changes one layer and cannot be verified on its own - The user has not approved the breakdown before publication - The issue titles use implementation jargon instead of domain language from the source artifact ## Verification - [ ] Every issue represents a thin vertical slice - [ ] Dependencies are explicit - [ ] The user approved the granularity before publishing - [ ] The tracker-specific publish path matches the project actually in use ## See Also - [`create-prd`](../../product/create-prd/SKILL.md) — define the feature before turning it into backlog items - [`github-issue-triage`](../../copilot-exclusive/github-issue-triage/SKILL.md) — organize and review an existing GitHub issue backlog - [`team-planner`](../../copilot-exclusive/team-planner/SKILL.md) — assign the resulting slices across specialist agents
Related Skills
verification-before-completion
Use before claiming any task is done — run the exact command that proves the fix works, read the output, and only then report success.
using-git-worktrees
Use when you need multiple branches checked out at once — create isolated working directories for parallel development without cloning the repository repeatedly
triage
Use when a single issue needs structured triage — classify it, reproduce if needed, request missing information, and leave a durable brief or close-out note in the tracker.
sprint-workflow
Use when starting a new feature, refactor, or multi-step dev task — runs the full sprint cycle (Think → Plan → Build → Review → Test → Ship → Monitor) using Copilot CLI's plan/autopilot modes.
sprint-retro
Use at the end of a sprint to run a data-driven retrospective — analyzes session history and git metrics to surface what shipped, what slowed you down, and concrete improvements.
security-audit
Use when a codebase needs a formal security audit beyond a quick scan — applies OWASP Top 10 and STRIDE threat modeling from a CSO perspective to surface systemic vulnerabilities.
release
Use when a sprint or feature is complete and ready to ship — tags the version, generates GitHub Release notes, runs rollout or smoke verification, and publishes to npm/PyPI/Docker registries.
prompt-optimizer
Use when a rough prompt, vague idea, or task description needs to become a finished copy-pasteable prompt for a chat-based LLM - rewrite it into one ready-to-send prompt with no blanks, no placeholders, and a clear output shape.
outside-voice
Use when you need an independent second opinion before, during, or after implementation — run challenge, consult, or review mode in a direct builder-to-builder voice
llm-wiki
Use when research or domain knowledge keeps getting rediscovered across sessions — build a supplementary markdown wiki that compounds synthesized knowledge without replacing GitHub or committed project guidance
interview-me
Use when a request is underspecified and you need to discover what the user actually wants before writing a plan, spec, or code - ask one question at a time, attach your current hypothesis, and stop only after the intent is explicitly confirmed.
implementation-review
Use after an implementation pass lands — compare the original task spec or handoff against the delivered diff, classify each requested item, and produce an actionable follow-up report.