Claude Code 团队怎样做代码审查?Addy Osmani 分享了一套内部流程:PR 前验证、分层自动检查、按风险安排人工审批,再把线上事故变成审查系统的评测题。
有几个具体做法值得参考:① 提 PR 前,先让 Agent 拿出运行结果。
运行测试、执行构建,或把界面截图与设计稿对比。完成后,再由一个使用全新上下文的子 Agent 审查 diff。团队还会用内部 Skill 找 bug、精简改动、检查端到端行为和 UI 规范。反复出现的问题,会回收到 Skill、lint 规则或项目说明里处理。
② 项目说明和审查规则各司其职。
CLAUDE.md 交代技术栈、约定、目标和非目标,大仓库里保持简短,通过链接补充资料。REVIEW.md 由代码负责人写,说明这一块最怕什么出错、哪些路径可以忽略、哪些细枝末节不要纠缠。
发现问题要给出文件与行号,没问题也要明确说清。团队还会单独检查审查器有没有遵守这些规则。
③ AI 的发现,也要经过验证。
每个 PR 都先接受 Claude 审查,把 diff 放进整个代码库和 PR 意图里判断:有没有解决问题、是否适配现有系统、会不会破坏其他部分。多个 Agent 找问题,再由另一组 Agent 投票核实,过滤纯风格和清理类意见,区分新引入的问题与已有问题。
代码审查和安全审查中未关闭的问题都会阻止合并。作者可以修复,也可以说明理由后关闭误报;测试、类型检查和构建等仍是独立的阻断条件。
④ 人工审批按改动风险分配。
文档改动、普通产品改动、计费或 CI 等高风险改动,需要的关注不同。风险由改动内容决定;较宽松的审批路径只对仓库信任名单里的作者开放,敏感路径有额外要求。Agent 的批准不能抵扣必须由人完成的审批,Agent 写出的 PR 仍由操作者负责。
批准针对具体 commit。后续如果出现系统无法担保的新提交,例如 Agent 又推送了改动,或有人手动解决合并冲突,就需要重新审批。
⑤ Agent 互相审查,真的可能停不下来。
他们遇到过一个 CLI PR:写代码的 Agent 和审查 Agent 一夜往返超过 50 轮,最后靠人工叫停。用 git blame 回查后发现,审查器不断指出的代码中,约 59% 在第一轮时就已经存在。后续审查反复挖出旧问题,继续触发修改和新一轮审查。
团队随后调整规则:三轮后要求作者重新考虑方案;前几轮之后,复审只看新增 diff;报告一类错误,让作者一次处理同类问题;不重复报告已经指出的问题。历史代码则另外安排夜间扫描,并开始追踪一个 PR 要多少轮才能通过。
⑥ 用真实事故检验审查器,也测它会不会误导修改。
把引发事故的 PR、后续修复和回滚收集起来,由熟悉代码的工程师确认 bug 位置与正确性,形成每天运行的评测集。每次调整审查系统,都用整套案例重新评估。
同时观察人怎样处理审查意见:修复、驳回、解释为有意设计,还是认为无关紧要。还会拿已知干净的 PR 测试,检查审查器是否提出可能造成有害修改的建议。
⑦ 合并和发布也承担质量检查。
合并队列把改动放到最新 main 上重新跑检查,防止两个各自通过测试的 PR 合起来出问题。新功能通常放在功能开关后,先给内部员工使用,再逐步发布;公开版本先进入 latest,stable 稍后跟进。
出了问题,可以关闭功能开关或回滚,事故复盘再追问哪一层本应发现它。
⑧ 人仍然要判断方向、架构和验证盲区。
团队把人的注意力留给:这件事该不该做、高风险代码、会影响后续开发的架构选择,以及测试输出、命令和截图等证据。
省下多少人工,要同时看审查耗时和修复故障的耗时;回滚率、事故率上升,就可能只是把工作推迟到了上线以后。
⑨ 少读日常 diff 后,要补上理解代码的方式。
需要改某个模块时,团队成员会让 Claude 针对那一块生成讲解,有人还会生成可视化材料。日常工作在开放频道里讨论,其他人可以尽早指出方向问题,作者也可以及时关闭 PR 或换方案。
小中型改动上线后出了问题,通常由最了解上下文的作者修复,事故复盘则关注系统如何改进。
原文:x.com/addyosmani/status/2114604912520921136
HOW I AI程序员








