从一次真实交付看:AI 撞见错误方案时,为何停工比偷偷改设计更优
TL;DR
- 本文基于一次 8 条需求(N1–N8)的真实交付,AI 在 N1 跑测试就发现:方案开出的"stub
_remote_asset_sha"药剂只救活 9 个红测试里的 2 个,其余 7 个在store_pull → pull.select_as_asset上游就已失败。 - 根因是 host-dependent 误判:2026-10-28 的"302 passed"只在
darwin-x64验证,换机器即红。 - 结论:把"规范本身错误"设为唯一能触发停工的合法例外,动作固定为
停止 → 清理 → 汇报,绝不就地修补规范;并把判据、动作、汇报格式写进提示词。 - 配套决策矩阵与流程护栏可直接落地到任何 AI 实施任务。
背景与问题
规范只描述"正常路径"。一旦执行端发现正常路径走不通,就进入真空:规范没说,指南没提,AI 只能临场发挥。临场发挥的默认倾向几乎总是两种之一——继续做(进度好看)或者就地修(显得能干),两种都会把一个设计层缺陷伪装成一个实施层小问题。
真实案例:8 条需求的交付任务,做到 N1 时先跑测试复核现状,发现 9 个测试红。追查结论:
- 9 个测试是 host-dependent,非 network-dependent。2026-10-28 那轮"302 passed"在
darwin-x64验证,换机即红。 - 方案药方"stub
_remote_asset_sha"只能救活 2/9;其余 7 个在store_pull → pull.select_as_asset失败,位置在_remote_asset_sha上游,按方案实现等于在缺陷主体上空转。
注意:停工时没有任何代码变更,唯一动作是清理空 worktree、把主仓库恢复到干净同步状态。
为什么停,而不是悄悄改对
- 非局部问题。 N2–N8 来自文档评审,从未真正执行验证。N3 护栏 #2 依赖
store_pull真实控制流(未跑过);N2 的"needs core"规则从没在真实manifest.json上跑过,其误报是断言而非测量。 - 爆炸半径扩散。 改动牵动每个产品的
release.yml,8 个 PR 自动合入两个共享生产仓库,依据是一套从未验证的规范。 - 规则本就写明:"If the design is wrong or cannot satisfy the task, stop and flag it — do not patch the design yourself inside an implementation task."
叠加后不再是"我觉得该停",而是继续执行的期望损失 > 停工的期望损失。
合规前置:用证据把"停"变成可审计决定
停工报告先做一张合规表:读完角色定义、九步工作流、三类指南、公共指南、两份仓库级 AGENTS.md(含阻塞规则)后才停,运行模式/仓库状态/凭证已确认。关键一行是 origin/master 同步(ahead 0 / behind 0)——证明没留半成品状态。
停工三件套:固化进提示词
发现规范与事实冲突时(测试红/文档与实现不符/前提不成立):
1. 判据:区分「实施可补救」与「规范本身错误」。
规范本身错误 → 触发停工,禁止就地修补规范。
2. 动作:停止实施 → 清理工作树、把仓库恢复到
干净同步状态 → 不留半成品。
3. 汇报四要素:
a. 异常描述(哪条规范、错在哪)
b. 已验证证据(明确区分「我验证过的」与「我推断的」)
c. 影响面(哪些需求/仓库/下游会被牵动)
d. 建议方案与需要人来决策的点
禁止:为让测试变绿而修改断言或测试本身。
禁止:把未验证规范当成事实继续实现。
流程护栏:
读规范/合规核验 ──► 跑测试基线 ──► 实施 N1
│ │ │
│ └─异常─┐ │
│ ▼ ▼
│ 判据:规范本身错?──否──► 带病标注继续
│ │是
│ ▼
│ 停止 → 清理 → 汇报四要素
│ │
└──── 设计层修正后重跑 ◄──┘
结果与生产落地建议
零行代码、一份报告,拦下:① 注定无效的变更(7/9 仍红);② 高风险自动合并(8 PR、2 共享生产仓库、全依赖 release.yml);③ 把缺陷移回设计层(改一次方案,N1–N8 全受益)。
生产建议:
- 提示词显式声明"规范本身错误"是合法停工触发,不扣进度分。
- 停工必须伴随清理(工作树删除、主仓库恢复干净同步)。
- 汇报固定四要素缺一不可;强制区分"我验证过的"与"我推断的"。
- 涉及共享仓库/命令面变更时,显式列出被牵动的下游。
- 动第一行代码前先完成合规与基线核验,并把结果作为表格亮出。
总结
- 规范只描述正常路径,"规范本身错误"是执行端真空地带;填它的默认倾向(照做/就地修)都错,例外通道必须写进提示词。
- 判继续还是停看两问:缺陷局部还是根上、影响面是否顺依赖扩散。根上错误 + 扩散影响 = 停。
- 停工三件套 + 合规前置,让"停下来"成为可审计、可交接、可随时重来的动作,而非一次放弃。
作者简介:kylinlab.tech,专注 AI 智能体与自动化交付。完整规范与提示词条款见 kylinlab.tech 大家在生产中怎么处理"实现端发现设计错了"?评论区交流~