SeedlingPlanted November 9, 20264 min read

Code review 流水线:一次改动从作者机器走到用户手里

这篇按 Claude Code 团队的文章,把一次改动从作者机器走到用户手里要过的九道关画成一张流水线图,其中只有按风险审批这一步由人决定。

这张图按 Claude Code 团队的文章《How the Claude Code team does code review》整理,主干来自原文的配图「The life of a change」。

CODE REVIEW 干两件事

  1. 改动上线之前,review 要找出问题并把它们修掉。
  2. 与此同时,review 也让整个团队对代码库形成共享的上下文和理解。

REVIEW 要问三件事

  1. 这次改动解决了它要解决的问题吗?
  2. 这次改动和现有系统合得来吗?
  3. 这次改动会不会弄坏别的地方?

原文里,这三个问题是每个 PR 上的 Claude review 读 diff 时要问的。

“did a human read the code?” is an imprecise proxy for “what could go wrong with this change, and which check—automated or human—is the right one to catch it?”

换句话说,「有没有人读过代码」只是一个不够精确的替代指标。真正该问的是这次改动可能出什么问题,以及哪一道检查(自动的或人工的)最适合把它拦下来。

— How the Claude Code team does code review

一次改动的一生

九个阶段里,大部分由机器自动完成;只有按风险审批这一步由人来决定。

PR 前Before the PR

01工作先自验

Claude 先跑测试、构建和 linter;接着由另一个 agent 在全新的上下文里把 diff 审一遍。

每个 PROn every PR

02必过 CI

CI 会跑 lint、类型检查、多平台测试、构建和打包。只要有一项变红,这个 PR 就不能合并。

03Claude code review

几个 agent 同时找 bug,然后一组验证 agent 对每条发现投票,留下来的发现按严重程度排序。

04安全审查

安全审查是单独跑的一轮。bug review 和安全审查里只要还有没关闭的发现,PR 就不能合并。

05按风险审批
唯一由人决定的一步

一个分类器读完改动以后定下风险档,风险档再决定需要几个人批准。风险档由改动本身决定,跟作者是谁无关;而且 agent 的批准从来不能顶替人的批准。

0人低风险文档、文案、flag 后面的增量改动
1人中风险普通产品改动和敏感区域
2人高风险风险最高的代码和少数指定路径

另外,有些路径无论落在哪一档都必须有人批,比如负责人列为敏感的代码和所有 CI workflow 文件。

合并Merging

06Merge queue

merge queue 把改动套到最新的 main 上,再把所有检查跑一遍,因此两个各自通过的 PR 不会合起来弄坏 main。

合并之后After the merge

07藏在 feature flag 后面,内部先用

新行为先由 Anthropic 员工用起来,然后才推给所有用户。

08渐进发布

公开版本先发到 latest 渠道,stable 渠道随后才跟上。

09盯着,往前修或者回滚

作者和 on-call 一起盯着线上;出了问题时 flag 能很快关掉,坏掉的构建也会被 revert。

自动完成 由人决定,力度随风险变化 补救

来源:Addy Osmani、Morgan Westlee Lunt、Qing Wang,How the Claude Code team does code review,claude.dev Blog,2026 年 10 月 15 日。

阶段顺序按原文配图「The life of a change」排列;原文正文分层介绍时,把 CI 放在了 AI review 和安全审查之后。