Claude Code九成代码由AI写,六层审查怎么把关
Claude Code约90%的自身代码,已经交给Claude编写。 写代码的换成了AI,改动数量也跟着暴涨:6月到9月,合并进代码库的PR数量,翻了一倍多。 放眼整个Anthropic,主代码库每天合并的改动,从5月约2500次,涨到9月超过3万次。 这么多代码,人还读得过来吗?如果连审查也交给AI,谁来判断它有没有

Claude Code自身约90%的代码,如今已交给Claude来写。写代码的活儿换了人,改动数量随之猛增:6月到9月,合并进代码库的PR数量翻了一倍还多。
放大到整个
Anthropic来看,主代码库每天合并的改动,5月约2500次,9月已经超过3万次。
代码堆到这个量级,人还读得过来吗?要是审查也一并交给AI,它出了错又该由谁发现?

10月15日,Claude Code团队把内部的代码审查流程公开了。他们披露,PR数量翻倍的同时,需要回滚的PR占比反倒相对下降了超过40%。
靠的是六层检查,再加一套能快速发现问题、快速回滚的兜底机制。
在Claude Code团队看来,到了这个体量,逐行人工审查已经不现实。不过审查并没有被取消,大部分读代码的工作,改由机器承担。

一段AI写出来的代码,上线前得先跑测试、过AI审查和安全审查,再按风险高低决定要不要人批准。
Claude Code团队认为,「有没有人读过这段代码」这个问题本身就不够精确。该问的是:这次改动可能出什么错,一旦出错,应该由哪一道检查把它拦住?
人工审查之前,AI先交出验证结果
一次改动要过六道检查,末尾还兜着一张安全网。
第一关在创建合并请求(PR)之前。Claude得跑测试、把构建做完;改动涉及界面的话,还要截图和设计稿对照。
随后再派一个子智能体,用全新的上下文去审代码差异。它没参与写代码,任务就是专门挑刺。
官方要求说得很明白:Claude必须把执行的命令和输出摆出来,只回一句「测试全部通过」不作数。
普通开发者也能照这个思路来:给AI派任务时,把验收标准一并讲清楚。
第二关才是PR上的AI审查。几个智能体同时找bug,另一组再投票核验,票数够了,问题才会贴到PR上。
只关乎代码风格、诊断提示或代码清理的意见,不会发到PR上,会被直接过滤掉。
这套审查今年3月刚上线时,团队内部拿到实质性审查意见的PR占比从16%涨到了54%。
第三关查的是安全。团队内部立了条规矩:代码审查或安全审查留下的发现,只要还没关闭,PR就合不进去——要么改掉,要么把理由写清楚再关。
第四关是持续集成(CI)检查,代码规范、类型检查、各平台测试、构建打包都在里面。哪怕只是动了一个普通的命令行工具(CLI),交到人手里之前,也可能要先跑几十项检查。反复冒出来的问题,还得变成下一次检查的依据。
CLAUDE.md用来记录项目约定,REVIEW.md则告诉审查器重点查什么、哪些能跳过,这一次发现的问题,就成了下一次审查的经验。同一条意见要是被提到第三遍,就该写进规则里了。
第五关是人工审批。这一关最关键,下一节细说。
第六关管合并与发布。改动闯过前面几关,还得进合并队列排队。
排到它的时候,系统会把它放到主分支的最新版本上,所有检查重新跑一遍。这一步防的就是「各自没问题,合起来出问题」。
合并之后,新功能也不会立刻推给所有用户。它先藏在功能开关后面,只对Anthropic内部员工开放。员工天天高强度使用,往往比外部用户更早撞上问题。功能开关就像一个总闸,不用改代码、不用重新发版,就能决定功能开还是关。
最后是兜底。出了问题,先把总闸拉下。
团队每周轮班值守,每次事故复盘都要追问一句:这件事本该在哪一关被拦住?
审查并没有消失,它变成了贯穿开发、合并和发布的层层检查。
零人审批的边界在哪里
前四关全绿之后,第五关按风险分级,决定这次改动要几个人批准。文档、文案、仅内部可见的功能,以及藏在开关后的新增改动,都算低风险,自动审查和安全检查通过后,可以免掉人工审批。
普通产品改动,还有缓存、自动更新器、系统提示词这类敏感区域,需要一个人。
碰到最高风险的代码,再算上少数被点名的路径,就得两个人盯。
乍一看,低风险改动好像已经不用人管了?
其实没这么轻松。
风险等级看改动本身来定:先由第一个分类器读代码、判风险,第二个分类器再决定要不要多加一道人工审批。
代码所有者圈出来的敏感路径,加上全部CI工作流文件,都绕不开人工审查。
轻量审批那条道也不是谁都能走:只向仓库「可信作者」名单内的人开放,名单外的人想合并,还得再拉一个人签字。
指挥AI动手写代码的那个人,本身就被算作一名审查者,责任跟亲手敲代码一样,出了事得为这次改动兜着。
零人审批,并不代表没人负责。
功能做不做、架构合不合理,这些得由人来拍板;现有检查能不能兜住这回的风险,同样要人来判断。
于是Claude Code团队立了条规矩:你合进去的代码,日后出了问题,修的人通常就是你。
点批准之前,审查者要把话说清楚——这些检查到底验了什么,哪些风险还敞着没盖住。
讲不明白,就先别点通过,把该补的审查补齐再说。
AI审查也会失灵
自动化审查有时候会把自己绕进去。
有个CLI项目的PR,一晚上来回折腾了五十多轮审查和修复,最后还是作者手动喊停。
一个小毛病,人一秒钟就能放过,AI却不会,它会一根筋地改下去,改完提交一次,又触发一轮审查。
团队拿git blame回查,发现审查器反复标出来的问题里,约59%是首轮审查之前就存在的老代码。新bug它很少逮到,每轮不过是多翻出几个旧的。
之后他们改了四条规矩:
审到第三轮还没过,就提醒作者先退一步,重新想想方案;
前几轮过后,只盯新增的改动;
同一类问题,一次点透;
已经提过的问题,不再翻旧账。
效果马上就出来了。
内部PR里,一轮审查加修复就通过的占比,从65%升到78%;要磨五轮甚至更多的,从8.9%掉到1.5%;平均审查次数,从2.08降到1.32。

复审规则调整后,经一轮审查加修复即通过的占比从65%升到78%,平均审查次数则由2.08降到1.32。
会审查,一半功夫在挑毛病,另一半在拿捏何时停手。
那么,多层审查就能保证没有漏网之鱼吗?
Anthropic自己就遇到过一个反面案例。
3月26日,Claude Code推出了一项优化:会话闲置超过一小时,便对旧的推理记录做一次清理。
然而一个bug让它恢复对话后每一轮都在执行清理。Claude因此变得健忘、开始重复,调用工具也出现异常。该bug直到4月10日才修复。

本应在闲置后只清理一次旧推理,实际却每轮持续清理;红框标出的是被误删的内容。
官方在4月23日的复盘中承认:
这项改动穿过了多轮人工与自动审查,单元测试、端到端测试、内部试用都没能拦住,光确认根因就花了一周多。
复盘里出现了转折。
团队用Code Review重审了出事的PR:给足相关仓库上下文时,Opus 4.7找到了这个bug,Opus 4.6没有找到。
这次回测表明,模型能力与上下文完整性都会左右检出结果。他们随后让审查引入更多仓库。
现在,每一起事故都会变成一道考题。
团队把PR收集起来,由熟悉代码的工程师逐个确认其中的bug,整理成一套考题。
审查器每天拿这套考题跑分。每次调整提示词、工具或模型,也要用它检验效果:成绩没有提高,这次调整就不采用。
团队也没有把话说满。
改动上线后,仍要依靠开发者、值班人员结合数据看板发现异常。
依据回滚率等指标自动收紧审批的「熔断」机制尚未建好。工程师们希望先补上这道保险,再让更多改动走零人审批。
审查难免漏检,发现和补救也得跟上。
在一位Claude Code团队成员看来,慢下来出错是少了,可根源在于做的事本身就少了。因此团队更愿意把精力用在提升发现问题和修复问题的速度上。
一个人用AI写代码,要验收什么
AI审查只给意见,拍板的还是你。
所以,别急着追求「不用看」,而是先让AI每次交付都回答三个问题。
第一,怎么验证的?
具体跑了哪些检查、得出什么结果,哪些情形仍属空白,需要一并说明。
Claude Code创造者Boris Cherny讲过,给Claude一套验证自己的办法,或许是最要紧的一环。他估算,这么做能让最终结果的质量达到原来的2至3倍。

Boris Cherny的建议是让Claude自己去验证工作,形成反馈循环;按他的估计,最终结果质量可提升至2—3倍。
第二点要问的是:会影响哪里?
改动会牵涉到哪些用户、哪些数据、哪些权限。
比如让AI给汇报工具加个共享功能,就得先问明白:链接哪些人能打开,打开之后能看到什么内容。
第三点:出了错怎么撤回来?新功能能不能一键关掉,能不能退回到上一版。
动手之前先提交存档,每次改动尽量做小。先把撤回的路留好,再谈少审。
这三个问题之外,还有三个习惯值得养成。
头一个习惯,是换个「脑子」做复审。
写代码的那个会话,最容易对自己留下的bug视而不见。
可以开一个新会话,也可以让子智能体带着全新上下文来复审;本地的/code-review和/security-review命令同样能直接跑。
第二个习惯,给改动分档处理。
改文案、调样式这类,检查通过、实际效果确认之后再合并;碰到登录、付款、删除数据,关键逻辑就得人工细查,还要补上针对性测试。
一开始宁可严一点,等验证和回滚流程跑顺了,再逐步减少低风险改动的人工审查。
第三个习惯:三轮还不过,就换个思路。
AI改了三轮仍在原地打转,别急着催第四轮,先回头看看方案本身是不是就错了。
最要紧的一条:AI说「通过」,不等于你这边已经验收完毕。
代码是你让它写的,上线之后的结果,也得由你来负责。
Claude Code团队的目标,是让多数PR至多一人介入,同时把回滚率和事故率守住。
人的注意力,应该更多放在判断风险、确认检查够不够充分,以及出错之后怎么补救上。
人可以不读每一行代码,但每一次上线,都必须有人担起责任。
参考资料:
https://claude.dev/blog/solving-code-review-at-anthropic/?utm_source=chatgpt.com
https://www.anthropic.com/research/april-23-postmortem?utm_source=chatgpt.com
https://x.com/bcherny/status/2007179861115511237