AI 写代码之后,人类应该审计划,而不是盯着代码海洋找针

摘要:Builder.io 提出的 /visual-plan 和 /visual-recap 把 AI 编程协作里的关键矛盾说透了:当代码生成越来越像编译器输出,人类评审的主战场就不该继续停留在逐行 diff,而应该前移到计划、接口、数据模型、交互状态和风险假设。

AI 编程的审查对象正在从代码转向计划

Builder.io 的 Steve Sewell 最近提了一个非常准确的判断:AI 写代码之后,人类应该审计划,不应该把主要精力继续放在逐行审代码上。

这个类比很有杀伤力。我们写 C 语言的时候,不会逐行检查编译器生成的汇编;写 TypeScript 的时候,也不会每天审一遍 Babel、SWC 或 V8 最终生成了什么机器指令。人类真正关心的是源代码表达的意图、类型边界、接口契约和运行结果。只要编译器足够可信,底层输出就不再是主要审查对象。

AI 编程正在把软件开发带到类似位置。

不是说 AI 生成的代码已经像编译器一样可靠,也不是说工程师可以彻底不看代码。而是说,随着 Claude Code、Codex、Cursor、Builder.io 这类工具越来越能一次性修改大量文件,传统的逐行 diff 审查正在失去性价比。

问题不再是“这 800 行代码每一行有没有写对”,而是:

  • 它要解决的问题是不是对的;
  • 它打算改哪些边界;
  • 它会不会破坏现有数据结构;
  • 它对用户路径、权限、API、状态机和异常分支有什么影响;
  • 它有哪些还没被验证的假设。

这些东西如果计划阶段说不清,等代码生成完再审,已经太晚。

Markdown 计划的问题:信息密度太高,但可审性太差

Claude Code 的 Plan Mode 很好用,但它有一个天然限制:计划通常是一大坨 Markdown。

对模型来说,这没问题。Markdown 是便宜、通用、可复制的文本格式。但对人来说,尤其是对产品经理、设计师、架构师和安全负责人来说,一份长长的终端计划很难审。

你要在十几段文字里脑补页面结构,在项目文件列表里推断模块边界,在几行接口描述中想象前后端契约,还要判断数据库 schema 会不会影响历史数据。这个过程本质上是在让人类把文本反编译成系统图。

这很荒诞。

AI 已经可以帮我们生成代码,却还让人类在终端里读长篇 Markdown,用大脑手工渲染线框图、调用链和数据模型。这不是审查,这是认知苦役。

Builder.io/visual-plan 技能正是针对这个痛点:它把普通实现计划转换成 MDX 文档,用组件呈现架构图、线框图、原型、文件地图、API 规格、Schema 变更、代码注释和待确认问题。根据 BuilderIO/skills 的说明,它的目标不是“让计划更好看”,而是把计划变成可以扫描、评论、批准的交互式审查界面,并把计划本身作为代码修改前的审批门。

这一步很关键。因为 AI 编程时代真正稀缺的不是代码,而是可共同理解的意图

审计划,其实是在审“契约”

传统代码审查默认一个前提:人写代码,人审代码。

但 AI Agent 介入后,这个前提变了。代码不再是人类思维的直接痕迹,而更像是模型根据目标、上下文和工具调用生成的一种中间产物。它可能很长、很快、很像样,也可能在某些边界上犯非常隐蔽的错误。

如果人类还把注意力放在“这一行有没有写得优雅”“这个变量名是不是好看”上,就会错过更重要的问题。

AI 生成代码前的计划,才是真正值得审的契约:

第一,审目标。它是否理解了用户真实需求?有没有把一个产品问题误解成纯技术问题?有没有过度实现?

第二,审边界。它准备改哪些文件、哪些模块、哪些接口?有没有跨过不该跨的所有权边界?

第三,审结构。它选择的数据模型、组件层级、调用路径、权限校验和错误处理是否成立?

第四,审风险。哪些地方需要迁移?哪些地方需要灰度?哪些地方需要回滚?哪些假设需要人工确认?

第五,审验证。它打算如何证明这次修改真的有效?是单元测试、端到端测试、截图验证、接口契约测试,还是人工验收清单?

这些问题在计划阶段就能被发现。一旦方向错了,越早拦住越便宜。

这就是“审计划,不审代码”的真正含义:不是放弃质量控制,而是把质量控制前移到意图、架构和验证路径。

为什么可视化很重要

有些工程师会本能地反感“可视化计划”。他们会觉得,代码才是真的,图只是包装。

这在手写代码时代有一定道理。但在 AI 编程时代,可视化不是装饰,而是压缩认知负担的工具。

线框图能让产品经理快速判断用户路径是否正确;API 结构图能让后端和前端确认契约;Schema 图能让数据负责人看到字段、关系和迁移风险;文件地图能让工程负责人判断修改是否越界;状态图能暴露异常分支和空状态;开放问题列表能明确哪些地方不是模型自己该拍脑袋决定的。

换句话说,可视化计划把“只有写代码的人才看得懂”的审查,变成了跨角色都能参与的协作。

这也正是 Builder.io 这个思路有价值的地方。它不是把 AI 编程继续封闭在工程师终端里,而是把计划变成一个产品、设计、工程、安全都能读懂的共同界面。

在过去,产品经理看需求文档,设计师看 Figma,工程师看代码,QA 看测试用例。AI Agent 进入之后,如果所有变化都被埋在 diff 里,团队协作会变得更割裂。

/visual-plan 的价值,是把 AI 动手之前的“准备怎么改”变成一个共同对象。

代码完成之后,还需要 /visual-recap

只审计划还不够。因为 AI 计划写得再好,执行过程中也可能出现偏差。

BuilderIO/skills 里还有一个对应的 /visual-recap:把 branch、commit 或 PR diff 转换成交互式变更总结,包括注释 diff、结构图、API/Schema 摘要、文件地图、UI 状态总结和评审重点。

这件事同样重要。

传统 PR 描述往往有两个极端:要么作者随手写一句“fix bug”,要么让 AI 生成一大段泛泛而谈的总结。真正的评审者还是要钻进 diff 里,自己拼出这次变化到底影响了什么。

可视化 recap 的意义,是把代码完成后的变化重新翻译成人类能快速理解的系统语言:

  • 页面改了哪些状态;
  • 接口新增了哪些字段;
  • 数据库关系发生了什么变化;
  • 哪些文件是核心修改,哪些只是联动;
  • 哪些风险需要重点复核;
  • 哪些测试已经跑过,哪些还没覆盖。

Visual Recap 将代码差异翻译成跨角色语言

对工程师来说,这能节省进入上下文的时间。对产品经理和设计师来说,这意味着他们不用读代码 diff,也能理解 AI 到底改了什么。对组织来说,这可能是 AI 编程从个人效率工具走向团队工作流的关键一步。

但“信任 AI”不能等于“盲信 AI”

编译器类比很准,但也要小心。

我们信任编译器,不是因为编译器神圣不可错,而是因为它经过了几十年的形式化约束、测试、社区验证和生产事故洗礼。AI Agent 还远没有到这个成熟度。

所以今天说“像信任编译器一样信任 AI”,更准确的表达应该是:把 AI 的输出当作可以被流水线验证的生成物,而不是当作必须由人肉逐行理解的手工作品。

这中间需要很多工程条件:

  • 计划必须足够具体,不能只有漂亮口号;
  • Agent 必须说明会改哪些文件和为什么改;
  • 权限、数据迁移、安全边界不能让模型自由发挥;
  • 测试、类型检查、lint、截图验证和运行时检查必须自动化;
  • 重要变更必须有回滚路径;
  • 执行结果必须和原计划做对照。

也就是说,人类不是退出审查,而是从“代码校对员”升级成“计划审判者”和“验证体系设计者”。

这对工程师的要求反而更高。你要更懂系统边界,更懂架构权衡,更懂业务语义,更懂哪些错误会在真实世界里变成事故。

AI 编程的下一层抽象

软件工程一直在向更高层抽象迁移。

汇编之上是 C,C 之上是高级语言,高级语言之上是框架,框架之上是云服务和平台工程。每一次迁移,都会把一部分底层细节交给工具,把人类注意力推向更接近意图的层面。

AI 编程很可能是下一层抽象:从“人写代码”迁移到“人定义计划、边界和验证,机器生成实现”。

如果这个判断成立,那么终端里的大段 Markdown 计划只是过渡形态。真正适合团队协作的计划,应该像产品原型、架构图和技术设计文档的混合体:可视、可评论、可版本化、可执行、可追溯。

/visual-plan/visual-recap 不一定就是最终形态,但方向是对的。

它们提醒我们:AI 写代码之后,软件团队真正要建设的不是“更会看 AI diff 的人”,而是“更会审 AI 计划的流程”。

结语:别在代码海洋里找针

AI 生成代码的速度会继续变快,单次修改的文件数量会继续增加,diff 会越来越长。继续用传统方式逐行审查每一次 AI 产出,迟早会把团队拖进认知泥潭。

更合理的方向,是把人类注意力放在代码生成之前和之后的两个关键界面:

生成之前,看计划是否正确。

生成之后,看 recap 是否忠实反映了变化,并用自动化验证证明它没有破坏系统。

这不是降低工程标准,而是承认软件开发的审查对象变了。

当 AI 负责写更多代码,人类就应该负责定义更清楚的意图、更严格的边界和更可靠的验证。

真正的分工不是“AI 写,人类看它写得累不累”,而是:

人类审计划,机器写代码,流水线做验证,团队看影响。

这可能就是 AI 编程从玩具走向生产系统的分水岭。

参考资料

[1] BuilderIO/skills, “/visual-plan README”, https://github.com/BuilderIO/skills/blob/main/skills/visual-plan/README.md

[2] BuilderIO/skills, “Skills for coding agents”, https://github.com/BuilderIO/skills

[3] Steve Sewell, “Introducing /visual-plan - rich plans for Claude Code + Codex”, YouTube, 2026-06, https://www.youtube.com/watch?v=NE0aBuQF0HA

[4] Builder.io, “Code Review in the AI Age”, https://www.builder.io/blog/code-review-ai

分享到