预提交预测

让 review 先不看代码、只凭设计文档预测最可能出错的地方,再带着预测去审代码——把”先给预测再看答案能大幅提升校准精度”的认知科学发现工程化的代码审查设计。

简介

预提交预测(pre-commit prediction)是 claude-ship 中 review agent 的核心设计,也是作者认为整套 loop 工程体系里”最满意的一个设计”。它把常规的”读代码→找问题”审查流程反转为”先预测→再验证”:review agent 先不读代码,只读 design.md 和 implementation.md,基于设计列出 3-5 个最可能的缺陷区域(如”错误处理可能不全""并发场景可能有竞争”),然后带着这些预测去审代码,最后同时记录预测命中的问题和预测未覆盖的问题。

它的理论依据是认知科学的一个经典发现:如果你先看答案再给出推理,会高估自己的推理能力;反过来,先给出预测再看答案,校准精度大幅提升。预提交预测就是把这条发现工程化——它的价值不在于能多抓几个 bug,而在于创造了一个可度量的校准回路:每次 review 结束都能对比预测命中了多少、漏了多少,漏掉的问题类型就是系统的认知盲区,而盲区暴露的那一刻就是下一次进化的入口。

关键信息

核心特性

三步工作流程

  1. 先不读代码:只读 design.md 和 implementation.md,基于设计列出 3-5 个最可能的缺陷区域。
  2. 带着预测去审代码:验证预测是否成立。
  3. 双向记录:既记录预测命中的问题,也记录预测未覆盖的问题——后者更重要,说明预判有盲区。

预测起点是 memory,不是直觉

预提交预测的起点不是 reviewer 的临场直觉,而是 memory。每完成一个 feature,retro agent 把 hard-won 的教训存入 memory;下一个 feature 的 review 启动时,先从 memory 检索相关的历史事故模式作为预测的候选起点。这意味着系统的审查能力会随使用次数增长而增长——在 claude-ship 的实测里,六个月后 memory 存了 7 条事故模式,预测命中率从五成提到七成多,且不靠模型升级(“Opus 还是那个 Opus”)。

校准回路:盲区即进化入口

预提交预测真正的工程价值是把审查变成一个可度量的校准回路。因为每次都先落下预测再对照结果,就能量化”命中/漏掉”,漏掉的问题类型直接暴露系统的认知盲区。这个盲区随后可以被写回 memory,成为下一轮预测的优先关注区,形成”校准积累”这一维度的复利。

与事前验尸的同源关系

预提交预测与 事前验尸(pre-mortem)同源:两者都是”先假设/预测,再验证”以对抗过度乐观和事后偏见。区别在于事前验尸假设”项目已经失败了,为什么”用于项目启动前的风险管理,而预提交预测假设”这段代码最可能在哪出错”用于代码审查前的缺陷预判;预提交预测还额外引入了可度量的命中率校准回路和 memory 驱动的复利机制。

不同素材中的观点

  • 2026-07-10-juejin-loop-engineering-claude-ship:作者称这是整套 loop 体系里最满意的设计,也是体系的”灵魂”——因为它创造了可度量的校准回路,而非因为它能抓多少 bug。文章强调这套机制之所以有效,前提是 memory 准入规则足够严格(Non-Googleable / Codebase-Specific / Hard-Won 三条铁律 + 5-8 条硬上限):存 100 条”注意边界条件”级别的废话,下次检索就是噪音,命中率反而下降。“少而精的 memory 才是进化的燃料,多而杂的 memory 是进化的阻力。“

实用信息

落地要点

  • 先落预测再看代码:审查者(无论是人还是 review agent)必须在阅读实现前写下预测,否则校准精度会因”先看答案”而虚高。
  • 记录漏掉的比记录命中的更重要:漏掉的问题类型是系统盲区,应被写回 memory 或 Skill 供下次预测优先关注。
  • 给预测喂高信号 memory:预测质量取决于 memory 质量,必须用严格准入规则保证 memory 是高信号历史事故模式而非通识废话。

相关页面