Issue Quality Criteria
Every issue must be:
- Specific: Clear title and description that a developer can act on without additional context
- Scoped: One deliverable per issue; break epics into sub-tasks
- Labeled: Type, priority, area/module, and phase/milestone labels applied
- Linked: References the relevant planning or requirements doc section
- Testable: Acceptance criteria that define "done"
Context Conservation
- Read ONLY the specific docs needed for the current task
- Use the project config file (
.claude/github-issues-config.md) to find which docs to read
- Never read multiple requirements/planning files in a single workflow run
Duplicate Prevention
- Always fetch existing issues with
gh issue list before creating new ones
- Match by title keywords and labels to detect duplicates
- Present batch to user for review before creating any issues
Label Categories (Summary)
See references/label-conventions.md for full details.
| Category |
Purpose |
Examples |
| Type |
What kind of work |
feature, bug, enhancement, refactor, docs, test, chore |
| Priority |
How urgent |
P0-critical, P1-high, P2-medium, P3-low |
| Area/Module |
Which component |
Project-specific (e.g., mod:api, area:frontend) |
| Phase/Milestone |
When to deliver |
Project-specific (e.g., phase:1, sprint:3) |
GitHub CLI Usage
All GitHub operations use the gh CLI. Key commands:
gh issue list --label LABEL --state STATE --limit N
gh issue create --title TITLE --body BODY --label L1,L2 --milestone M
gh issue edit NUMBER --add-label LABEL --milestone M
gh issue view NUMBER
gh label list --json name,description,color
Project Configuration Discovery
This skill adapts to any GitHub project. Configuration is discovered in this order:
Config file (preferred): Read .claude/github-issues-config.md in the project root. This file defines project-specific phases, modules/areas, roadmap paths, and label conventions.
CLAUDE.md hints: Read the project's CLAUDE.md for documentation structure, architecture, and conventions.
GitHub label discovery: Run gh label list --json name,description,color --limit 200 to discover existing labels.
Ask the user: If no config file exists and the project structure is unclear, ask the user about:
- How the project organizes work (phases, sprints, milestones)
- Where the roadmap or planning docs live
- What module/area labels to use
- What milestone naming convention to follow
Config File Format
The optional .claude/github-issues-config.md file should contain:
- Project name and description
- Phase/milestone definitions with descriptions
- Module/area labels with scopes
- Roadmap file path(s)
- Requirements/docs directory path
- Phase-to-documentation mapping
- Milestone naming conventions
If no config file exists, the skill will work by discovering project structure dynamically and confirming with the user.
- Generate issues for a phase/milestone - Read the roadmap, find incomplete items, create GitHub Issues
- Audit existing issues - Compare open issues against the roadmap, find gaps and problems
- Triage and prioritize - Review open issues, suggest priorities, update labels and milestones
Type a number, keyword, or skip to dismiss.
Note: This skill blocks on user input. If triggered unintentionally,
type skip or dismiss to cancel.
If the user types skip or dismiss, briefly confirm cancellation (e.g., "manage-github-issues cancelled.") and end the skill without running any workflow.
If the input does not clearly match any option above and is not "skip" or "dismiss", respond:
"manage-github-issues was triggered but your input didn't match a workflow. Options: 1-3 (listed above). Type skip to dismiss."
After reading the workflow, follow it exactly.
Quality Standards:
- issue-quality-standards.md (writing effective issues, best practices)
- label-conventions.md (label categories, labeling rules, conventions)
| Workflow |
Purpose |
| generate-phase-issues.md |
Read roadmap phase, create missing GitHub Issues |
| audit-issues.md |
Compare open issues against roadmap, find gaps |
| triage-and-prioritize.md |
Review untriaged issues, suggest and apply priorities |
| Template |
Purpose |
| feature-issue.md |
Feature or enhancement issue body |
| bug-issue.md |
Bug report issue body |
| epic-issue.md |
Epic/parent issue with task checklist |
When gh commands fail:
- Check authentication:
gh auth status
- Check repo context:
gh repo view (must be in a git repo with a GitHub remote)
- If rate-limited: wait and retry, or reduce
--limit on list commands
- If label/milestone doesn't exist: create it first with
gh label create or gh api
- If issue creation fails: report the error, skip that issue, continue with the batch
- Never silently drop errors -- always report failures to the user
When labels don't exist yet:
Create missing labels before issue creation:
gh label create "{LABEL_NAME}" --color "{HEX_COLOR}" --description "{DESCRIPTION}"
When milestones don't exist yet:
gh api repos/{owner}/{repo}/milestones -f title="{MILESTONE_NAME}" -f state=open
Related skills and when to use them:
| Skill |
When to Use Instead |
/create-plan |
Before generating issues -- plan the implementation first, then create issues from the plan |
/check-todos |
For in-session task tracking; this skill is for persistent GitHub Issues |
/requirements_generator |
When requirements need updating before issues can be generated |
/ask-me-questions |
When unclear what phase or scope to generate issues for |
Typical workflow sequence:
/requirements_generator -- ensure requirements are current
/manage-github-issues (generate) -- create issues from requirements
/manage-github-issues (triage) -- prioritize the backlog
/create-plan -- plan implementation of the highest-priority issues
/manage-github-issues (audit) -- periodic check that issues stay on track
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: manage-github-issues3description: Reviews project roadmaps and requirements to generate, audit, and triage GitHub Issues. Keeps any project on track by syncing planning docs with actionable issues. Use when creating issues for a phase or milestone, auditing existing issues, or triaging and prioritizing open work. Use when this capability is needed.4---56<essential_principles>78**Issue Quality Criteria**9Every issue must be:1011- **Specific**: Clear title and description that a developer can act on without additional context12- **Scoped**: One deliverable per issue; break epics into sub-tasks13- **Labeled**: Type, priority, area/module, and phase/milestone labels applied14- **Linked**: References the relevant planning or requirements doc section15- **Testable**: Acceptance criteria that define "done"1617**Context Conservation**1819- Read ONLY the specific docs needed for the current task20- Use the project config file (`.claude/github-issues-config.md`) to find which docs to read21- Never read multiple requirements/planning files in a single workflow run2223**Duplicate Prevention**2425- Always fetch existing issues with `gh issue list` before creating new ones26- Match by title keywords and labels to detect duplicates27- Present batch to user for review before creating any issues2829**Label Categories (Summary)**30See `references/label-conventions.md` for full details.3132| Category | Purpose | Examples |33|----------|---------|----------|34| Type | What kind of work | `feature`, `bug`, `enhancement`, `refactor`, `docs`, `test`, `chore` |35| Priority | How urgent | `P0-critical`, `P1-high`, `P2-medium`, `P3-low` |36| Area/Module | Which component | Project-specific (e.g., `mod:api`, `area:frontend`) |37| Phase/Milestone | When to deliver | Project-specific (e.g., `phase:1`, `sprint:3`) |3839**GitHub CLI Usage**40All GitHub operations use the `gh` CLI. Key commands:4142- `gh issue list --label LABEL --state STATE --limit N`43- `gh issue create --title TITLE --body BODY --label L1,L2 --milestone M`44- `gh issue edit NUMBER --add-label LABEL --milestone M`45- `gh issue view NUMBER`46- `gh label list --json name,description,color`4748</essential_principles>4950<project_config>5152**Project Configuration Discovery**5354This skill adapts to any GitHub project. Configuration is discovered in this order:55561. **Config file** (preferred): Read `.claude/github-issues-config.md` in the project root. This file defines project-specific phases, modules/areas, roadmap paths, and label conventions.57582. **CLAUDE.md hints**: Read the project's `CLAUDE.md` for documentation structure, architecture, and conventions.59603. **GitHub label discovery**: Run `gh label list --json name,description,color --limit 200` to discover existing labels.61624. **Ask the user**: If no config file exists and the project structure is unclear, ask the user about:63 - How the project organizes work (phases, sprints, milestones)64 - Where the roadmap or planning docs live65 - What module/area labels to use66 - What milestone naming convention to follow6768**Config File Format**6970The optional `.claude/github-issues-config.md` file should contain:7172- Project name and description73- Phase/milestone definitions with descriptions74- Module/area labels with scopes75- Roadmap file path(s)76- Requirements/docs directory path77- Phase-to-documentation mapping78- Milestone naming conventions7980If no config file exists, the skill will work by discovering project structure dynamically and confirming with the user.8182</project_config>8384<intake>85**manage-github-issues triggered.** What would you like to do?86871. **Generate issues for a phase/milestone** - Read the roadmap, find incomplete items, create GitHub Issues882. **Audit existing issues** - Compare open issues against the roadmap, find gaps and problems893. **Triage and prioritize** - Review open issues, suggest priorities, update labels and milestones9091Type a number, keyword, or **skip** to dismiss.9293> Note: This skill blocks on user input. If triggered unintentionally,94> type **skip** or **dismiss** to cancel.95</intake>9697<routing>98| Response | Workflow |99|----------|----------|100| 1, "generate issues", "create issues", "phase issues", "milestone issues" | workflows/generate-phase-issues.md |101| 2, "audit issues", "review issues", "find gaps" | workflows/audit-issues.md |102| 3, "triage issues", "prioritize issues", "sort backlog" | workflows/triage-and-prioritize.md |103104If the user types **skip** or **dismiss**, briefly confirm cancellation (e.g., "manage-github-issues cancelled.") and end the skill without running any workflow.105106If the input does not clearly match any option above and is not "skip" or "dismiss", respond:107"manage-github-issues was triggered but your input didn't match a workflow. Options: 1-3 (listed above). Type **skip** to dismiss."108109**After reading the workflow, follow it exactly.**110</routing>111112<reference_index>113All domain knowledge in references/:114115**Quality Standards**:116117- issue-quality-standards.md (writing effective issues, best practices)118- label-conventions.md (label categories, labeling rules, conventions)119</reference_index>120121<workflows_index>122123| Workflow | Purpose |124|----------|---------|125| generate-phase-issues.md | Read roadmap phase, create missing GitHub Issues |126| audit-issues.md | Compare open issues against roadmap, find gaps |127| triage-and-prioritize.md | Review untriaged issues, suggest and apply priorities |128129</workflows_index>130131<templates_index>132133| Template | Purpose |134|----------|---------|135| feature-issue.md | Feature or enhancement issue body |136| bug-issue.md | Bug report issue body |137| epic-issue.md | Epic/parent issue with task checklist |138139</templates_index>140141<error_handling>142143**When `gh` commands fail:**144145- Check authentication: `gh auth status`146- Check repo context: `gh repo view` (must be in a git repo with a GitHub remote)147- If rate-limited: wait and retry, or reduce `--limit` on list commands148- If label/milestone doesn't exist: create it first with `gh label create` or `gh api`149- If issue creation fails: report the error, skip that issue, continue with the batch150- **Never silently drop errors** -- always report failures to the user151152**When labels don't exist yet:**153Create missing labels before issue creation:154155```bash156gh label create "{LABEL_NAME}" --color "{HEX_COLOR}" --description "{DESCRIPTION}"157```158159**When milestones don't exist yet:**160161```bash162gh api repos/{owner}/{repo}/milestones -f title="{MILESTONE_NAME}" -f state=open163```164165</error_handling>166167<skill_coordination>168169**Related skills and when to use them:**170171| Skill | When to Use Instead |172|-------|-------------------|173| `/create-plan` | Before generating issues -- plan the implementation first, then create issues from the plan |174| `/check-todos` | For in-session task tracking; this skill is for persistent GitHub Issues |175| `/requirements_generator` | When requirements need updating before issues can be generated |176| `/ask-me-questions` | When unclear what phase or scope to generate issues for |177178**Typical workflow sequence:**1791801. `/requirements_generator` -- ensure requirements are current1812. `/manage-github-issues` (generate) -- create issues from requirements1823. `/manage-github-issues` (triage) -- prioritize the backlog1834. `/create-plan` -- plan implementation of the highest-priority issues1845. `/manage-github-issues` (audit) -- periodic check that issues stay on track185186</skill_coordination>187188<success_criteria>189A successful workflow run produces:190191- [ ] Project configuration discovered (config file, CLAUDE.md, or user input)192- [ ] Relevant planning/requirements docs read for context193- [ ] Existing issues fetched and checked for duplicates194- [ ] Issues generated with proper title, body, labels, and milestone195- [ ] Batch presented to user for review before creation196- [ ] Issues created (or updates applied) via `gh` CLI197- [ ] Summary of actions taken reported to user198- [ ] Any errors encountered reported clearly199</success_criteria>200201---202> Converted and distributed by [TomeVault](https://tomevault.io/claim/herbhall) — claim your Tome and manage your conversions.203<!-- tomevault:4.0:skill_md:2026-04-15 -->