TDD 网:Popper 机械化
vibe-linter 的原始触发案例。AI 会"忘记"先写测试,或者写出创建时就能通过的重言式测试。把 TDD 编码成一串锁:
- 节点 T:运行新测试,且必须是红的才能发放
T密钥——"发放令牌前必须先见红 = 强制的可证伪性;Popper 机械化。" 这杀死了"写完即绿"的测试。 - 编写源代码(W)需要
T密钥。 - 节点 R:在 W 之后运行测试;循环直到变绿才发放
R密钥。 commit(C)需要R密钥。
对话过程中暴露出两个漏洞:红必须是正确的红(目标行为缺失,而不是 assert False 或语法错误);而且模型可以直接改测试让它变绿 → 因此 R 的"绿"= 三项合取:新测试通过 ∧ 测试文件哈希与 T 令牌匹配 ∧ 棘轮保持不变(没有一个曾经绿过的测试又变红)。
循环不是免费的——终止需要一个证明:每一轮迭代都要消耗一枚燃料令牌(线性类型);耗尽 = 升级到人工队列。两种令牌类型:持久型(完成证明)+ 线性型(循环燃料)。这套机制的副产品——一条证书链(红证 → 哈希冻结 → 绿证 → 提交证)——比这套纪律本身更有价值:它把人工审查从"重新推导信任"变成了"核对证书"。先例是 CI 的分支保护 / 必需状态检查,但把它从合并时提前移到了创建时。
上级:vibe-linter · 数学主页:lcf-for-labor