Issue tracker 分诊状态机的口袋版。完整教学见 Lesson 0014; 原文见 SKILL.md、 AGENT-BRIEF.md、 OUT-OF-SCOPE.md。
把 tracker 里别人创建的原始 issue / 外部 PR 推过一台状态机:
分类 → 验证 → 必要时烤(grilling + domain-modeling)→ 落地标签与评论,
最终产出 AFK agent 能接的 brief。只能人启动(disable-model-invocation: true);
每条发出去的评论以 > *This was generated by AI during triage.* 开头。
to-tickets 切出的 issue(出生即 agent-ready);现在就修的 bug → diagnosing-bugs;对话 → tracker 是 to-spec(方向相反)setup-matt-pocock-skills 已写好 docs/agents/issue-tracker.md + triage-labels.mdbug 有东西坏了 · enhancement 新功能或改进needs-triage 待评估 · needs-info 等报告者补充 ·
ready-for-agent 规格完整、agent 可接 ·
ready-for-human 需人来实现/合并 ·
wontfix 不处理(已实现或已拒绝)
issue-tracker.md 的「PRs as a request surface」(setup 默认 no)needs-triage(评估进行中)needs-info 且报告者自上次分诊笔记后有新活动(该重估了).out-of-scope/快速通道:维护者直接下状态命令 → 信任、跳过烤、行动前复述确认;进 ready-for-agent 未烤过 → 问要不要补 brief。 恢复:有历史分诊笔记 → 先读、查已答问题、不重问。
| 为什么关 | 评论 | .out-of-scope/ |
|---|---|---|
| 已实现 | 指出功能在代码里的位置 | 不写(会毒化去重) |
| 拒绝(bug) | 礼貌解释 | 不写 |
| 拒绝(enhancement,含 PR) | 链接到概念文件 | 写/追加 Prior requests |
骨架:Category / Summary / Current / Desired / Key interfaces / Acceptance criteria / Out of scope。PR 版:Current 描述 diff 现状,brief = 把这份 diff 做完修好。brief 是合同,原始讨论只是背景。
| 写到哪里 | 写什么 |
|---|---|
| tracker 标签 | 恰好一分类 + 一状态(经 triage-labels.md 映射) |
| tracker 评论 | agent brief / 分诊笔记 / wontfix 说明;全带 AI disclaimer |
| tracker 状态 | wontfix 时关闭 issue |
.out-of-scope/*.md | 仅被拒 enhancement:新建/追加/删改 |
CONTEXT.md / ADR | 第四步经 domain-modeling 就地更新 |
| 不写 | 实现代码、测试、spec(那是 implement/tdd/to-spec) |
/implement(内部驱动 /tdd),每条间清上下文/grill-with-docs 主流程/diagnosing-bugsdocs/agents/triage-labels.md 右列(别改 SKILL.md 的规范角色名)SKILL.md 第三步 Verify the claimAGENT-BRIEF.md Durability 一节SKILL.md 第五步 + OUT-OF-SCOPE.md When to writeissue-tracker.md 的外部定义 / request-surface 开关SKILL.md 开头 must 条款SKILL.md Resuming 一节agents/openai.yaml(应双禁)