mcpField
T
triage

triage

github.com/unlearndev测试与质量105133 次安装3 周前更新
代码仓库

关于 triage

供准备审查 Git 差异的开发者使用的代码变更分流技能。它按功能领域归类变更文件并按风险排序,生成审查地图,而非执行代码审查。

主要功能

  1. 01比较基准分支与 HEAD
  2. 02按功能领域归类文件
  3. 03划分高、中、低风险
  4. 04单独列出自动生成文件
  5. 05标注文件变更状态

适用场景

  1. 01确定大型差异的审查优先级
  2. 02将变更文件映射到产品功能
  3. 03区分生成文件与待审查内容

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/unlearndev/skills --skill triage

安装后在 Claude Code 中输入/triage确认已加载。

详细介绍

分类

参数

原始参数:$ARGUMENTS

将参数解析为要进行差异比较的基准分支。如果为空,则默认为 main。

目标

生成一份按风险排序的变更地图,按功能领域分组,展示基准分支与 HEAD 之间的变更,帮助用户决定将审查时间花在哪里。输出是一份分类报告,而不是审查结果。

不要执行审查。不要提出建议。不要提出修复方案。不要标出需要核实的具体行。 用户会阅读这份地图,并自行决定要深入查看哪些内容。

说明

1. 获取差异

运行 git diff --name-status <base>...HEAD,查看文件级概览,然后运行 git diff <base>...HEAD,查看实际变更。如果没有变更,请告知用户并停止。

2. 阅读变更文件

对于每个变更文件,阅读足够的内容,以了解它所属的功能领域及其风险程度。无需逐行阅读每个文件——阅读到足以分类即可。

3. 按功能领域分组

按代码的用途分组,而不是按文件类型分组。合适的分组名称示例:“身份验证”“通知投递”“用户数据变更”“架构与配置”。不合适的分组名称示例:“控制器”“PHP 文件”“Vue 组件”。

经验法则:

  • 控制器及其路由、页面和测试通常属于同一个功能组。
  • 迁移文件及与之配套的模型变更属于同一个功能组。
  • 通知类、触发逻辑及邮件模板属于同一个功能组。
  • 对现有流程添加的副作用(例如“投票现在也会为你订阅”)应单独归为一个小组。
  • 不改变行为的纯重构可以合并为一个“重构”组。

每个文件只能出现在一个分组中——选择最相关的分组。分组名称应简短(2–4 个词)。

4. 指定风险等级

将每个分组划分为高、中或低风险。

以下情况始终为高风险:

  • 涉及身份验证或授权
  • 修改用户数据、支付或账单
  • 修改权限或访问控制
  • 处理敏感数据(密码、令牌、个人身份信息)

以下情况风险等级上调一级:

  • 包含复杂的条件判断或分支逻辑
  • 与外部服务或 API 交互
  • 包含大量生成代码(100 行以上,看起来像一次 AI 生成的内容)

其他情况则根据变更的影响范围选择合适的风险等级。

5. 识别自动生成的文件

自动生成的文件归入底部的“跳过”部分,包括:

  • 锁文件(composer.lock、package-lock.json、pnpm-lock.yaml)
  • 编译后的资源(public/build/、dist/)
  • 生成的路由/类型定义(Wayfinder action/route 文件、生成的 TS 类型)
6. 输出报告

使用以下确切格式:

### ⚠️ High Risk

**[Feature Area Name]**
Reason: [one sentence explaining why this is high risk]
- path/to/file.php (added/modified)
- path/to/other-file.php (modified)

**[Another Feature Area]**
Reason: [one sentence]
- path/to/file.php (added)

### Medium Risk

**[Feature Area Name]**
Reason: [one sentence]
- path/to/file.php (added)

### Low Risk

**[Feature Area Name]**
- path/to/file.php (modified)

### Skip

**Auto-generated**
- path/to/generated/files... (auto-generated — skip)

最后用一行摘要结束:X 个分组,Y 个高风险文件需要重点关注

规则

  • 按功能领域而非文件类型分组。 使用“身份验证流程”,而不是“控制器”;使用“通知投递”,而不是“PHP 文件”。
  • 每个文件只能属于一个分组。 选择最相关的分组。
  • 分组名称为 2–4 个词。 简短且能说明内容。
  • 每个分组用一句话说明其风险等级的原因。 仅高风险和中风险需要说明;低风险可以省略。
  • 每个文件都要带状态后缀:(added)、(modified) 或 (deleted)。与 git diff --name-status 的结果一致。
  • 按风险从高到低排列。 先高风险,再中风险,然后低风险,最后是跳过。
  • 某个风险等级没有文件时,省略该部分。
  • 如果所有文件都属于同一个风险等级,请说明这一点并建议审查所有文件:“此差异范围较小——请审查所有文件”。
  • 不要给出建议或意见。 这是分类地图,不是审查。不要说“核实……”或“考虑……”或“确保……”。
  • 除高风险标题中的 ⚠️ 外,不要使用表情符号。
  • 最后用一行摘要结束:X 个分组,Y 个高风险文件需要重点关注。

评论

支持 Markdown