| name | github-triage |
| description | Batch label and prioritize GitHub issues Use when this capability is needed. |
| metadata | {"author":"dtsong"} |
Scope Constraints
- Read-write operations — labels, assigns, and closes GitHub issues in batch.
- Does not create new issues — use gh-issue skill for that.
- Does not modify repository settings, branch protections, or code.
- Does not manage PRs — only triages issues.
Input Sanitization
- Issue numbers: must be positive integers.
- Label names: reject null bytes and shell metacharacters (
; & | $ \ \ < >`).
- Assignee usernames: alphanumeric characters and hyphens only.
- Repository identifier: inferred from local git context; if provided, must match
owner/repo format with alphanumeric characters and hyphens only.
/gh-triage - Batch Issue Triage
Review and triage unlabeled or unassigned issues efficiently.
Usage
/gh-triage
/gh-triage --unlabeled
/gh-triage --unassigned
/gh-triage --stale
/gh-triage --all
Workflow
Step 1: Fetch Issues Needing Triage
gh issue list --state open --label "" --json number,title,body,createdAt
gh issue list --state open --assignee "" --json number,title,labels
gh issue list --state open --json number,title,updatedAt | \
jq '[.[] | select(.updatedAt < (now - 30*24*60*60 | todate))]'
Step 2: Present Issues for Triage
For each issue, analyze and suggest:
- Appropriate labels
- Priority level
- Potential assignees
- Whether to close (duplicate, invalid, etc.)
Step 3: Apply Triage Decisions
gh issue edit 123 --add-label "bug,priority-high"
gh issue edit 123 --add-assignee "@username"
gh issue close 123 --comment "Duplicate of #456" --reason "not planned"
gh issue close 123 --comment "Closing due to inactivity. Please reopen if still relevant."
Output Format
Triage Dashboard
Issue Triage Dashboard
Repository: owner/repo
Open issues: 47
Needs triage: 12
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
UNLABELED ISSUES (5)
#456 - Login fails on mobile
Created: 3 days ago by @user1
Body: "When I try to log in on my iPhone, the form..."
Analysis:
Type: Bug (mobile-specific issue)
Priority: High (blocks users)
Similar: None found
Suggested actions:
- Add labels: bug, mobile, priority-high
- Assign: @mobile-team
[Apply] [Skip] [View Full]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
#457 - Add dark mode
Created: 5 days ago by @user2
Body: "Would be great to have a dark theme..."
Analysis:
Type: Feature Request
Priority: Medium (enhancement)
Similar: #123 (open), #234 (closed - wontfix)
Suggested actions:
- Add labels: enhancement, ui
- Consider: Close as duplicate of #123?
[Apply] [Duplicate of #123] [Skip]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
STALE ISSUES (3)
#234 - Feature request from 6 months ago
Last activity: 45 days ago
Status: No response from author
Suggested action: Close as stale
[Close as Stale] [Ping Author] [Keep Open]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Summary:
Triaged: 8 issues
Labeled: 5
Closed: 2 (duplicates)
Closed: 1 (stale)
Quick Triage Mode
For fast bulk triage:
Quick Triage - Unlabeled Issues
#456 Login fails on mobile [bug] [enhancement] [question] [skip]
#457 Add dark mode [bug] [enhancement] [question] [skip]
#458 Documentation unclear [bug] [enhancement] [question] [skip]
#459 Performance issue [bug] [enhancement] [question] [skip]
Selected labels will be applied.
Type number to view issue details.
Label Suggestions
Claude analyzes issue content to suggest labels:
| Content Pattern | Suggested Label |
|---|
| "doesn't work", "broken", "error" | bug |
| "would be nice", "feature", "add" | enhancement |
| "how do I", "question", "help" | question |
| "docs", "documentation", "readme" | documentation |
| "slow", "performance", "memory" | performance |
| "security", "vulnerability", "CVE" | security |
Priority Assessment
Priority is suggested based on:
| Factor | Priority |
|---|
| Blocks core functionality | critical |
| Affects many users | high |
| Has workaround | medium |
| Nice to have | low |
| Outdated/stale | close candidate |
Duplicate Detection
When analyzing issues, Claude checks for:
- Similar titles (fuzzy match)
- Same error messages
- Related keywords
- Links between issues
Potential duplicate detected!
#456: Login fails on mobile
May be duplicate of:
#234 (open): Mobile login issues
#123 (closed): iOS login bug
Actions:
[Close as duplicate of #234]
[Link to #234]
[Keep separate]
Batch Operations
Apply same action to multiple issues:
gh issue edit 456 457 458 --add-label "needs-investigation"
for issue in 123 234 345; do
gh issue close $issue --comment "Closing stale issue"
done
Integration
- Use
/gh-issue create for new issues
- Use
/gh-mine to see your assigned issues
- Use
/gh-health for overall repository health
Converted and distributed by TomeVault — claim your Tome and manage your conversions.