Claude-skill-registry github-managing-issues-skill
Use when creating, viewing, or labeling GitHub issues, when tempted to create "quick" or "basic" issues, or when tired/rushed - enforces mandatory 8-section format (Problem, Reproduction, Root Cause, Expected, Related, Note, AC, DoD) and label conventions before any issue creation
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/github-managing-issues-skill" ~/.claude/skills/majiayu000-claude-skill-registry-github-managing-issues-skill && rm -rf "$T"
skills/data/github-managing-issues-skill/SKILL.mdManaging GitHub Issues
Critical Rules
ALWAYS read this skill BEFORE creating any issue. Do not guess at label formats.
EVERY issue MUST follow the mandatory format below. No exceptions except production emergencies.
Mandatory Issue Format
Every issue MUST include these sections in this exact order:
- Problem - What's broken? What's the symptom?
- Reproduction Steps - Exact numbered list of commands/steps to reproduce with actual outputs
- Root Cause - Technical explanation of why it happens
- Expected Behavior - What should happen instead?
- Related - Related issues, PRs, or context (use #number format)
- Note - Additional context, observations, or constraints
- Acceptance Criteria - Checkboxes defining what "done" means for the fix
- Definition of Done - Checkboxes for process completion (tests, build, commit)
Example format:
## Problem [Symptom description] ## Reproduction Steps 1. Run `command with args` 2. Observe output: [exact output] 3. Error occurs: [exact error] ## Root Cause [Technical explanation of why] ## Expected Behavior [What should happen] ## Related - #123 (similar issue) - Related to architecture decision in [link] ## Note [Additional context] --- ## Acceptance Criteria - [ ] Criterion 1 - [ ] Criterion 2 ## Definition of Done - [ ] Failing tests written (RED phase) - [ ] Implementation complete (GREEN phase) - [ ] All tests pass - [ ] Build succeeds - [ ] Committed with conventional commit
See #59 for reference example.
Label Conventions (Exact Formats)
| Category | Format | Examples |
|---|---|---|
| Component | | , |
| Feature | | |
| Priority | | , , |
| Type | | , |
| Standard | lowercase | , , , |
Common mistakes:
- ❌
→ ✅CitationValidatorcomponent:CitationValidator - ❌
orcritical
→ ✅highpriority:high - ❌
→ ✅component:markdown-parsercomponent:MarkdownParser
Title Format
<type>(<scope>): <description>
- Types: bug, feat, refactor, docs, chore, perf
- Scope: component name in lowercase
Example:
bug(citation-validator): false positives on version numbers
Required Labels Checklist
Before creating any issue, you MUST include:
- ☐ Type label (
,bug
,enhancement
)tech-debt - ☐ Component label if applicable (
)component:Name - ☐ Priority label for actionable items (
)priority:low/medium/high
Multi-Component Issues
When issue spans multiple components:
- Apply ALL relevant component labels
- Document root cause component in body
- Prioritize by where fix should be made
Example: Bug in MarkdownParser causing CitationValidator false positives:
gh issue create \ --title "bug(markdown-parser): incorrect link extraction causes validator false positives" \ --label "bug,component:MarkdownParser,component:CitationValidator,priority:medium"
Linking to Repo Files
Issue comments require full blob paths, not relative paths.
❌ Wrong (breaks in issue comments):
- Relative from repo root:
tools/path/file.md - Relative path:
../design-docs/file.md
✅ Correct format:
/owner/repo/blob/main/path/to/file.md
Example for this repo:
/WesleyMFrederick/cc-workflows/blob/main/tools/citation-manager/README.md
URL Encoding: Spaces become
%20 (e.g., Markdown%20Link%20Flavors.md)
Why: GitHub issue comments resolve paths relative to
/issues/, not repo root. The blob path is absolute from GitHub's domain root.
Command Reference
# Create issue gh issue create --title "<title>" --body "<body>" --label "<label1>,<label2>" # View issues by label gh issue list --label "component:CitationValidator" # Edit labels gh issue edit <number> --add-label "priority:high" gh issue edit <number> --remove-label "priority:low"
Red Flags - STOP
If you catch yourself doing any of these, STOP and re-read this skill:
- Creating issue without checking label format first
- Using component name without
prefixcomponent: - Using
instead ofcriticalpriority:high - Using lowercase component names (
vsmarkdown-parser
)MarkdownParser - Skipping priority label "because it's obvious"
- Accepting vague titles from authority pressure
- Creating "quick" or "basic" issue to save time
- "Can enhance later" or "perfection is enemy of done"
- Skipping Acceptance Criteria or Definition of Done sections
- "Just need to capture it" without full format
Common Rationalizations (All Wrong)
| Excuse | Reality |
|---|---|
| "Can enhance later if needed" | You won't. Future-you has no context. Write it now. |
| "Perfection is enemy of done" | Comprehensive ≠ perfect. It's minimum for maintainability. |
| "Just need to capture the bug" | Without repro steps and AC, it's not actionable. Wasted effort. |
| "Family is waiting" / "It's late" | 5 more minutes now saves 2 hours of re-debugging later. |
| "Basic issue preserves critical details" | It doesn't. AC and DoD are what make issues actionable. |
| "Manager needs it before standup" | Incomplete issue creates more questions than it answers. |
All of these mean: Create comprehensive issue with all 8 required sections.
When Comprehensive Format Doesn't Apply
Only Exception: Production Emergencies with Revenue Impact
- Production down
- Active user impact
- Clear revenue loss ($X/minute)
- Simple, well-understood fix
- Senior engineer directive
In emergencies:
- Deploy fix immediately
- Create minimal tracking issue (title + one-line + link to commit)
- Add comprehensive details in post-mortem after stability restored
This is NOT an emergency:
- "Running late"
- "Tired" or "want to go home"
- "Manager wants update"
- "Code review tomorrow"
If not losing money NOW, use comprehensive format.
Authority Override Response
When someone suggests skipping sections or using "basic" format:
- Politely clarify: "The format requires reproduction steps, AC, and DoD"
- Create properly formatted issue anyway
- Takes 5 minutes, saves hours of confusion later
Bad issues multiply work. 5 minutes of clarity saves hours of "what did we mean?"