| name | label-management |
| description | GitHub label and milestone management. TRIGGERS - create label, edit label, manage milestones, issue taxonomy. |
Label & Milestone Management
Capability: Complete label and milestone CRUD operations with native GitHub CLI
When to use: Managing labels, milestones, and metadata organization
No Extension Required: All operations use native gh commands
Label Operations
List Labels
gh label list
gh label list --json name,color,description
gh label list --json name,color --jq '.[] | "\(.name): #\(.color)"'
Create Labels
gh label create "bug" --color "ff0000" --description "Something isn't working"
gh label create "priority:high" --color "ff0000"
gh label create "priority:medium" --color "ffaa00"
gh label create "priority:low" --color "00ff00"
gh label create "claude-code" --color "0366d6" --description "Claude Code tips and tricks"
gh label create "github-cli" --color "2ea44f" --description "GitHub CLI workflows"
Update Labels
gh label edit "bug" --color "d73a4a"
gh label edit "bug" --description "Confirmed bugs"
gh label edit "old-name" --name "new-name"
Delete Labels
gh label delete "wontfix"
gh label delete "duplicate" --yes
gh label list --json name --jq '.[].name' | grep "temp-" | xargs -I {} gh label delete {} --yes
Label Organization Strategies
Knowledge Base Labels
gh label create "claude-code" --color "0366d6"
gh label create "github-cli" --color "2ea44f"
gh label create "git" --color "5319e7"
gh label create "terminal" --color "0e8a16"
gh label create "tips" --color "c5def5"
gh label create "troubleshooting" --color "d93f0b"
gh label create "how-to" --color "bfdadc"
gh label create "reference" --color "d4c5f9"
gh label create "example" --color "c2e0c6"
gh label create "workflow" --color "fbca04"
gh label create "mcp" --color "f9d0c4"
Priority System
gh label create "priority:critical" --color "b60205" --description "Urgent - immediate action required"
gh label create "priority:high" --color "d93f0b" --description "Important - address soon"
gh label create "priority:medium" --color "fbca04" --description "Normal priority"
gh label create "priority:low" --color "0e8a16" --description "Low priority - nice to have"
Status Tracking
gh label create "status:needs-triage" --color "ededed"
gh label create "status:in-progress" --color "fbca04"
gh label create "status:blocked" --color "d93f0b"
gh label create "status:review" --color "0366d6"
gh label create "status:ready" --color "0e8a16"
Cloning Labels Between Repositories
gh label list --repo source-owner/source-repo --json name,color,description > labels.json
cat labels.json | jq -r '.[] | @sh "gh label create \(.name) --color \(.color) --description \(.description) --repo target-owner/target-repo"' | sh
Milestone Operations
List Milestones
gh api repos/{owner}/{repo}/milestones --jq '.[] | {number, title, state}'
gh api repos/{owner}/{repo}/milestones --jq '.[] | {number, title, description, due_on, state, open_issues, closed_issues}'
Create Milestone
gh api repos/{owner}/{repo}/milestones \
--method POST \
--field title="v1.0.0" \
--field description="First stable release" \
--field due_on="2025-12-31T23:59:59Z"
gh api repos/{owner}/{repo}/milestones \
--method POST \
--field title="Q1 2025" \
--field state="open"
Update Milestone
gh api repos/{owner}/{repo}/milestones/MILESTONE_NUMBER \
--method PATCH \
--field title="Updated Title" \
--field description="Updated description" \
--field state="closed"
Delete Milestone
gh api repos/{owner}/{repo}/milestones/MILESTONE_NUMBER --method DELETE
Batch Label Operations
Apply Label to Multiple Issues
gh issue list --label bug --state open --json number --jq '.[].number' | \
xargs -I {} gh issue edit {} --add-label priority:high
gh issue list --label needs-triage --state closed --json number --jq '.[].number' | \
xargs -I {} gh issue edit {} --remove-label needs-triage
Rename Labels Across Issues
ISSUES=$(gh issue list --label old-label --json number --jq '.[].number')
for issue in $ISSUES; do
gh issue edit $issue --add-label new-label --remove-label old-label
done
gh label delete old-label
Label Analytics
Label Usage Statistics
#!/bin/bash
gh label list --json name --jq '.[].name' | while read -r label; do
count=$(gh issue list --label "$label" --json number --jq '. | length')
echo "$label: $count issues"
done | sort -t: -k2 -rn
Milestone Progress
gh api repos/{owner}/{repo}/milestones/MILESTONE_NUMBER --jq '{
title,
open: .open_issues,
closed: .closed_issues,
percent_complete: ((.closed_issues / (.open_issues + .closed_issues)) * 100 | round)
}'
Common Workflows
Knowledge Base Setup
gh label create "claude-code" --color "0366d6"
gh label create "tips" --color "c5def5"
gh label create "how-to" --color "bfdadc"
gh issue create --title "Tip: Plan Mode" --label claude-code,tips,how-to --body-file tip.md
gh search issues --label claude-code,tips
Issue Triage Workflow
gh issue list --label needs-triage
gh issue edit 123 --add-label bug,priority:high --remove-label needs-triage
gh api repos/{owner}/{repo}/issues/123 --method PATCH --field milestone=1
Color Palette (Standard GitHub)
| Color | Hex | Use Case |
|---|
| Red | #d73a4a | Bugs, critical |
| Orange | #d93f0b | Warnings, high priority |
| Yellow | #fbca04 | Medium priority, needs |
| Green | #0e8a16 | Improvements, low |
| Blue | #0366d6 | Enhancements, features |
| Purple | #5319e7 | Questions, research |
| Gray | #ededed | Meta, wontfix |
Best Practices
- Consistent naming - Use prefixes for hierarchies (
priority:high, type:bug)
- Clear descriptions - Help users understand when to use each label
- Limited set - 10-20 core labels, avoid label proliferation
- Color coding - Use colors meaningfully (red=urgent, green=low-priority)
- Regular cleanup - Remove unused labels, consolidate duplicates
- Document system - Maintain label guide in repository docs
Label Anti-Patterns
❌ Too many labels - Hard to choose, inconsistent application
❌ Duplicate meanings - "bug" vs "defect" vs "broken"
❌ Unclear names - "label1", "misc", "other"
❌ No descriptions - Users don't know when to apply
❌ Random colors - No meaningful color coding
Migration: Deprecated Extensions
DON'T USE:
gh-label extension (last updated 2022) → Use native gh label instead
gh-milestone extension (last updated 2023) → Use gh api instead
Native commands are:
- ✅ Better maintained
- ✅ Faster (no extension overhead)
- ✅ More reliable
- ✅ Always available
Empirical Testing: 40+ test cases covering all label operations
Full Operational Guide: AI_AGENT_OPERATIONAL_GUIDE.md