بنقرة واحدة
issue-triage
// Triage and categorize GitHub issues with priority labels. Use when user says "triage issues", "check issues", "review open issues", or during regular maintenance of GitHub issue backlog.
// Triage and categorize GitHub issues with priority labels. Use when user says "triage issues", "check issues", "review open issues", or during regular maintenance of GitHub issue backlog.
Review REST API contracts for HTTP semantics, versioning, backward compatibility, and response consistency. Use when user asks "review API", "check endpoints", "REST review", or before releasing API changes.
Analyze Java project architecture at macro level - package structure, module boundaries, dependency direction, and layering. Use when user asks "review architecture", "check structure", "package organization", or when evaluating if a codebase follows clean architecture principles.
Generate changelogs from git commits. Use when user says "generate changelog", "update changelog", "what changed since last release", or before preparing a new release.
Clean Code principles (DRY, KISS, YAGNI), naming conventions, function design, and refactoring. Use when user says "clean this code", "refactor", "improve readability", or when reviewing code quality.
Review Java concurrency code for thread safety, race conditions, deadlocks, and modern patterns (Virtual Threads, CompletableFuture, @Async). Use when user asks "check thread safety", "concurrency review", "async code review", or when reviewing multi-threaded code.
Common design patterns with Java examples (Factory, Builder, Strategy, Observer, Decorator, etc.). Use when user asks "implement pattern", "use factory", "strategy pattern", or when designing extensible components.
| name | issue-triage |
| description | Triage and categorize GitHub issues with priority labels. Use when user says "triage issues", "check issues", "review open issues", or during regular maintenance of GitHub issue backlog. |
Efficiently triage GitHub issues for Java projects with categorization and prioritization.
Recommended: GitHub MCP server configured for optimal token usage
claude mcp add github --transport http \
https://api.githubcopilot.com/mcp/
Alternative: Use gh CLI (less token-efficient)
With GitHub MCP (recommended):
Tool: list_issues
Parameters: {
"state": "open",
"sort": "updated",
"per_page": 10
}
With gh CLI:
gh issue list --state open --limit 10 --json number,title,labels,body,url
Analyze issue content and assign category:
Indicators:
Actions:
bugExample:
Issue #234: "NPE when loading plugin from directory"
- Stack trace: ✅
- Reproduction steps: ✅
- Version info: ✅
→ Label: bug, high-priority
Indicators:
Actions:
enhancementIndicators:
Actions:
questionSearch for similar issues:
is:issue <keywords>Actions:
Indicators:
Actions:
Criteria:
Actions:
criticalExamples:
- "SQL injection vulnerability in plugin loader"
- "All plugins fail to load after upgrade"
- "ClassLoader leak causes OutOfMemoryError"
Criteria:
Actions:
high-priorityExamples:
- "Plugin dependencies not resolved correctly"
- "Hot reload crashes application"
Criteria:
Actions:
medium-priorityExamples:
- "Improve error message for invalid plugin"
- "Add plugin lifecycle listener"
Criteria:
Actions:
low-priorityExamples:
- "Add more examples to README"
- "Typo in JavaDoc"
Thanks for reporting this issue!
To investigate further, could you provide:
- Java version (java -version)
- Library version
- Minimal reproducible example
- Full stack trace (if applicable)
- Configuration files (if relevant)
This will help us diagnose and fix the issue faster.
Thanks for reporting! This is being tracked in #123.
Closing as duplicate. Feel free to add any additional context
or information to the original issue.
Thank you for the suggestion. After consideration, this doesn't
align with the project's current direction because [reason].
Consider [alternative approach] instead, which might better
serve your use case.
If you feel strongly about this, please open a discussion in
our [forum/discussions] to gather community feedback.
Confirmed! This is a valid bug.
I've added it to milestone X.Y and labeled it as [priority].
Contributions welcome if anyone wants to tackle it!
Reproduction verified with:
- Java 17
- Version 3.10.0
- Ubuntu 22.04
Interesting idea! This aligns with our goal of [project goal].
I've labeled this as 'enhancement' for further discussion.
Community feedback welcome - upvote with 👍 if you'd find
this useful.
Some questions to consider:
- [question 1]
- [question 2]
To achieve this, you can [solution].
Example:
\`\`\`java
[code example]
\`\`\`
Also check our documentation: [link]
Let me know if this solves your issue!
# Process multiple issues in one prompt
"Triage issues #234-243, categorize and prioritize"
Savings: ~60% fewer tokens vs one-by-one
Savings: ~40% fewer tokens vs repeated bash calls
# First prompt
"Fetch the last 20 issues, save list in memory"
# Subsequent prompts
"Analyze issue #5 from cached list"
"Mark #7-#9 as duplicate"
❌ Avoid:
# One-by-one processing
"Check issue #234"
"Now check issue #235"
"Now check issue #236"
→ Wastes tokens on repeated context loading
# Over-analyzing
Reading entire 100-comment thread
Checking all related PRs
Deep diving into code for each issue
→ Diminishing returns after certain point
# Premature closing
Closing issues without proper investigation
Missing duplicates due to poor search
→ Frustrates users, creates duplicate work
✅ Prefer:
# Batch operations
"Triage issues #234-250, categorize, prioritize"
# Quick triage decisions
Fast categorization → Can revisit if needed
Surface-level analysis for most issues
Deep dive only for critical/complex ones
# Thorough duplicate search
Quick keyword search before marking duplicate
Link to specific comment if clarification exists
# Issues with no activity for 90 days and "needs-more-info" label
"Find stale issues (>90 days, needs-more-info label),
suggest closing with polite message"
# Auto-label based on content
"java.lang.NullPointerException" → bug
"add support for" → enhancement
"how do I" → question
# Generate triage summary
"Summarize issues from last week:
- New bugs: X
- Feature requests: Y
- Questions: Z
- Closed: W"
// Structured workflow
1. list_issues → get open issues
2. get_issue → details for each
3. add_labels → categorize
4. create_comment → respond
5. close_issue → if needed
# List issues
gh issue list --json number,title,labels,body
# View specific issue
gh issue view 234
# Add labels
gh issue edit 234 --add-label "bug,high-priority"
# Comment
gh issue comment 234 --body "Thanks for reporting..."
# Close
gh issue close 234 --comment "Fixed in v2.1"
After each triage session, report:
📊 Triage Summary
─────────────────
Issues processed: 15
├─ Bugs: 5 (2 critical, 3 high)
├─ Enhancements: 4
├─ Questions: 3
├─ Duplicates: 2
└─ Invalid: 1
Actions taken:
├─ Labeled: 15
├─ Responded: 12
├─ Closed: 3
└─ Milestoned: 5
Time saved: ~45 minutes (vs manual)
Token usage: 3,200 tokens
# Monday morning triage
claude code ~/projects/pf4j
> view .claude/skills/issue-triage/SKILL.md
> "Triage the last 15 issues from pf4j/pf4j,
categorize, prioritize and suggest responses"
[Claude analyzes and presents summary]
> "Apply labels and post the suggested responses"
[Claude executes actions]
> "Generate summary for release notes"
Result: 15 issues triaged in ~10 minutes vs ~45 minutes manual