This skill should be used when the user asks to "create issues from research", "turn research into GitHub issues", "create issues from feature spec", "turn plan into issues", "issues from parallel plan", "create issues from PRP plan", "generate issues from deep-research output", "create tracking issues from plan", "parse plan into actionable issues", or mentions converting documentation produced by ycc:deep-research, ycc:feature-research, ycc:parallel-plan, ycc:plan-workflow, or ycc:prp-plan into structured GitHub issues with labels and tracking hierarchy.
Convert planning and research output into structured GitHub issues with tracking hierarchy, labels, and priority classification. Parse source documents to extract tasks, features, deliverables, and context, then create well-organized GitHub issues via GitHub MCP server (preferred) or gh CLI (fallback).
| Source Type | Produced By | Input Path Pattern |
|---|---|---|
| deep-research | ycc:deep-research | Directory with RESEARCH-REPORT.md |
| feature-spec | ycc:feature-research | docs/plans/*/feature-spec.md |
| parallel-plan | ycc:parallel-plan, ycc:plan-workflow | docs/plans/*/parallel-plan.md |
| prp-plan | ycc:prp-plan | docs/prps/plans/*.plan.md |
| prd | ycc:prp-prd |
docs/prps/prds/*.prd.mdProcessing source for: $ARGUMENTS
Parse arguments:
--research-dir)deep-research, feature-spec, parallel-plan, prp-plan). Auto-detected if omitted.Check if GitHub MCP tools are available by looking for tools matching mcp__github__*.
| MCP Tools Available? | GitHub Operations Strategy |
|---|---|
Yes (mcp__github__* tools found) | Use MCP tools for issue creation, label creation, and repository queries |
No (no mcp__github__* tools found) | Use gh CLI via Bash for all GitHub operations |
Always CLI regardless: git operations, validation script, file reading/analysis.
Important: Lack of MCP tools must NEVER block the workflow. If a specific MCP call fails, fall back to the equivalent gh CLI command.
WARNING: This skill does NOT check for existing issues. Running it twice creates duplicates. Warn the user before proceeding if issues may have already been created from this source.
Determine the source path:
--source PATH or --research-dir PATH is specified, use that pathdocs/plans/, docs/prps/plans/, docs/prps/prds/, docs/research/, research/${CLAUDE_PLUGIN_ROOT}/skills/research-to-issues/scripts/validate-prerequisites.sh "<source-path>" --type "<type-if-specified>"
The script auto-detects the source type and outputs DETECTED_TYPE: <type>. Parse this from stdout.
If validation fails, evaluate:
gh CLI missing BUT MCP tools available: Proceedgh CLI fails AND no MCP tools: StopDisplay the detected source type and source path to the user for confirmation before proceeding.
Read the parsing reference for the detected source type:
| Detected Type | Reference File |
|---|---|
| deep-research | ${CLAUDE_PLUGIN_ROOT}/skills/research-to-issues/references/parse-deep-research.md |
| feature-spec | ${CLAUDE_PLUGIN_ROOT}/skills/research-to-issues/references/parse-feature-spec.md |
| parallel-plan | ${CLAUDE_PLUGIN_ROOT}/skills/research-to-issues/references/parse-parallel-plan.md |
| prp-plan | ${CLAUDE_PLUGIN_ROOT}/skills/research-to-issues/references/parse-prp-plan.md |
| prd | ${CLAUDE_PLUGIN_ROOT}/skills/research-to-issues/references/parse-prd.md |
Follow the extraction instructions in the reference to produce:
{title, description, metadata, success_criteria} -- these become tracking issues{title, body_fields, labels, parent_tracking_unit} -- these become child issues{title, body_fields, labels, group} -- anti-scope, gaps, decisions (optional)Read ${CLAUDE_PLUGIN_ROOT}/skills/research-to-issues/references/label-taxonomy.md for priority assignment rules by source type. Apply priority labels to each item.
Construct a complete plan:
Collect all unique labels needed. Read ${CLAUDE_PLUGIN_ROOT}/skills/research-to-issues/references/label-taxonomy.md for the full color scheme. Always include the source:{type} provenance label.
Read ${CLAUDE_PLUGIN_ROOT}/skills/research-to-issues/references/plan-display-format.md and display the plan using the format appropriate for the detected source type.
If --dry-run is present in $ARGUMENTS: display the plan and STOP. Do not create any issues or labels.
Output: "Dry run complete. Remove --dry-run to create these issues."
For each label not already in the repo:
MCP (preferred): mcp__github__create_label with owner, repo, name, color (no # prefix), description.
CLI fallback:
gh label create "<label-name>" --description "<description>" --color "<hex-color>" --force
Create all child issues before tracking issues (tracking issues need the child issue numbers for checkbox links).
Select the template based on source type:
| Source Type | Template |
|---|---|
| deep-research, feature-spec, prd | ${CLAUDE_PLUGIN_ROOT}/skills/research-to-issues/templates/feature-issue.md |
| parallel-plan, prp-plan | ${CLAUDE_PLUGIN_ROOT}/skills/research-to-issues/templates/task-issue.md |
MCP (preferred): mcp__github__create_issue with owner, repo, title, body, labels array.
CLI fallback:
gh issue create --title "<title>" --body "$(cat <<'EOF'
<composed-body>
EOF
)" --label "<label1>,<label2>,..."
Capture the issue number from each created issue. Map item identifiers to issue numbers.
Same process as Step 11 for anti-scope items, research gaps, and decision items using appropriate template variants from feature-issue.md.
Compose tracking issue bodies using ${CLAUDE_PLUGIN_ROOT}/skills/research-to-issues/templates/tracking-issue.md. Populate checkbox lists with links to child issue numbers (e.g., - [ ] #42 Set up data models).
MCP (preferred): mcp__github__create_issue with title "Phase {N}: {title}" or "Batch {N}: {title}", body, labels.
CLI fallback:
gh issue create --title "Phase {N}: {title}" --body "$(cat <<'EOF'
<composed-body>
EOF
)" --label "tracking,phase:{N},priority:high,source:{type}"
# Issues Created Successfully
**Repository**: {owner/repo}
**Source type**: {detected_type}
**Total issues created**: {count}
**Labels created**: {count}
## Tracking Issues
| Group | Title | Issue | Child Issues |
| ------- | ------------- | ----- | ------------ |
| Phase 1 | Foundation | #XX | {count} |
| Phase 2 | Core Platform | #XX | {count} |
## All Issues
| # | Issue | Title | Labels |
| --- | ----- | ------------------ | --------------------------------- |
| 1 | #XX | Set up data models | type:task, phase:1, priority:high |
## Next Steps
1. Review tracking issues for completeness
2. Assign issues to milestones if desired
3. Prioritize and assign to team members
4. Use `under-review` filter to find items needing decision
--dry-run on first invocationgh CLI fallbackType-specific parsing instructions:
references/parse-deep-research.md -- Deep-research document extractionreferences/parse-feature-spec.md -- Feature-spec document extractionreferences/parse-parallel-plan.md -- Parallel-plan document extractionreferences/parse-prp-plan.md -- PRP plan document extractionreferences/parse-prd.md -- PRD document extractionShared references:
references/label-taxonomy.md -- Complete label scheme with colors and priority rulesreferences/plan-display-format.md -- Plan display format by source typetemplates/tracking-issue.md -- Tracking issue body structuretemplates/feature-issue.md -- Feature, anti-scope, and research gap issuestemplates/task-issue.md -- Implementation task issues (plan-sourced)scripts/validate-prerequisites.sh -- Multi-source validation and type detection