| name | claude-review |
| description | "写的不审,审的不写"多模型代码审查工作流(纯 Claude 版)。 主 Claude 写代码,同时派发三个独立 subagent 从不同维度并行审查,主 Claude 汇总修复,循环直到无新问题,再提交。 不依赖 Codex / GPT,在完成代码实现后触发此技能。
|
Claude Cross-Review 工作流
原则
- 写的不审:主 Claude 专注写代码,不自我审查边界条件
- 审的不写:审查 subagent 专注找问题,不改代码
- 并行多维度:三个 subagent 同时从不同角度审查,提高覆盖率
- 循环直到干净:有问题就修,修完再审,直到所有 subagent 无新问题
触发时机
完成功能开发、Bug 修复或重构后,在 git commit 之前运行此工作流。
流程
步骤 1:确认工作范围
git diff --stat
git diff HEAD
列出变更文件清单,确认审查范围。将 git diff HEAD 的完整输出保存备用(三个 agent 都需要)。
步骤 2:并行派发三个审查 subagent
在同一条消息中用 Agent 工具同时启动以下三个 subagent(subagent_type=general),让它们并行运行。每个 agent 只负责一个审查维度。
Agent 1 — 逻辑与边界条件
你是一位专注逻辑与边界条件的代码审查员。只输出问题列表,不评价整体质量。没有问题则输出:NO_ISSUES
【审查维度】
- 边界条件:空数组/空字符串、零值、极大/极小值、索引越界
- 逻辑漏洞:条件判断遗漏、逻辑短路错误、状态机缺失状态
- 控制流:提前返回遗漏、循环条件错误、递归终止条件缺失
【代码变更】
<git diff HEAD 完整输出>
【输出格式】
问题 #1:[逻辑/边界] [文件路径:行号]
描述:...
风险:...
修复建议:(思路即可,不写代码)
Agent 2 — 类型安全与错误处理
你是一位专注类型安全与错误处理的代码审查员。只输出问题列表,不评价整体质量。没有问题则输出:NO_ISSUES
【审查维度】
- 类型安全:nil/null 解引用、类型断言失败、接口不匹配、类型转换溢出
- 错误处理:忽略 error 返回值、错误信息丢失、panic 未恢复
- 空值安全:可选值未检查、指针解引用前未判空
【代码变更】
<git diff HEAD 完整输出>
【输出格式】
问题 #1:[类型/错误] [文件路径:行号]
描述:...
风险:...
修复建议:(思路即可,不写代码)
Agent 3 — 并发与资源安全
你是一位专注并发与资源安全的代码审查员。只输出问题列表,不评价整体质量。没有问题则输出:NO_ISSUES
【审查维度】
- 并发安全:数据竞争、死锁、未加锁的共享状态、goroutine/协程泄漏
- 资源管理:文件/连接未关闭、内存泄漏、defer 使用错误、事件监听器未清理
- 幂等性:重复调用是否安全、重试逻辑是否正确
【代码变更】
<git diff HEAD 完整输出>
【输出格式】
问题 #1:[并发/资源] [文件路径:行号]
描述:...
风险:...
修复建议:(思路即可,不写代码)
步骤 3:汇总问题
等待三个 agent 全部完成,合并输出,去重后按优先级排序:
优先级:逻辑漏洞 > 类型安全 > 并发安全 > 边界条件 > 资源管理
如果三个 agent 全部输出 NO_ISSUES → 跳到步骤 6
步骤 4:主 Claude 逐项修复
按优先级逐一修复:
- 每次修复后更新进度:
已修复 #N 或 跳过 #N(说明原因)
- 不过度修复:只改 subagent 指出的问题,不顺手重构无关代码
步骤 5:再次派发审查
重复步骤 2-3,检查:
如果 有新问题 → 回到步骤 4
如果 全部 NO_ISSUES → 继续步骤 6
步骤 6:验证
全部通过后进入步骤 7。如果验证失败 → 修复后回到步骤 2。
步骤 7:提交
git add <相关文件>
git commit -m "$(cat <<'EOF'
<commit message>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
EOF
)"
输出格式
工作流结束时汇报:
## Claude Cross-Review 完成报告
**审查轮次**:N 轮
**发现问题**:N 个(逻辑 N + 类型 N + 并发 N)
**已修复**:N 个
**跳过**:N 个(含原因)
**验证结果**:全部通过 / 部分失败
已提交:<commit hash> <commit message>