审查循环(review-loop)
在当前分支上运行开发循环:验证、审查差异、修复,并重复直到一轮审查无问题。范围仅限于差异,而非整个代码库。此技能不会推送或打开拉取请求;这些操作由用户自行完成。
步骤
- 运行
.claude/verify.sh。如果失败,请先修复。如果文件不存在,请告知用户并指向/code-loops:init-verify,然后在报告中说明未进行验证并继续。 - 确定差异。第一轮:分支与其基础分支之间的差异(
git diff origin/HEAD...HEAD,加上git diff HEAD用于未提交的更改,以及从git status --short读取的未跟踪文件)。如果origin/HEAD未设置,尝试origin/main或origin/master;如果均不存在,请询问用户基础分支。如果差异为空(例如你当前就在基础分支上),报告无内容可审查并停止。如果未提交的更改看起来与分支工作无关,请不要修复;在报告中提及它们。后续轮次:仅针对上一轮你更改的内容。 - 审查差异。
- 如果是代码更改,使用
code-review技能,努力程度设为中等。如果该技能不可用,请自行阅读差异以查找 bug:错误结果、缺失的错误路径,以及更改所破坏的调用方。 - 如果仅是文档更改(
.md及类似文件),请改用/code-loops:doc-code-consistency处理差异。
- 如果是代码更改,使用
- 修复发现的问题。不要提交;留给用户处理。每次修复后,回到步骤 1。重复直到某轮审查无问题。决定不修复的问题,附上一行原因。如果连续三轮都出现发现(
verify.sh失败也算),则停止并报告剩余内容,不再继续。 - 如果差异更改了文档描述的代码,请在最后对差异运行一次
/code-loops:doc-code-consistency并修复其发现。 - 提供一次独立审查(除非差异仅为文档)。询问用户(AskUserQuestion)是否运行,附带一行说明此差异是否值得审查(大小、风险区域);默认答案为否。如果同意,启动一个仅能看到差异(而非构建过程)的子代理。如果存在只读代理类型(例如
Explore),请使用;否则告知它不要编辑文件。让它查找能够破坏更改的输入、状态和顺序,并以 file:line 证据报告每个问题;如果.claude/review/checklist.md存在,则同时对照它进行检查。修复其发现,然后仅对那些修复运行步骤 1 和 3。如果子代理不可用,跳过此步骤并在报告中说明。 - 用几行报告:"结果:无发现",或"结果:保留发现"并列出每个发现及其原因。添加
verify.sh是否通过、进行了多少轮以及是否运行了独立审查。
保持每轮简洁:阅读差异,而非存储库,且不要重复之前轮次的发现。