Anthropic 的经验表明,AI 大量生成代码后,质量保障的关键是重新设计验证、审查、审批与回滚流程,把人的判断力集中到高风险变更上。
产量上升、回滚下降,来自整套工程体系。 据视频引用的工程博客,Claude Code 约 90% 的代码由 Claude 编写;6—9 月,其独立仓库合并的 PR 数量增长至原来的两倍以上,需要回滚的 PR 占比下降 40% 以上。另一个口径是 Anthropic 主仓库每天落地的变更从 5 月约 2,500 处增至 9 月 30,000 处以上,不能与 Claude Code 独立仓库的数据混用。
提交前就提供可运行的验证方式。 给 Agent 布置任务时,同时提供测试、构建命令或可比对的截图,要求展示实际运行结果。Claude Code 作者 Boris Cherny 估计,让 Agent 能够自我验证,可使最终结果改善 2—3 倍;提交前再用全新上下文的 Subagent 阅读 Diff,减少编写者为自身方案辩护的问题。
AI 审查先找问题,再验证问题。 PR 打开后,Claude 结合整个仓库检查:是否解决声称的问题、是否符合系统设计、是否破坏其他部分。多个 Agent 并行找 Bug,另一组 Agent 投票验证候选发现,达到门槛才发布评论;过滤纯风格和清理建议,并区分 Important、Nit、Pre-Existing,避免把既有问题归责于当前作者。上线初期,收到实质审查意见的 PR 比例从 16% 增至 54%,但这只是评论覆盖率,不能等同于缺陷检出率。
把团队的审查标准写成文件。 CLAUDE.md 说明项目背景、技术栈、约定、目标与不做的事项,保持简短,细节通过链接补充;REVIEW.md 由代码负责人定义具体模块的失败标准。规则应描述“出错是什么样”、限制次要意见数量、列明跳过路径,并要求每条发现提供文件和行号。例如,文档的失败是内容失实,配置的失败可能是路由错误。
独立安全审查和确定性检查构成基础。 未关闭的安全发现会阻止合并,关闭时必须说明理由,包括误报。Lint、类型检查、全平台测试和构建独立运行,一个 CLI 仓库的 PR 在人审前可能已通过几十项检查。PR 模板应明确回答:“这个改动怎么测的?”“出了事怎么撤回?” AI 可以代填,人负责确认。
人工审批按变更风险分级。 低风险变更,如文档、文案和功能开关后的内部功能,通过自动审查与安全检查后,可以免额外人工批准;中风险变更需要 1 人批准,涵盖普通产品变更及缓存、自动更新器、系统提示词等敏感区域;高风险敏感路径需要 2 人批准。只有可信名单作者能走简化流程,Agent 批准不能抵扣人工名额,新提交会使此前批准失效。
合并和发布继续设防,并保留快速撤回能力。 合并队列把变更与最新主干组合,重新运行全部检查,防止两个分别通过的 PR 合起来破坏主干。新功能先放在 feature flag 后供内部使用,公开发布先走 latest,再进入 stable;出问题可直接关闭 flag,并通过值班和事故复盘定位失守环节。团队坦言,当时尚未建立依据事故率自动收紧审批条件的熔断机制。
AI 审查循环必须有终止条件。 一个 CLI PR 曾经历一夜 50 多轮审查和修复;通过 git blame 发现,被反复标记的代码约 59% 在第一轮审查时就已存在。改进包括:最多三轮,仍不收敛就重新考虑方案;前几轮后只审新增 Diff;按 Bug 类别一次修完所有实例;已发布的发现去重。调整后,一轮通过率从 65% 升至 78%,需要五轮以上的比例从 8.9% 降至 1.5%,平均通过轮数从 2.08 降至 1.32。
把事故记录变成审查器的回归评估集。 收集引发事故的 PR、修复和回滚记录,由熟悉代码的工程师确认 Bug 及其位置,形成每天运行的测试样本。提示词、工具或模型变更都用同一集合评估,指标同时关注 Bug 召回率、错误评论数、修复轮数、人工审批时间、回滚与事故,让复盘持续改善系统。
AI 作者会放大误报成本。 人可能直接忽略无用建议,Agent 却可能照做,增加提交、审查轮次和 token 消耗,甚至引入有害修改。团队按作者对评论的反应分类统计,也用已知干净的 PR 测量误报;优化优先级是先抓真 Bug,再减少审查轮数,不能只追求评论更多。
人的职责转向方向、风险、证据和责任。 人仍需决定功能是否值得做,审查账单、自动更新器、CI 工作流等高风险代码,以及会被广泛沿用的架构决策;批准前阅读测试输出、执行命令、截图和审查证据,理解检查可能漏掉什么。合并者对结果负责;学习代码库则可以按需让 Claude 生成模块讲解或可视化,把注意力留给当前任务和架构判断。