SuperAPI AI 工具集

triage

办公与效率

查看项目

更新于 10-16 06:07

技能介绍

用途

Triage 用于将项目问题跟踪器上的 issue 通过一个小型状态机在分诊角色之间流转。如果仓库将外部 pull request 视为请求入口(参见 issue-tracker 配置),分诊同样覆盖它们:PR 被视为附带代码的 issue,使用相同的角色、相同的状态和相同的状态机,仅有少量差异在文中以“for a PR”标注。裸编号如 #42 会按跟踪器配置解析为 issue 或 PR。

分诊期间发布到问题跟踪器的每条评论或 issue 都必须以以下声明开头:

This was generated by AI during triage.

参考文档

  • AGENT-BRIEF.md:如何撰写持久的智能体简报
  • OUT-OF-SCOPE.md:.out-of-scope/ 知识库的工作方式

角色

两个分类角色:

  • bug:某处损坏
  • enhancement:新功能或改进

五个状态角色:

  • needs-triage:维护者需要评估
  • needs-info:等待报告者提供更多信息
  • ready-for-agent:已完全明确,可供 AFK 智能体处理
  • ready-for-human:需要人工实现
  • wontfix:不会处理

对于 PR,相同状态针对所附代码解读:ready-for-agent 表示已附简报,智能体应对 diff 采取下一步;ready-for-human 表示已可供人工合并。

每个已分诊的 issue 应恰好携带一个分类角色和一个状态角色。如果状态角色冲突,需标记并在做任何其他事情之前询问维护者。

这些是规范角色名称。问题跟踪器中实际使用的标签字符串可能不同。映射应已提供给你。如果没有,请告知用户运行 /setup-matt-pocock-skills。

状态转换:未标记的 issue 通常先进入 needs-triage;从那里可移动到 needs-info、ready-for-agent、ready-for-human 或 wontfix。needs-info 在报告者回复后返回 needs-triage。维护者可随时覆盖;对看起来不寻常的转换需标记并在继续前询问。

调用方式

维护者调用 /triage 并用自然语言描述需求。解释请求并执行。示例:

  • “Show me anything that needs my attention”
  • “Let's look at #42”(issue 或 PR)
  • “Move #42 to ready-for-agent”
  • “What's ready for agents to pick up?”

显示需要关注的事项

查询问题跟踪器并呈现三个桶,最旧的在前:

  • Unlabeled:从未分诊。
  • needs-triage:评估进行中。
  • needs-info 且自上次分诊笔记以来报告者有活动:需要重新评估。

当 PR 在范围内时,将外部 PR 纳入这些桶,并为每行标记 [PR] 或 [issue]。发现仅呈现外部 PR(跟踪器配置定义谁算外部),因此协作者的进行中 PR 不算分诊工作。此过滤器仅用于发现;明确指定的 PR 无论作者是谁都会被分诊。

显示计数和每项一行摘要。让维护者挑选。

分诊特定 issue 或 PR

收集上下文。阅读完整 issue 或 PR(正文、评论、标签、作者、日期;对于 PR 还包括 diff)。解析任何先前的分诊笔记,以免重复询问已解决的问题。使用项目领域词汇表探索代码库,尊重该区域的 ADR。对代码库运行两项检查:(a) 冗余:按领域概念(而不仅是请求的措辞)搜索所请求行为的现有实现,并报告你查找的位置。如果找到,则属于已实现的 wontfix(第 5 步)。(b) 先前拒绝:阅读 .out-of-scope/*.md 并呈现任何与此请求相似的内容。

推荐。告诉维护者你的分类和状态建议及理由,外加与请求相关的简要代码库摘要(包括是否已实现)。等待指示。

验证声明。在任何追问之前,检查声明是否成立。对于 bug,从报告者的步骤复现。对于 PR,确认 diff 是否如其声称:检出、运行相关测试或命令。报告结果:已确认(附代码路径)、失败或细节不足(强烈的 needs-info 信号)。已确认的验证能形成更强的智能体简报。

追问(如需要)。如果请求需要充实,调用 Skill 工具两次,分别为 “grilling” 和 “domain-modeling”,一轮问题一轮问题地追问成形,锐化领域术语并随决策落地内联更新 CONTEXT.md/ADR。

应用结果:

  • ready-for-agent:发布智能体简报评论(AGENT-BRIEF.md)。
  • ready-for-human:与智能体简报结构相同,但注明为何不能委派(判断决策、外部访问、设计决策、手动测试)。
  • needs-info:发布分诊笔记(模板见下)。

对于 wontfix,关闭 issue,评论取决于原因:

  • 已实现:变更已存在于代码库中。指出其所在位置;不要写入 .out-of-scope/(该知识库用于被拒绝的请求,而非已构建的)。
  • 拒绝(bug):礼貌解释,然后关闭。
  • 拒绝(enhancement):写入 .out-of-scope/,从评论链接到它,然后关闭(OUT-OF-SCOPE.md)。

needs-triage:应用角色。如有部分进展可选评论。

快速状态覆盖

如果维护者说 “move #42 to ready-for-agent”,信任他们并直接应用角色。确认你即将做什么(角色变更、评论、关闭),然后执行。跳过追问。如果在没有追问会话的情况下移动到 ready-for-agent,询问他们是否想撰写智能体简报。

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

将追问期间解决的所有内容捕获到 “established so far” 下,以免工作丢失。问题必须具体且可操作,而非 “please provide more info”。

恢复先前会话

如果 issue 或 PR 上存在先前的分诊笔记,阅读它们,检查报告者是否已回答任何未决问题,并在继续之前呈现更新后的情况。不要重复询问已解决的问题。