issue-triage
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseIssue Triage Skill
问题分类处理技能
Efficiently triage GitHub issues for Java projects with categorization and prioritization.
为Java项目高效分类和处理GitHub问题,完成分类与优先级划分。
When to Use
使用场景
- User says "triage issues" / "check recent issues"
- Regular maintenance workflow
- After vacation/break (backlog processing)
- Weekly/monthly issue review
- 用户提及“处理问题”/“检查近期问题”
- 常规维护工作流
- 假期/休假后(积压问题处理)
- 每周/每月问题审核
Prerequisites
前置条件
Recommended: GitHub MCP server configured for optimal token usage
bash
claude mcp add github --transport http \
https://api.githubcopilot.com/mcp/Alternative: Use CLI (less token-efficient)
gh推荐配置:为优化Token使用配置GitHub MCP服务器
bash
claude mcp add github --transport http \
https://api.githubcopilot.com/mcp/替代方案:使用 CLI(Token效率较低)
ghWorkflow
工作流程
1. Fetch Issues
1. 获取问题
With GitHub MCP (recommended):
Tool: list_issues
Parameters: {
"state": "open",
"sort": "updated",
"per_page": 10
}With gh CLI:
bash
gh issue list --state open --limit 10 --json number,title,labels,body,url使用GitHub MCP(推荐):
Tool: list_issues
Parameters: {
"state": "open",
"sort": "updated",
"per_page": 10
}使用gh CLI:
bash
gh issue list --state open --limit 10 --json number,title,labels,body,url2. Categorize Each Issue
2. 分类每个问题
Analyze issue content and assign category:
分析问题内容并分配类别:
Bug Report ✅
漏洞报告 ✅
Indicators:
- Has stack trace or error message
- Steps to reproduce provided
- Expected vs actual behavior described
- Mentions specific version numbers
Actions:
- Label:
bug - Verify reproducibility from description
- Check for duplicate bugs
- Add to milestone if critical
Example:
Issue #234: "NPE when loading plugin from directory"
- Stack trace: ✅
- Reproduction steps: ✅
- Version info: ✅
→ Label: bug, high-priority识别特征:
- 包含堆栈跟踪或错误信息
- 提供复现步骤
- 描述预期与实际行为差异
- 提及具体版本号
处理动作:
- 标签:
bug - 根据描述验证可复现性
- 检查是否存在重复漏洞
- 若为严重问题则添加到里程碑
示例:
问题 #234:“从目录加载插件时出现NPE”
- 堆栈跟踪:✅
- 复现步骤:✅
- 版本信息:✅
→ 标签:bug, high-priorityFeature Request 💡
功能请求 💡
Indicators:
- Asks for new functionality
- Use case described
- "It would be nice if..." / "Could you add..."
- Rationale provided
Actions:
- Label:
enhancement - Assess alignment with project goals
- Mark for discussion if non-trivial
- Ask for community feedback
识别特征:
- 请求新增功能
- 描述使用场景
- 出现“如果能...就好了”/“能否添加...”表述
- 提供理由说明
处理动作:
- 标签:
enhancement - 评估是否符合项目目标
- 若为非简单需求则标记为待讨论
- 征求社区反馈
Question/Support ❓
疑问/支持请求 ❓
Indicators:
- "How do I..." / "Can someone help..."
- Configuration/usage questions
- Not a bug or feature request
Actions:
- Label:
question - Provide answer or link to docs
- Suggest StackOverflow for complex help
- Close after answer if resolved
识别特征:
- 出现“如何...”/“有人能帮忙...”表述
- 关于配置/使用的问题
- 不属于漏洞或功能请求
处理动作:
- 标签:
question - 提供答案或文档链接
- 建议复杂问题前往StackOverflow求助
- 问题解决后关闭
Duplicate 🔄
重复问题 🔄
Search for similar issues:
- Use GitHub search:
is:issue <keywords> - Check recently closed issues
- Look for same error messages
Actions:
- Link to original: "Duplicate of #123"
- Close with polite comment
- Ask reporter to comment on original if they have additional info
搜索相似问题:
- 使用GitHub搜索:
is:issue <关键词> - 检查近期已关闭的问题
- 查找相同的错误信息
处理动作:
- 链接到原问题:“重复问题 #123”
- 附礼貌说明后关闭
- 若报告者有额外信息,请求其在原问题下补充
Invalid/Unclear ⚠️
无效/表述模糊 ⚠️
Indicators:
- Missing critical information
- Off-topic or spam
- Not enough context to proceed
Actions:
- Request clarification with template
- Set "needs-more-info" label
- Auto-close if no response after 14 days
识别特征:
- 缺失关键信息
- 偏离主题或为垃圾信息
- 上下文不足无法处理
处理动作:
- 使用模板请求补充信息
- 添加“needs-more-info”标签
- 14天无回应则自动关闭
3. Priority Assessment
3. 优先级评估
Critical (P0) 🔴
严重(P0)🔴
Criteria:
- Security vulnerability
- Data loss/corruption risk
- Complete functionality breakdown
- Affects production systems
Actions:
- Label:
critical - Notify maintainers immediately
- Add to current milestone
- Consider hotfix release
Examples:
- "SQL injection vulnerability in plugin loader"
- "All plugins fail to load after upgrade"
- "ClassLoader leak causes OutOfMemoryError"判定标准:
- 安全漏洞
- 存在数据丢失/损坏风险
- 核心功能完全失效
- 影响生产系统
处理动作:
- 标签:
critical - 立即通知维护人员
- 添加到当前里程碑
- 考虑发布热修复版本
示例:
- “插件加载器存在SQL注入漏洞”
- “升级后所有插件均无法加载”
- “类加载器泄漏导致OutOfMemoryError”High (P1) 🟠
高优先级(P1)🟠
Criteria:
- Core feature broken
- Affects many users
- Workaround exists but painful
- Regression from previous version
Actions:
- Label:
high-priority - Add to next milestone
- Include in release notes
Examples:
- "Plugin dependencies not resolved correctly"
- "Hot reload crashes application"判定标准:
- 核心功能损坏
- 影响大量用户
- 存在临时解决方法但操作繁琐
- 相比之前版本出现功能退化
处理动作:
- 标签:
high-priority - 添加到下一个里程碑
- 纳入发布说明
示例:
- “插件依赖解析错误”
- “热重载导致应用崩溃”Medium (P2) 🟡
中优先级(P2)🟡
Criteria:
- Edge case bug
- Enhancement with clear value
- Documentation gap
- Affects some users occasionally
Actions:
- Label:
medium-priority - Consider for future milestone
- Good for contributors
Examples:
- "Improve error message for invalid plugin"
- "Add plugin lifecycle listener"判定标准:
- 边缘场景漏洞
- 具有明确价值的功能增强
- 文档缺失
- 偶尔影响部分用户
处理动作:
- 标签:
medium-priority - 考虑纳入未来里程碑
- 适合贡献者处理
示例:
- “优化无效插件的错误提示信息”
- “添加插件生命周期监听器”Low (P3) 🟢
低优先级(P3)🟢
Criteria:
- Nice-to-have feature
- Cosmetic issues
- Very rare edge case
- Documentation improvements
Actions:
- Label:
low-priority - "Contributions welcome" tag
- Backlog for future
Examples:
- "Add more examples to README"
- "Typo in JavaDoc"判定标准:
- 锦上添花的功能
- 界面美化问题
- 极罕见的边缘场景
- 文档优化
处理动作:
- 标签:
low-priority - 添加“Contributions welcome”标签
- 放入积压任务待未来处理
示例:
- “在README中添加更多示例”
- “JavaDoc中的拼写错误”4. Response Templates
4. 回复模板
Need More Information
需要更多信息
markdown
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.markdown
感谢您提交此问题!
为进一步排查,请提供以下信息:
- Java版本(执行java -version查看)
- 库版本
- 最小可复现示例
- 完整堆栈跟踪(若适用)
- 配置文件(若相关)
这将帮助我们更快地诊断和修复问题。Duplicate
重复问题
markdown
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.markdown
感谢您的反馈!此问题已在#123中跟踪处理。
标记为重复问题并关闭。如有额外上下文或信息,欢迎在原问题下补充。Won't Fix (with rationale)
不予修复(附理由)
markdown
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.markdown
感谢您的建议。经考虑,此需求不符合项目当前发展方向,原因如下:[说明理由]。
建议尝试[替代方案],可能更符合您的使用场景。
若您对此仍有强烈诉求,请在我们的[论坛/讨论区]发起讨论以收集社区反馈。Acknowledged Bug
已确认漏洞
markdown
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.04markdown
已确认!这是一个有效漏洞。
我已将其添加到X.Y版本里程碑,并标记为[优先级]。欢迎贡献者参与修复!
已在以下环境中验证复现:
- Java 17
- 版本3.10.0
- Ubuntu 22.04Feature Request - Under Consideration
功能请求 - 评估中
markdown
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]markdown
有趣的想法!这符合我们的[项目目标]。
我已将其标记为“enhancement”以便进一步讨论。欢迎社区反馈 - 若您认为此功能有用,请点赞👍。
需要考虑的几个问题:
- [问题1]
- [问题2]Question Answered
疑问已解答
markdown
To achieve this, you can [solution].
Example:
\`\`\`java
[code example]
\`\`\`
Also check our documentation: [link]
Let me know if this solves your issue!markdown
要实现此需求,您可以[解决方案]。
示例:
\`\`\`java
[代码示例]
\`\`\`
也可查看我们的文档:[链接]
若此方案解决了您的问题,请告知!Token Optimization Strategies
Token优化策略
Batch Processing
批量处理
bash
undefinedbash
undefinedProcess multiple issues in one prompt
一次处理多个问题
"Triage issues #234-243, categorize and prioritize"
**Savings**: ~60% fewer tokens vs one-by-one"分类处理问题#234-243,完成分类与优先级划分"
**优化效果**:相比逐个处理节省约60%的TokenUse Structured GitHub MCP Calls
使用结构化GitHub MCP调用
- One call to list issues → cache results
- Targeted calls for details only when needed
- Batch label updates
Savings: ~40% fewer tokens vs repeated bash calls
- 一次调用获取问题列表 → 缓存结果
- 仅在需要时针对性调用获取详情
- 批量更新标签
优化效果:相比重复执行bash命令节省约40%的Token
Cache Issue List
缓存问题列表
bash
undefinedbash
undefinedFirst prompt
首次请求
"Fetch the last 20 issues, save list in memory"
"获取最近20个问题,保存到内存中"
Subsequent prompts
后续请求
"Analyze issue #5 from cached list"
"Mark #7-#9 as duplicate"
undefined"分析缓存列表中的第5个问题"
"将#7-#9标记为重复问题"
undefinedFocus on First Post + Recent Comments
聚焦首帖与最新评论
- Don't read entire 50-comment threads
- Skim first post for context
- Check last 2-3 comments for updates
- 无需阅读50条评论的完整线程
- 快速浏览首帖获取上下文
- 查看最后2-3条评论了解更新
Anti-patterns
反模式
❌ Avoid:
undefined❌ 应避免:
undefinedOne-by-one processing
逐个处理
"Check issue #234"
"Now check issue #235"
"Now check issue #236"
→ Wastes tokens on repeated context loading
"检查问题#234"
"现在检查问题#235"
"现在检查问题#236"
→ 重复加载上下文浪费Token
Over-analyzing
过度分析
Reading entire 100-comment thread
Checking all related PRs
Deep diving into code for each issue
→ Diminishing returns after certain point
阅读100条评论的完整线程
检查所有相关PR
为每个问题深入研究代码
→ 超过一定程度后收益递减
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"
"分类处理问题#234-250,完成分类与优先级划分"
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
undefined标记重复问题前先进行关键词搜索
若需澄清则链接到具体评论
undefinedAutomation Opportunities
自动化机会
Auto-close stale issues
自动关闭停滞问题
bash
undefinedbash
undefinedIssues with no activity for 90 days and "needs-more-info" label
标记为“needs-more-info”且90天无活动的问题
"Find stale issues (>90 days, needs-more-info label),
suggest closing with polite message"
undefined"查找停滞问题(超过90天,带有needs-more-info标签),建议附礼貌说明后关闭"
undefinedLabel by keywords
按关键词自动标记
bash
undefinedbash
undefinedAuto-label based on content
根据内容自动标记
"java.lang.NullPointerException" → bug
"add support for" → enhancement
"how do I" → question
undefined"java.lang.NullPointerException" → bug
"add support for" → enhancement
"how do I" → question
undefinedWeekly summary
每周总结
bash
undefinedbash
undefinedGenerate triage summary
生成分类处理总结
"Summarize issues from last week:
- New bugs: X
- Feature requests: Y
- Questions: Z
- Closed: W"
undefined"总结上周的问题:
- 新漏洞:X
- 功能请求:Y
- 疑问:Z
- 已关闭:W"
undefinedIntegration with GitHub
与GitHub集成
With GitHub MCP
使用GitHub MCP
javascript
// 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 neededjavascript
// 结构化工作流
1. list_issues → 获取未解决问题
2. get_issue → 获取每个问题的详情
3. add_labels → 完成分类
4. create_comment → 回复
5. close_issue → 必要时关闭With gh CLI
使用gh CLI
bash
undefinedbash
undefinedList issues
列出问题
gh issue list --json number,title,labels,body
gh issue list --json number,title,labels,body
View specific issue
查看特定问题
gh issue view 234
gh issue view 234
Add labels
添加标签
gh issue edit 234 --add-label "bug,high-priority"
gh issue edit 234 --add-label "bug,high-priority"
Comment
添加评论
gh issue comment 234 --body "Thanks for reporting..."
gh issue comment 234 --body "感谢您的反馈..."
Close
关闭问题
gh issue close 234 --comment "Fixed in v2.1"
undefinedgh issue close 234 --comment "已在v2.1版本修复"
undefinedMetrics to Track
跟踪指标
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每次分类处理后,生成报告:
📊 分类处理总结
─────────────────
处理的问题数量:15
├─ 漏洞:5(2个严重,3个高优先级)
├─ 功能增强请求:4
├─ 疑问:3
├─ 重复问题:2
└─ 无效问题:1
执行的操作:
├─ 添加标签:15
├─ 回复:12
├─ 关闭:3
└─ 添加到里程碑:5
节省时间:约45分钟(相比手动处理)
Token使用量:3200个Best Practices
最佳实践
- Regular cadence - Weekly triage prevents backlog
- Be respectful - Users took time to report
- Link resources - Docs, related issues, examples
- Ask questions - Better to clarify than assume
- Welcome contributions - Encourage community involvement
- Track patterns - Common issues suggest documentation gaps
- Celebrate reporters - Thank users for good bug reports
- Close decisively - Don't let issues linger indefinitely
- 定期执行 - 每周分类处理可避免问题积压
- 保持尊重 - 用户花费时间提交问题,需礼貌回应
- 链接资源 - 提供文档、相关问题、示例等链接
- 主动提问 - 优先澄清信息而非主观假设
- 欢迎贡献 - 鼓励社区参与
- 跟踪规律 - 常见问题反映文档存在缺失
- 感谢反馈者 - 对优质漏洞报告的用户表示感谢
- 果断关闭 - 避免问题无限期停滞
Example Workflow
示例工作流
bash
undefinedbash
undefinedMonday 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 manualclaude code ~/projects/pf4j
view .claude/skills/issue-triage/SKILL.md "分类处理pf4j/pf4j仓库的最近15个问题,完成分类、优先级划分并建议回复内容"
[Claude分析并呈现总结]
"应用标签并发布建议的回复内容"
[Claude执行操作]
"生成用于发布说明的总结"
**结果**:15个问题在约10分钟内完成分类处理,相比手动处理节省约35分钟