用途
Triage 是一个 AI 辅助的 issue 管理技能,帮助项目维护者将 issue 和外部 PR 通过一套状态机进行流转。它旨在规范化请求的处理流程,从初步评估、信息收集、验证到最终分类,确保每个请求都被适当处理。
主要能力
角色定义
技能定义了两种分类角色和五种状态角色:
分类角色:
bug:表示某个功能已损坏enhancement:表示新功能或改进
状态角色:
needs-triage:需要维护者评估needs-info:等待报告者提供更多信息ready-for-agent:已完全明确,可供 AFK 智能体执行ready-for-human:需要人类实现wontfix:不会处理
对于 PR,状态角色含义相同,但针对附加的代码:ready-for-agent 表示已附加简报,智能体应处理 diff 的下一步;ready-for-human 表示可以由人类合并。
每个已分类的 issue 应承载恰好一个分类角色和一个状态角色。若状态角色冲突,需标记并询问维护者。
状态流转
未标记的 issue 通常首先进入 needs-triage;随后可移至 needs-info、ready-for-agent、ready-for-human 或 wontfix。needs-info 在报告者回复后返回 needs-triage。维护者可随时覆盖,但技能会标记异常流转并请求确认。
调用方式
维护者通过 /triage 命令以自然语言描述需求,技能解析并执行。示例:
- “显示需要我关注的事项”
- “让我们看看 #42”(issue 或 PR)
- “将 #42 移至 ready-for-agent”
- “有哪些准备好让智能体接手?”
核心功能
-
展示待关注事项:查询 issue 追踪器,按最旧优先展示三个桶:未标记、
needs-triage、以及needs-info且报告者有新活动。若 PR 在范围内,包含外部 PR 并标记 [PR] 或 [issue]。显示计数与每项的一行摘要,让维护者选择。 -
分类特定 issue 或 PR:
- 收集上下文:阅读完整 issue/PR(正文、评论、标签、作者、日期;PR 还包括 diff)。解析之前的分类笔记,避免重复提问。使用项目领域词汇表探索代码库,遵守 ADR。
- 执行两项检查:(a) 冗余性:按领域概念(而非仅请求措辞)搜索是否存在已实现的行为,并报告查找位置。若找到,则为已实现的
wontfix。(b) 先前拒绝:读取.out-of-scope/*.md,呈现任何类似请求。 - 推荐:向维护者告知分类与状态建议及理由,附上相关代码库摘要(包括是否已实现)。等待指示。
- 验证声明:在质询前,检查声明是否成立。对于 bug,从报告者步骤复现。对于 PR,确认 diff 是否符合声明:检出、运行相关测试或命令。报告结果:已确认(附代码路径)、失败、或信息不足(强烈需要
needs-info的信号)。 - 质询(如需要):若请求需要充实,调用 Skill 工具两次,分别为“grilling”和“domain-modeling”,逐轮提问塑造需求,锐化领域术语并内联更新 GLOSSARY.md/ADR。
-
应用结果:
ready-for-agent:发布 agent brief 评论(AGENT-BRIEF.md)。ready-for-human:与 agent brief 结构相同,但注明为何不能委托(判断调用、外部访问、设计决策、手动测试)。needs-info:发布分类笔记(见模板)。wontfix:关闭 issue,评论取决于原因:已实现(指向代码位置,不写入.out-of-scope/);拒绝(bug)给予礼貌解释后关闭;拒绝(enhancement)写入.out-of-scope/,从评论链接后关闭。needs-triage:应用角色。若部分进展,可选评论。
-
快速状态覆盖:若维护者直接指示移动状态,信任并直接应用。确认即将执行的操作(角色变更、评论、关闭),然后执行。跳过质询。若移至
ready-for-agent而无质询会话,询问是否要写 agent brief。
Needs-info 模板
## Triage Notes
**What we've established so far:**
- point 1
- point 2
**What we still need from you (@reporter):**
- question 1
- question 2
将质询期间解决的所有内容捕获在“已确立”下,以免工作丢失。问题必须具体且可操作,而非“请提供更多信息”。
恢复先前会话
若存在先前的分类笔记,读取它们,检查报告者是否回答了未决问题,并在继续前呈现更新画面。不要重复询问已解决的问题。
使用方式
- 确保项目已配置标签映射。若未提供,运行
/setup-matt-pocock-skills。 - 维护者调用
/triage并描述需求。 - 技能根据上下文执行相应操作。
适用场景
适用于使用 issue 追踪器的开源或内部项目,维护者需要系统化处理大量 issue 和外部 PR 的场景。特别适合需要区分哪些工作可由 AI 智能体自动完成、哪些需要人类介入的团队。
限制
- 需预先配置标签映射,否则无法运行。
- 所有分类期间发布的评论或 issue 必须以“This was generated by AI during triage.”开头。
- 技能依赖项目中的参考文档(AGENT-BRIEF.md、OUT-OF-SCOPE.md)和领域词汇表,缺失时功能受限。
- 冗余性和先前拒绝检查的准确性取决于代码库和
.out-of-scope/知识库的状态。 - 质询环节需要额外调用其他技能(grilling、domain-modeling),这些技能需可用。