Label taxonomy and triage workflow for GitHub issues. Defines type labels (bug/feature/enhancement/docs/chore), priority levels (critical/high/medium/low), status labels, and triage decision workflow...
Rules and workflows for categorizing, labeling, and prioritizing GitHub issues.
| Label Type | Purpose | Mutually Exclusive? |
|---|---|---|
| Type | What kind of issue | Yes |
| Priority | How urgent | Yes |
| Status | Current state | Yes |
| Area | Which component | No |
| Label | Description | Color |
|---|---|---|
bug |
Something is broken | #d73a4a (red) |
feature |
New functionality | #a2eeef (cyan) |
enhancement |
Improvement to existing feature | #84b6eb (blue) |
docs |
Documentation only | #0075ca (dark blue) |
chore |
Maintenance, deps, infra | #fef2c0 (yellow) |
| Label | Description | Response |
|---|---|---|
priority: critical |
Drop everything, fix now | Immediate |
priority: high |
Next up after current work | This sprint |
priority: medium |
Normal backlog | Scheduled |
priority: low |
Nice to have, someday | Backlog |
| Label | Description |
|---|---|
needs-triage |
New, not yet categorized |
needs-info |
Waiting for reporter clarification |
accepted |
Triaged and in backlog |
in-progress |
Someone is working on it |
blocked |
Can't proceed, waiting on something |
Define based on your project structure:
area: apiarea: cliarea: docsarea: uiarea: authEvery new issue gets needs-triage label automatically (via GitHub Actions or manually).
Is this a duplicate?
YES → Close with "Duplicate of #N", link original
NO → Continue
Is this spam/invalid?
YES → Close without label
NO → Continue
Is the issue clear enough to act on?
YES → Continue to Step 3
NO → Add `needs-info`, comment asking for clarification
Apply type label:
- Broken functionality → `bug`
- New capability → `feature`
- Improve existing → `enhancement`
- Documentation → `docs`
- Maintenance → `chore`
Apply area label(s):
- Based on affected component
- Can have multiple areas
Apply priority:
- Production down / security issue → `priority: critical`
- Major impact, many users → `priority: high`
- Normal request → `priority: medium`
- Nice to have → `priority: low`
1. Remove `needs-triage`
2. Add `accepted`
3. Assign to milestone (if applicable)
4. Suggest assignee (if known)
Issue: "It doesn't work"
Action:
1. Add `needs-info`
2. Comment: "Can you provide steps to reproduce and your environment?"
3. Wait for response
Issue: Similar to existing #123
Action:
1. Close issue
2. Comment: "Duplicate of #123"
3. Add any new context to #123
Issue: Security vulnerability
Action:
1. Add `priority: critical`, `bug`
2. Assign immediately
3. Consider private discussion
Issue: "Add dark mode"
Action:
1. Add `feature`, `needs-info`
2. Comment: "Great idea! Can you describe acceptance criteria?"
See references/ for:
label-taxonomy.md - Complete label reference with colorsneeds-triage label)Use references/label-taxonomy.md to:
gh label create "bug" --color "d73a4a"Consult "Priority Guidelines" section in this skill:
gh-issue-templates - Creating well-formatted issuesgh-issue-lifecycle - State transitions and linkinggh-wrangler - Interactive triage workflow