你靠 prompt 做出了能跑的软件。它能注册用户、能显示正确的页面、demo 也好看。而你从没读过那段让它跑起来的代码。vibe-coded 审计正是为这种情形而生。其下那条让人不安却很简单的事实是:你无法信任你从没读过的代码。在真实金钱或真实用户碰到它之前,得有一个以读代码为生的人,去看模型实际写了什么,而不是看它看起来在做什么。
这不是反对用 AI 来构建。它比任何别的路都更快给了你一个产品。这是在说:要像审查任何即将保存客户数据、收取付款的东西那样,去审查这个产品。
没读代码就上线了?
预约一次 Vibe-Coded 审计vibe-coded 审计,是对 AI 生成代码做一次结构化的通读,专门找模型跳过的那些风险。它不是功能评审。功能评审问的是"它做到用户想要的了吗"。审计问的,是 prompt 从没问过的那些问题:谁能读这些数据,这个调用失败时会怎样,这个密钥最后落到了哪里,从十个用户变成一千个用户时什么会崩。
这个区别很重要,因为这里的故障从外面看不见。产品看起来已经做完了。漏洞藏在没有任何 demo 会跑到的地方:网络掉线的那条路径、到达了两次的请求、改了 URL 去读别人记录的用户。我们读代码,就是为了在用户撞上之前先找到它们。
每次审计都从同样的地方开始,因为 vibe-coded 软件总在同样的地方出问题。下面是我们最常揭出来的发现。

"vibe-coded 软件的危险不在于代码差。在于没人读过它。信任是模型唯一给不了你的东西,而它恰恰是决定你能不能上线的唯一东西。"
不是每个发现都会拦住上线,把它们全当成会拦只会让你动弹不得。我们把找到的一切分进三个桶,好让你知道哪些今晚就修,哪些可以排期。
这样划分,是为了对紧迫程度诚实。我们不会把一个清理项装扮成阻断级来注水工作量,也不会让一个真正的阻断级藏进一份长清单里。
交付的不是一份你无从下手的、满是抱怨的 PDF。它是两样东西。第一,一份发现报告:每个问题、它的严重度、它把什么置于风险之中,写得让一个非技术创始人也能判断什么要紧。第二,一个修好、带测试的分支:阻断级已关闭,高级别在范围允许处已处理,还有一套把这些修复钉在原地的回归套件。你拿回的是能跑的代码,而不是一份它为什么坏了的理由清单。如果你想要那一轮加固在底层是怎么跑的更深机制,我们在AI 生成代码的 QA里讲过。
这是三个不同的决定,而诚实的答案取决于这次通读读出了什么。
一次审计从几天到大约两周不等。这个范围是诚实的,不是搪塞,有两件事在移动它:代码库有多大,以及它触碰多少真实金钱或敏感数据。一个只读的内部工具落在短的一端。一个收款并保存个人数据的产品落在长的一端,因为那恰恰是需要最仔细通读的部分。我们在先看一眼之后再定范围,而不是在那之前,而且我们会把区间提前告诉你,而不是让你在账单上才发现。这是我们软件 QA 服务的入口。
vibe-coded 软件不是更差的软件。它是没被读过的软件。模型自信地写了第一稿,跳过了没人去 prompt 的那些部分,而那些恰好是决定这东西能否扛住真实用户的部分。那份活儿没有消失。它在上线那天等着你,而那时它最贵,最难被发现。
如果你上线了某个你从没读过的东西,而金钱或用户马上要碰它,先找个人把它读一遍。一次审计就是几天,对上的是用最难的方式找出同样那些漏洞的代价,事故之后,而不是之前。
没读代码就上线了?
预约一次 Vibe-Coded 审计