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. Use when categorizing and prioritizing issues.
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: gh-issue-triage
description: 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. Use when categorizing and prioritizing issues.
---
# Issue Triage
Rules and workflows for categorizing, labeling, and prioritizing GitHub issues.
## Quick Reference
| Label Type | Purpose | Mutually Exclusive? |
|------------|---------|---------------------|
| Type | What kind of issue | Yes |
| Priority | How urgent | Yes |
| Status | Current state | Yes |
| Area | Which component | No |
## Label Taxonomy
### Type Labels (mutually exclusive)
| 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) |
### Priority Labels (mutually exclusive)
| 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 |
### Status Labels (mutually exclusive)
| 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 |
### Area Labels (project-specific, not exclusive)
Define based on your project structure:
- `area: api`
- `area: cli`
- `area: docs`
- `area: ui`
- `area: auth`
## Triage Workflow
### Step 1: New Issues
Every new issue gets `needs-triage` label automatically (via GitHub Actions or manually).
### Step 2: Initial Review
```
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
```
### Step 3: Categorization
```
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
```
### Step 4: Prioritization
```
Apply priority:
- Production down / security issue → `priority: critical`
- Major impact, many users → `priority: high`
- Normal request → `priority: medium`
- Nice to have → `priority: low`
```
### Step 5: Finalize
```
1. Remove `needs-triage`
2. Add `accepted`
3. Assign to milestone (if applicable)
4. Suggest assignee (if known)
```
## Priority Guidelines
### Critical
- Production is down
- Security vulnerability
- Data loss occurring
- Blocks all users
### High
- Major feature broken
- Significant user impact
- Blocks important workflow
- Time-sensitive deadline
### Medium
- Normal bug reports
- Feature requests
- Improvements
- Most issues land here
### Low
- Minor cosmetic issues
- Edge case bugs
- Nice-to-have features
- "Someday" items
## Common Patterns
### Insufficient Information
```
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
```
### Duplicate Detection
```
Issue: Similar to existing #123
Action:
1. Close issue
2. Comment: "Duplicate of #123"
3. Add any new context to #123
```
### Critical Security Issue
```
Issue: Security vulnerability
Action:
1. Add `priority: critical`, `bug`
2. Assign immediately
3. Consider private discussion
```
### Feature Without Acceptance Criteria
```
Issue: "Add dark mode"
Action:
1. Add `feature`, `needs-info`
2. Comment: "Great idea! Can you describe acceptance criteria?"
```
## Reference Files
See `references/` for:
- `label-taxonomy.md` - Complete label reference with colors
## Integration with Other Components
### Typical Triage Workflow
1. Issue created using **gh-issue-templates** (gets `needs-triage` label)
2. Use **gh-issue-triage** (this skill) to determine type and priority
3. Apply labels using **gh-wrangler** agent
4. Track state changes using **gh-issue-lifecycle**
### Label Setup
Use `references/label-taxonomy.md` to:
- Create labels with correct colors: `gh label create "bug" --color "d73a4a"`
- Maintain consistent taxonomy across repositories
- Setup new repositories with standard labels
### Priority Assignment
Consult "Priority Guidelines" section in this skill:
- **Critical**: Production down, security, data loss
- **High**: Major features broken, significant impact
- **Medium**: Normal bugs and features (most issues)
- **Low**: Nice-to-have, cosmetic, edge cases
## Related
- Skill: `gh-issue-templates` - Creating well-formatted issues
- Skill: `gh-issue-lifecycle` - State transitions and linking
- Agent: `gh-wrangler` - Interactive triage workflow
No comments yet. Be the first to comment!