别再轻易相信 AI 说的「已经修复完成」了

来自 Claude Code 团队的一次分享提醒我:AI Coding 最大的瓶颈,已经不是写代码,而是验证。

现在用 AI 写代码的人,应该都遇到过一个很熟悉的场景。

你把报错贴给 AI,它很快分析出原因,然后开始改代码。几分钟后,它非常自信地告诉你:“问题已经修复完成。”

你松了一口气,重新运行项目。

结果报错还在。

更难受的是,它不是完全没做事。它确实改了文件,确实解释了原因,甚至有时候逻辑看起来也没什么问题。但项目就是没跑起来。

于是你只能把新的报错继续贴回去。它又很快承认:“你说得对,我刚才漏掉了一个问题。”然后继续修改,继续总结,继续说已经修复完成。

这个过程我经历过很多次。

一开始我会很生气,觉得 Claude Code 又开始自信胡说。明明没修好,为什么敢说已经完成?明明没有跑通,为什么总结得像真的交付了一样?

后来我慢慢发现,这件事可能不只是 Claude Code 的问题。

也可能是我一直没有给它定义清楚:什么叫“修复完成”。

以前我对 AI Coding 的期待很简单。我把问题交给 Claude Code,它分析、修改、总结,然后告诉我修好了。整个流程看起来很自然,甚至很高效。

但这里面少了一个非常关键的环节。

谁来证明它真的修好了?

真正让我意识到这个问题的重要性,是我后来看到 Claude 官方的一篇分享:《Running an AI-native engineering org》。

这篇分享来自 Claude Code 团队负责人 Fiona Fung。她讲的不是某个提示词技巧,也不是怎么让 AI 写代码更快,而是当 agentic coding 变成团队默认工作方式后,整个工程流程发生了什么变化。

里面有一个判断让我印象很深。

当 AI Coding 真的跑起来以后,写代码、写测试、重构这些事情,反而不再是最慢的部分。新的瓶颈开始变成 verification、code review 和 security,也就是验证、代码审查和安全。

我看到这里的时候,突然有一种被点醒的感觉。

因为这不只是大团队的问题,也是我这种普通开发者每天都会遇到的问题。

AI 写代码越来越快以后,真正危险的不是它不会写,而是它写得太快、太自信、太像完成了。

如果你没有验证流程,就很容易把“它说完成了”当成“项目真的完成了”。

以前我一直以为,Claude Code 最大的问题是偶尔犯错。后来我发现,更大的问题是它犯错的时候,也能把交付总结写得很完整。

它会告诉你:

已经修复了核心问题。

已经优化了异常处理。

已经补充了兼容逻辑。

现在应该可以正常运行。

这些话看起来很让人安心,但它们都不是证据。它们只是总结。

工程里真正有价值的,不是“应该可以”,而是“我运行了什么,结果是什么”。

我以前没有认真想过这个问题。因为在人写代码的时候,我们天然知道自己要跑一下项目,看看页面,检查日志,跑一下测试。

可到了 AI 这里,我会下意识把这部分也交给它。

问题是,AI 的“完成”很多时候不是工程意义上的完成,而是推理意义上的完成。

它看到代码逻辑变顺了,会觉得完成了。它修掉了一个明显错误,会觉得完成了。它根据上下文推断应该没问题,也会觉得完成了。

但真实项目不是这样判断的。

真实项目只认结果。

能不能启动?类型有没有报错?Lint 有没有过?测试有没有跑?关键路径有没有验证?有没有改到无关文件?有没有留下新的风险?

这些问题没有回答之前,“已经修复完成”其实只是一个很乐观的总结。

这也是我后来对 Claude Code 使用方式最大的变化。

我不再只问它:“修好了吗?”

我开始问它:“你怎么证明它修好了?”

这句话看起来只是换了一个问法,但效果完全不一样。

以前它交付的是结论。

现在我要求它交付证据。

有一次我让 Claude Code 修一个前端页面的异常显示问题。按照以前的流程,它可能会改完组件,然后告诉我:“已修复空状态显示逻辑。”

如果是以前,我大概率会先相信它,然后自己重新启动项目,打开页面,发现还有问题,再把新截图和新报错继续丢回去。

但这一次,我在交付前加了一个要求:

改完之后,不要只告诉我修好了。你必须说明改了哪些文件,为什么改这些地方,运行了什么验证命令,命令结果是什么,还有哪些部分没有验证。

结果它的回答明显变得不一样。

它不再只是说“修好了”,而是会列出修改文件、验证命令和运行结果。如果某个测试没有跑,它也必须写出来。比如:“当前未执行端到端测试,因为本地缺少浏览器依赖。”

这句话听起来没有“全部验证通过”那么漂亮,但对我反而更有价值。

因为我终于知道,哪里是真的验证过,哪里只是它觉得应该没问题。

这就是前后最大的区别。

以前,我看的是它的总结。

现在,我看的是它的证据。

以前,它说“已经修复完成”,我只能选择信或者不信。

现在,它说“已经修复完成”,我会继续看下面有没有验证命令、有没有运行结果、有没有没验证的部分。

以前,我经常是在重新运行项目后才发现问题没解决。

现在,我能在交付总结里提前发现:它到底跑没跑测试,验证了哪些路径,还有哪些风险需要我自己看。

这并不能让 Claude Code 永远不犯错。

但它减少了一种非常常见的返工:你以为任务结束了,结果只是 AI 以为任务结束了。

我后来开始在自己的 Claude Code 配置里,把“交付前验证”放成一条很重要的规则。

不是为了显得专业,而是因为我真的被“已经修复完成”坑过太多次。

我现在更希望它按这样的格式交付。

AI Coding 交付验证清单

交付前必须说明:

1. 修改了哪些文件?
2. 每个文件为什么要改?
3. 运行了哪些验证命令?
4. 每条命令的结果是什么?
5. 有没有没跑的测试?
6. 有没有无法验证的部分?
7. 有没有潜在风险?
8. 如果我要人工复查,应该先看哪里?

禁止在没有实际运行验证的情况下写“验证通过”。

没有验证,就写“未验证”。

验证失败,就保留失败信息,不要包装成完成。

只允许基于实际命令结果、日志、截图、测试输出做结论。

这段东西很简单,但对我很有用。

因为它把“完成”从一句主观判断,变成了一组可以检查的证据。

以前 Claude Code 说“已完成”,我最关心的是它的语气够不够确定。现在它说“已完成”,我会先看有没有证据。

如果没有验证命令,没有运行结果,没有未验证说明,那这就不是一次真正完整的交付。

它可能完成了修改。

但还没有完成验证。

这两件事不能混在一起。

我以前最怕看到 AI 报错。现在我反而更怕它不报错,但把没有验证过的东西包装成完成。

这也是 AI Coding 里很容易被忽略的一点:AI 很擅长生成“看起来完成”的东西。

看起来修好了。

看起来逻辑通了。

看起来没有问题。

但工程里最怕的就是“看起来”。

一个功能有没有完成,不应该由 AI 的语气决定,而应该由验证证据决定。

后来我还发现,验证这件事不能只靠临时提醒。

提醒当然有用,但不稳定。你今天记得说“修完要验证”,明天可能就忘了。Claude Code 今天记得跑测试,后天可能又只给你一个漂亮总结。

所以我现在更倾向于把验证沉淀成系统。

比如写进全局规则。

比如做成专门的 verification workflow。

比如在改动超过几个文件后强制做 review checklist。

比如在任务结束时检查它有没有给出验证证据。

这也是我对 Claude Code 的一个新理解:它不是一个你随便喊一句就能稳定交付的神奇程序员,它更像一个能力很强、速度很快,但需要流程约束的新同事。

你不能只问它有没有做完。

你要给它定义什么叫做完。

这件事放在 AI Coding 里尤其重要。因为 AI 的能力越强,交付假象就越真实。

以前一个工具不靠谱,你很容易看出来。它写不出代码,或者一眼就错。

但现在不一样了。

Claude Code 经常能写出结构完整、解释清楚、看起来很专业的代码。它甚至会主动总结改动、补充说明、提醒你下一步做什么。

这当然是进步。

但也带来了新的问题:你更容易被它的“完成感”说服。

我现在越来越觉得,AI Coding 的关键不是完全不信任 AI,而是信任但检验。

信任它可以帮我快速定位问题、修改代码、补测试、整理思路。

但我不能把最终判断也完全交给它。

尤其是在它说“已经修复完成”的时候,我反而要多问一句:

证据呢?

这句话听起来有点冷,但它非常重要。

因为 AI 写代码越快,人越不能只做旁观者。我们要从“盯着 AI 写代码”,转向“设计 AI 的交付标准”。

这也是我从 Fiona Fung 那次分享里得到的最大启发。

AI-native 不是把原来的流程里塞一个 AI,然后继续照旧工作。真正的变化是,当 AI 改变了代码生产速度以后,我们也必须重新设计验证、审查和决策方式。

对大团队来说,这可能意味着重写工程规范。

对我这种个人开发者来说,它可以从一个很小的动作开始:

不要再问 AI 修好了没有。

问它怎么证明修好了。

如果它跑了测试,就让它写清楚测试结果。

如果它没有跑,就让它明确写“未验证”。

如果它只验证了部分路径,就让它说明剩余风险。

如果它改了很多文件,就让它告诉你哪些是核心改动,哪些需要人工复查。

这不是为了折磨 AI。

这是为了保护项目,也是在保护自己。

以前我看到 Claude Code 说“已经修复完成”,会下意识觉得任务结束了。现在不会了。

现在我看到这句话,反而会把它当成一个新的开始。

好,你说修好了。

那你怎么证明?

欢迎来到我的成长实验。

AI 不会替你成长,但它能让成长更快发生。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐