关于 triage
供准备审查 Git 差异的开发者使用的代码变更分流技能。它按功能领域归类变更文件并按风险排序,生成审查地图,而非执行代码审查。
主要功能
- 01比较基准分支与 HEAD
- 02按功能领域归类文件
- 03划分高、中、低风险
- 04单独列出自动生成文件
- 05标注文件变更状态
适用场景
- 01确定大型差异的审查优先级
- 02将变更文件映射到产品功能
- 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