分流(Triage)
适用时机
当工作流匹配以下用户请求时使用:通过分流角色的状态机处理 Issue 和外部 PR —— 包括分类、验证、必要时盘问,并撰写可直接交付给智能体的简报。
来源:mattpocock/skills(MIT)。
让项目 Issue 跟踪器上的 Issue 经过一组小型分流角色组成的状态机。
如果本仓库将外部拉取请求(PR)视为请求面(参见 Issue 跟踪器配置),分流也覆盖 PR:PR 即附带代码的 Issue —— 角色相同、状态相同、机器相同,仅有少量差异在下方“针对 PR”处注明。请根据跟踪器配置,将裸 #42 解析为 Issue 或 PR。
在分流期间发布到 Issue 跟踪器的每条评论或每个 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 应只携带一个分类角色和一个状态角色。若状态角色冲突,加标记并向维护者确认再做其他操作。
以上为标准角色名 —— 实际在 Issue 跟踪器中使用的标签字符串可能不同。映射关系应已提供给你;若未提供,请运行 /setup-matt-pocock-skills。
状态流转:未打标签的 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] 标记。发现阶段仅展示外部 PR(由跟踪器配置定义何为“外部”)—— 协作者正在进行的 PR 不属于分流工作。此过滤仅用于发现阶段;被显式点名的 PR 无论作者是谁都会进入分流。
显示计数与每项一行摘要。由维护者挑选。
分流特定 Issue 或 PR
收集上下文。 阅读完整的 Issue 或 PR(正文、评论、标签、作者、日期;PR 还包括 diff)。解析任何既有的分流记录,避免重复提出已解决的问题。利用项目的领域术语表探索代码库,并尊重相关区域的 ADR 决策。运行两项针对代码库的检查:(a) 冗余性 —— 按领域概念(不仅是请求的字面措辞)搜索请求行为的已有实现,并报告检索了哪些位置。若已存在,则为“已实现”的
wontfix(第 5 步)。(b) 既往拒绝 —— 阅读.out-of-scope/*.md并指出与当前请求相似的项。给出建议。 向维护者提供分类与状态建议及理由,再加上一份与请求相关的代码库简明摘要 —— 包括是否已经实现。等待指示。
验证声明。 在任何盘问之前,检查声明是否站得住脚。对 bug:从报告者给出的步骤复现问题。对 PR:确认 diff 实现了其声称的内容 —— 检出代码并运行相关测试或命令。报告结果:已确认(附代码路径)、复现失败、或证据不足(强
needs-info信号)。已确认的验证会显著强化智能体简报的可信度。盘问(如有必要)。 若请求需要细化,可同时运行
/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— 应用该角色。若有部分进展可选择性发评论。
快速状态覆盖
若维护者说“把 #42 移到 ready-for-agent”,请相信并直接应用该角色。先确认你将执行的操作(角色变更、评论、关闭),再执行。跳过盘问。若要在无盘问环节的情况下进入 ready-for-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 上已有先前的分流记录,先阅读并检查报告者是否已回答未解决问题,再呈现一份更新的整体情况,再继续。不要重复提问已经解决的问题。
限制
- 当工作流指定了上游工具、账号、API 密钥或本地环境时,需具备相应配置。
- 未经用户明确授权,不会执行破坏性、生产环境、付费或对外发送消息的操作。
- 将生成的内容或建议当作最终结论之前,需基于用户的真实资料源进行验证。