Skip to content
Development
Skill

/triage

让 issues 和 external PRs 通过一组 triage roles 状态机——分类、验证、必要时 grilling,并写出 agent-ready briefs。

From plugin
mattpocock-skills
3.1k26 skills
Install
$ npx -y skills add vinvcn/mattpocock-skills-zh-cn --skill triage --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/triage

Context preview

The summary Claude sees to decide when to auto-load this skill.

让 issues 和 external PRs 通过一组 triage roles 状态机——分类、验证、必要时 grilling,并写出 agent-ready briefs。

SKILL.md

triage.SKILL.md
name: triage
description: 让 issues 和 external PRs 通过一组 triage roles 状态机——分类、验证、必要时 grilling,并写出 agent-ready briefs。
disable-model-invocation: true

Triage

通过一组小型 triage roles state machine,在项目 issue tracker 中移动 issues。

如果这个 repo 把 external pull requests 当作 request surface(见 issue-tracker 配置),triage 也覆盖它们:**PR 是带附加代码的 issue**——相同的 roles、相同的 states、相同的 machine,只有下面标记为 “for a PR” 的几处差异。按 tracker 配置把裸 `#42` 解析为 issue 或 PR。

Triage 期间发布到 issue tracker 的每条 comment 或 issue **必须**以此 disclaimer 开头:

> *This was generated by AI during triage.*

Reference docs

  • [AGENT-BRIEF.md](AGENT-BRIEF.md) — 如何写持久可用的 agent briefs
  • [OUT-OF-SCOPE.md](OUT-OF-SCOPE.md) — `.out-of-scope/` knowledge base 如何工作

Roles

两个 **category** roles:

  • `bug` — 某个东西坏了
  • `enhancement` — 新功能或改进

五个 **state** roles:

  • `needs-triage` — maintainer 需要评估
  • `needs-info` — 等待 reporter 提供更多信息
  • `ready-for-agent` — 已完整说明,准备给 AFK agent 接手
  • `ready-for-human` — 需要人工实现
  • `wontfix` — 不会处理

对 PR 而言,相同的 states 对照附加代码来解读:`ready-for-agent` 表示已附加 brief、agent 应对 diff 采取下一步;`ready-for-human` 表示已准备好由人类 merge。

每个已 triage 的 issue 应该刚好携带一个 category role 和一个 state role。如果 state roles 冲突,标记出来并先询问 maintainer,再做其他事。

这些是 canonical role names;issue tracker 中实际使用的 label strings 可能不同。映射应该已经提供给你;如果没有,运行 `/setup-matt-pocock-skills`。

State transitions:未标记的 issue 通常先进入 `needs-triage`;之后移动到 `needs-info`、`ready-for-agent`、`ready-for-human` 或 `wontfix`。`needs-info` 在 reporter 回复后回到 `needs-triage`。Maintainer 可以随时 override;对看起来异常的 transitions 标记并在继续前询问。

Invocation

Maintainer 调用 `/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?"

Show what needs attention

查询 issue tracker,并按最旧优先展示三个 buckets:

1. **Unlabeled** — 从未 triaged。 2. **`needs-triage`** — evaluation in progress。 3. **`needs-info` with reporter activity since the last triage notes** — 需要重新评估。

当 PRs 在范围内时,把 external PRs 纳入这些 buckets,并为每行标注 `[PR]` 或 `[issue]`。Discovery 只浮现 *external* PRs(tracker 配置定义了谁算 external)——collaborator 正在进行的 PR 不是 triage 工作。这个过滤仅用于 discovery;被明确点名的 PR 无论作者是谁都会被 triage。

显示每个 bucket 的数量,以及每个 issue 的一行摘要。让 maintainer 选择。

Triage a specific issue or PR

1. **Gather context.** 读取完整 issue 或 PR(body、comments、labels、author、dates;对 PR 还包括 diff)。解析任何之前的 triage notes,避免重新询问已解决的问题。使用项目 domain glossary 探索 codebase,并遵守相关 ADRs。对照 codebase 运行两项检查:(a) **redundancy**——按 domain concept(而不仅是请求的措辞)搜索所请求 behavior 的现有实现,并报告你查找过的地方。如果找到,那就是一个已实现的 `wontfix`(step 5)。(b) **prior rejection**——读取 `.out-of-scope/*.md`,并浮现任何与此请求相似的既往拒绝。

2. **Recommend.** 告诉 maintainer 你的 category 和 state 推荐及理由,并给出与请求相关的简短 codebase summary——包括它是否已经实现。等待指示。

3. **Verify the claim.** 在任何 grilling 前,检查该 claim 是否成立。对 bug,从 reporter 的步骤复现。对 PR,确认 diff 做到了它所声称的——checkout 它,运行相关 tests 或 commands。报告发生了什么:已确认(附 code path)、失败,或细节不足(强烈的 `needs-info` 信号)。已确认的验证会让 agent brief 更有力。

4. **Grill(如果需要).** 如果请求需要进一步充实,一起运行 `/grilling` 和 `/domain-modeling` skills——一次一个问题把它 grill 成形,在 decisions 落定时打磨 domain terms 并内联更新 `CONTEXT.md`/ADRs。

5. **Apply the outcome:**

  • `ready-for-agent` — 发布 agent brief comment([AGENT-BRIEF.md](AGENT-BRIEF.md))。
  • `ready-for-human` — 使用与 agent brief 相同的结构,但说明为什么不能委托(judgment calls、external access、design decisions、manual testing)。
  • `needs-info` — 发布 triage notes(见下方 template)。
  • `wontfix` — close,comment 取决于*原因*:
  • **Already implemented** — change 已存在于 codebase 中。指向它所在的位置;**不要**写入 `.out-of-scope/`(那个 KB 是为*被拒绝*的请求准备的,不是为已构建的)。
  • **Rejected(bug)** — 礼貌解释,然后 close。
  • **Rejected(enhancement)** — 写入 `.out-of-scope/`,从 comment 链接到它,然后 close([OUT-OF-SCOPE.md](OUT-OF-SCOPE.md))。
  • `needs-triage` — 应用 role。如果有部分进展,可选择 comment。

Quick state override

如果 maintainer 说 “move #42 to ready-for-agent”,相信他们并直接应用 role。确认你即将做什么(role changes、comment、close),然后执行。跳过 grilling。如果在没有 grilling session 的情况下移动到 `ready-for-agent`,询问他们是否想写 agent brief。

Needs-info template

## Triage Notes

**What we've established so far:**

- point 1
- point 2

**What we still need from you (@reporter):**

- question 1
- question 2

把 grilling 期间已经解决的所有内容都捕获到 “established so far” 下,避免工作丢失。问题必须具体且可执行,而不是 “please provide more info”。

Resuming a previous session

如果 issue 或 PR 上已有 triage notes,读取它们,检查 reporter 是否回答了任何 outstanding questions,并在继续前展示更新后的情况。不要重复询问已解决的问题。

Read more
Ships withmattpocock-skills

这是 mattpocock/skills 的简体中文本地化版本。

Get the whole plugin
Stats
3,098
Stars
255
Forks
Active
Maintenance
Shell
Language
MIT
License
13d ago
Last commit
3mo ago
Created

Repo: vinvcn/mattpocock-skills-zh-cn