关于 triage
用于在项目问题跟踪器中按既定角色和状态流转问题的技能。它帮助维护者审查新事项、对照代码库核实问题,并通过相应备注或 Agent 简报处理结果。
主要功能
- 01问题分类与状态流转
- 02按时间排序的待处理队列
- 03针对请求检查代码库
- 04生成 Agent 简报和分类备注
- 05可选的外部拉取请求分类
适用场景
- 01查看尚未标记且需要关注的问题
- 02确认请求的功能是否已经存在
- 03为 Agent 或人工处理准备问题
- 04向报告者索取具体信息
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ tt-a1i/ matt-skills-with-to-goal --skill triage安装后在 Claude Code 中输入/triage确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
AGENT-BRIEF.mdOUT-OF-SCOPE.mdagents/openai.yaml详细介绍
分诊
通过一套由分诊角色组成的小型状态机,推进项目问题跟踪器中的事项。
如果此仓库将外部拉取请求视为请求入口(见问题跟踪器配置),分诊也涵盖这些请求:PR 是附有代码的问题,使用相同的角色、状态和状态机,只有少数差异会在下文标注“针对 PR”。根据跟踪器配置,将单独的 #42 解析为问题或 PR。
分诊期间,在问题跟踪器上发布的每条评论或问题都必须以以下免责声明开头:
> *This was generated by AI during triage.*
参考文档
- AGENT-BRIEF.md:如何编写持久有效的 Agent 简报
- OUT-OF-SCOPE.md:
.out-of-scope/知识库的工作方式
角色
两个类别角色:
bug:出现故障enhancement:新功能或改进
五个状态角色:
needs-triage:维护者需要评估needs-info:等待报告者提供更多信息ready-for-agent:规格完整,已准备好交给 AFK Agentready-for-human:需要人工实现wontfix:不会处理
对于 PR,状态含义要结合附带的代码来理解:ready-for-agent 表示已附上简报,Agent 应对差异进行下一步处理;ready-for-human 表示已准备好由人工合并。
每个完成分诊的问题都应恰好带有一个类别角色和一个状态角色。如果状态角色相互冲突,请标记出来,并在采取任何其他操作之前询问维护者。
这些是规范的角色名称。问题跟踪器中实际使用的标签字符串可能不同。映射信息应已提供给你。如果没有,请告知用户运行 /setup-matt-pocock-skills。
状态转换:没有标签的问题通常首先转为 needs-triage;之后可转为 needs-info、ready-for-agent、ready-for-human 或 wontfix。报告者回复后,needs-info 会回到 needs-triage。维护者可随时覆盖状态;如果转换看起来不寻常,请标记出来并在继续前询问。
调用
维护者通过 /triage 发起调用,并用自然语言描述需求。理解请求并采取行动。示例:
- “显示所有需要我处理的事项”
- “我们来看看 #42”(问题或 PR)
- “将 #42 移至 ready-for-agent”
- “有哪些事项已准备好让 Agent 接手?”
显示需要处理的事项
查询问题跟踪器,并按时间从早到晚列出三个分组。每组前使用固定表情符号,方便维护者快速浏览:
- 📭 未添加标签 — 从未进行过分诊。
- 🔄
needs-triage— 正在评估。 - 💬
needs-info,且报告者自上次分诊备注后有活动 — 需要重新评估。
如果 PR 属于处理范围,请将外部 PR 纳入这些分组,并在每行标注 [PR] 或 [issue]。发现范围仅包括外部 PR(跟踪器配置定义了谁算外部人员),因此协作者尚在进行中的 PR 不属于分诊工作。此筛选仅用于发现;明确指定的 PR 始终要进行分诊,无论作者是谁。
显示数量,并为每项提供一行摘要。最后以 👇 结尾,让维护者选择(按编号或 ID)。
对特定 Issue 或 PR 进行分流
-
收集上下文。 阅读完整的 Issue 或 PR(正文、评论、标签、作者、日期;对于 PR,还要查看差异)。解析之前的分流备注,避免重复询问已解决的问题。使用项目的领域词汇表探索代码库,并遵循相关领域的 ADR。对代码库执行两项检查:(a) 冗余检查:按领域概念(而不只是请求中的措辞)搜索是否已有请求行为的实现,并报告你查找过的位置。如果找到了,这属于已实现的
wontfix(第 5 步)。(b) 此前拒绝检查:阅读.out-of-scope/*.md,指出与此请求相似的条目。 -
给出建议。 告知维护者你的分类和处理建议,并说明理由,同时简要总结与请求相关的代码库情况(包括该功能是否已实现)。等待指示。
-
验证问题描述。 在追问之前,先检查问题描述是否属实。对于 Bug,按照报告者的步骤复现。对于 PR,确认差异确实实现了其声称的功能:检出代码,运行相关测试或命令。报告结果:已确认(包括代码路径)、未复现,或信息不足(这是强烈的
needs-info信号)。经过确认的验证能让 Agent 任务说明更有力。 -
追问(如有需要)。 如果请求需要补充细节,调用 Skill 工具两次,分别用于“grilling”和“domain-modeling”,每轮提出一组问题,逐步完善请求、明确领域术语,并随着决策确定,在线更新
GLOSSARY.md/ADR。 -
落实处理结果(在聊天确认中以对应的表情符号开头;跟踪器评论除必需的 AI 免责声明外保持纯文本):
✅ ready-for-agent— 发布 Agent 任务说明评论(AGENT-BRIEF.md)。🧑 ready-for-human— 使用与 Agent 任务说明相同的结构,但说明无法委派的原因(需要判断、外部访问权限、设计决策或手动测试)。💬 needs-info— 发布分流备注(使用下方模板)。🚫 wontfix— 关闭,并根据原因选择评论内容:- 已实现 — 代码库中已存在此变更。指出其所在位置;不要写入
.out-of-scope/(该知识库用于记录拒绝的请求,而不是已实现的功能)。 - 已拒绝(Bug) — 礼貌说明原因,然后关闭。
- 已拒绝(增强功能) — 写入
.out-of-scope/,在评论中链接到该条目,然后关闭(OUT-OF-SCOPE.md)。
- 已实现 — 代码库中已存在此变更。指出其所在位置;不要写入
🔄 needs-triage— 应用对应角色。如有部分进展,可选择发表评论。
快速状态覆盖
如果维护者说“将 #42 移至 ready-for-agent”,就信任他们并直接应用对应角色。确认即将进行的操作(角色变更、评论、关闭),然后执行。跳过追问。如果在没有追问环节的情况下移至 ready-for-agent,请询问他们是否希望编写 Agent 任务说明。
需要补充信息模板
## Triage Notes
**What we've established so far:**
- point 1
- point 2
**What we still need from you (@reporter):**
- question 1
- question 2
将追问过程中确定的所有内容记录在“目前已确认”部分,避免遗漏。问题必须具体且可执行,不能只说“请提供更多信息”。
继续之前的会话
如果 Issue 或 PR 上已有分流备注,请阅读备注,检查报告者是否已回答任何未解决的问题,并在继续之前说明更新后的情况。不要重复询问已解决的问题。