issue-triage

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Issue 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
gh
CLI (less token-efficient)
推荐配置:为优化Token使用配置GitHub MCP服务器
bash
claude mcp add github --transport http \
  https://api.githubcopilot.com/mcp/
替代方案:使用
gh
CLI(Token效率较低)

Workflow

工作流程

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,url

2. 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-priority

Feature 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.04
markdown
已确认!这是一个有效漏洞。

我已将其添加到X.Y版本里程碑,并标记为[优先级]。欢迎贡献者参与修复!

已在以下环境中验证复现:
- Java 17
- 版本3.10.0
- Ubuntu 22.04

Feature 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
undefined
bash
undefined

Process multiple issues in one prompt

一次处理多个问题

"Triage issues #234-243, categorize and prioritize"

**Savings**: ~60% fewer tokens vs one-by-one
"分类处理问题#234-243,完成分类与优先级划分"

**优化效果**:相比逐个处理节省约60%的Token

Use 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
undefined
bash
undefined

First 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标记为重复问题"
undefined

Focus 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
应避免
undefined

One-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
标记重复问题前先进行关键词搜索 若需澄清则链接到具体评论
undefined

Automation Opportunities

自动化机会

Auto-close stale issues

自动关闭停滞问题

bash
undefined
bash
undefined

Issues 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标签),建议附礼貌说明后关闭"
undefined

Label by keywords

按关键词自动标记

bash
undefined
bash
undefined

Auto-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
undefined

Weekly summary

每周总结

bash
undefined
bash
undefined

Generate triage summary

生成分类处理总结

"Summarize issues from last week:
  • New bugs: X
  • Feature requests: Y
  • Questions: Z
  • Closed: W"
undefined
"总结上周的问题:
  • 新漏洞:X
  • 功能请求:Y
  • 疑问:Z
  • 已关闭:W"
undefined

Integration 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 needed
javascript
// 结构化工作流
1. list_issues → 获取未解决问题
2. get_issue → 获取每个问题的详情
3. add_labels → 完成分类
4. create_comment → 回复
5. close_issue → 必要时关闭

With gh CLI

使用gh CLI

bash
undefined
bash
undefined

List 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"
undefined
gh issue close 234 --comment "已在v2.1版本修复"
undefined

Metrics 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

最佳实践

  1. Regular cadence - Weekly triage prevents backlog
  2. Be respectful - Users took time to report
  3. Link resources - Docs, related issues, examples
  4. Ask questions - Better to clarify than assume
  5. Welcome contributions - Encourage community involvement
  6. Track patterns - Common issues suggest documentation gaps
  7. Celebrate reporters - Thank users for good bug reports
  8. Close decisively - Don't let issues linger indefinitely
  1. 定期执行 - 每周分类处理可避免问题积压
  2. 保持尊重 - 用户花费时间提交问题,需礼貌回应
  3. 链接资源 - 提供文档、相关问题、示例等链接
  4. 主动提问 - 优先澄清信息而非主观假设
  5. 欢迎贡献 - 鼓励社区参与
  6. 跟踪规律 - 常见问题反映文档存在缺失
  7. 感谢反馈者 - 对优质漏洞报告的用户表示感谢
  8. 果断关闭 - 避免问题无限期停滞

Example Workflow

示例工作流

bash
undefined
bash
undefined

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
claude code ~/projects/pf4j
view .claude/skills/issue-triage/SKILL.md "分类处理pf4j/pf4j仓库的最近15个问题,完成分类、优先级划分并建议回复内容"
[Claude分析并呈现总结]
"应用标签并发布建议的回复内容"
[Claude执行操作]
"生成用于发布说明的总结"

**结果**:15个问题在约10分钟内完成分类处理,相比手动处理节省约35分钟