关于 branch-review-before-pr
用于 PR 前检查分支与基线差异的审查技能,要求依据完整差异和检查清单报告问题,并在修复前取得用户明确批准。
主要功能
- 01阅读完整差异和检查清单
- 02审查范围限定于分支变更
- 03区分阻塞与非阻塞问题
- 04未经批准保持只读
- 05仅应用逐项获批的修复
适用场景
- 01创建 PR 前审查分支
- 02按项目清单检查代码变更
- 03分类阻塞问题并由用户决定处理方式
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ulpi-io/ skills --skill branch-review-before-pr安装后在 Claude Code 中输入/branch-review-before-pr确认已加载。
附带文件checklist.md
详细介绍
此技能以审查为先,只有在用户明确批准后才会进行修改。
不可妥协的规则:
- 报告任何问题前,先阅读完整差异。
- 加载并遵循
checklist.md,包括其中的抑制规则。 - 审查范围仅限于相对于审查基准的差异。
- 除非用户明确选择对阻塞问题“立即修复”,否则保持只读。
- 发现必须简洁、有依据且具体。
PR 前分支审查
输入
$request:可选的关注领域、分支风险提示或审查范围说明
目标
针对默认基准审查当前分支,并:
- 找出通过上下文检查后仍存在的结构性缺陷
- 区分阻塞问题和非阻塞问题
- 询问用户如何处理每个阻塞问题
- 仅在用户明确批准后,选择性地应用修复
步骤 0:确定审查基准
确定:
- 当前分支
- 默认审查基准,通常是
origin/main或origin/master - 用户希望审查整个分支,还是更窄的范围
如果当前分支已经是基准分支,或者没有差异,则停止并明确说明。
成功标准:明确了差异基准,并且存在实际的分支差异。
步骤 1:加载检查清单和差异范围
阅读:
checklist.md- 相对于基准分支的完整差异
- 差异较大时的变更文件列表
规则:
- 不得仅依据
--stat进行审查 - 不得报告检查清单中已被抑制的项目
- 差异较大时,逐一阅读变更文件,并查看足够的上下文以核实问题
成功标准:已加载检查清单,并阅读了所有相关的变更文件。
步骤 2:分两轮审查
第一轮仅检查阻塞问题:
- 查询和数据安全
- 竞态条件和并发
- 身份验证和信任边界
第二轮检查非阻塞问题:
- 检查清单中的所有其他类别
对于每个候选问题,核实:
- 问题确实属于审查范围
- 差异中的其他位置尚未修复该问题
- 周边代码尚未缓解该问题
成功标准:已评估检查清单中所有有意义的类别,并过滤掉误报。
步骤 3:报告所有发现
始终报告完整结果:
- 先列出阻塞问题
- 再列出非阻塞问题
- 如果没有发现问题,则明确说明审查结果良好
使用以下结构:
Branch Review: N issues (X critical, Y informational)
CRITICAL (blocking):
- [file:line] Problem description
Fix: suggested fix
Issues (non-blocking):
- [file:line] Problem description
Fix: suggested fix
成功标准:用户能立即判断分支是否受阻,以及原因。
步骤 4:逐一处理阻塞问题
针对每个阻塞问题,单独使用 AskUserQuestion,并提供:
- 问题及其位置
- 建议的修复方案
- 以下选项:
立即修复接受误报
如果用户选择:
立即修复:仅应用已批准的修复接受:保持代码不变并记录接受决定误报:保持代码不变并注明已驳回该问题
不得将多个阻塞问题合并到同一个问题中。
成功标准:每个阻塞问题都有明确的用户决定。
步骤 5:仅应用已批准的修复
用户选择 立即修复 时:
- 进行最小且正确的代码修改
- 修改范围仅限于已批准的问题
- 不得提交、推送或创建 PR
- 修复完成后总结所做的更改
如果用户仅接受或驳回问题,则不得进行任何编辑。
成功标准:仅应用了用户明确批准的修复。
何时加载参考资料
checklist.md用于查看详细的审查矩阵、抑制规则和问题类别。
防护措施
- 不得添加
disable-model-invocation;此技能必须继续可用于 PR/发布工作流。 - 除非需要核实上下文,否则不得审查未变更的文件。
- 不得将风格偏好报告为问题。
- 除非用户明确批准相关问题,否则不得进行任何修复。
- 不得通过此技能提交、推送或创建 PR。
输出约定
报告:
- 审查基准和分支范围
- 阻塞性问题
- 非阻塞性问题
- 针对每个阻塞性问题,报告用户的决定(如有提问)
- 实际应用的修复
评论
支持 Markdown