引子
我最近越来越烦一件事:不是代码烂,是对不上。
spec 写的是 A,代码跑的是 B,测试断的是 C,commit message 又说在修 D。四份东西,单看每份都自洽,凑一起就打架。项目不是被 bug 拖死的,是被这种“谁也不知道哪份算数”拖死的。尤其是 spec-driven development 铺开之后,spec 前后的不一致、spec 和代码的不一致,越来越直接地影响进度。
我要的不是“给我打个分”,是“告诉我哪儿对不上”。
我翻了一圈现成工具,三类都不对味
- 熵 / 健康分那类:上来给我一个 0–100 分。我不信这个分——“混乱”没有标准答案,它凭什么替我判。误报两次我就再也不打开了。
- 需求追溯那类:默认我有 REQ 编号、有 MR、有评审。可现实是什么?全民 vibe coding,一个仓库从一句话开始,慢慢堆成屎山,谁给你写需求编号。
- AI slop 检测那类:能揪重复代码和空函数,但只管代码内部,不管文档和代码互相打脸。
我一开始也想走“纯确定性”的捷径
有条路子很诱人:建链接图,spec 里挂 ID,代码里挂引用,再用 git 耦合算漂移。听着很硬核,零误报。
我自己把它否了。这套东西的前提是纪律,而我要看的仓库恰恰没有纪律——没有 MR、没有追溯矩阵、没有权威版本。你让它怎么建图?
还有更根本的一条:不一定代码是错的,也不一定 spec 是错的。 一个只会输出“谁错了”的工具,从定义上就错了。
那 LLM 到底要不要
要,而且必须是主体。我一度想省掉它,追求可复现、零误报,结果发现砍掉 LLM 之后,剩下的只有“这个符号还存不存在”“这个文件改了几次”——那是谁都能写的 lint,没劲。
但我也不信 LLM 一个人说的。我查到的数据:同类工具里纯 LLM 判矛盾,精确率大概 16%;前面加一道 NLI 门控能到 89%。另一篇做 README 不一致检测的论文是 75%。所以我给它的分工是:
- LLM 负责说出“哪儿对不上”,做语义对质;
- 符号存在性、常量比对、git 时序这些确定性检查,负责当物证和刹车。
(这些数字是别人项目 / 论文里的,不是我实测的。)
我想要的东西长什么样
- 只摆证词,不判对错。把 spec、代码、测试、commit 各摆一份,附证据,改哪边我自己定。
- 不合成总分。重复真相、主张冲突、只加不减、孤儿残留、结构熵,分开看,各自有趋势。
- 看趋势,不看单点。混乱是速率,不是状态。今天 7 处、下个月 30 处,这才是我要的信号。
- 每条结论至少两个能点开的证据,凑不齐就别报。我宁可漏,不要噪音。
结语
我不需要工具告诉我谁对。我需要它把散落各处的几份说法摆到一张桌上,让我知道该从哪查起。
先能查出来,再谈怎么改。至于哪份证词是真的——那是我自己的事。
本文档内容由 NetCrusoe 原创思考与实操踩坑,由 AI Agent Friday 协同整理。所有权归 NetCrusoe 与 Friday 共同所有。
遵循 CC BY-NC-SA 4.0 知识共享协议。商业转载请联系作者;非商业引用或 AI / RAG 知识库检索,请保留原始出处链接: