| name | decision-closure |
| description | 决策闭包方法论:面对"没做过的复杂任务",在执行前重建任务的决策闭包(必须被做出的全部决策),用决策覆盖表暴露"被意外决定/无人决定"的决策类,把延期机制(闭包债逐次碰撞偿还)换成纸面成本。当出现:复杂任务反复返工/重复延期、同一交付物验收多次不过、用户反复纠偏、"看起来有设计但仍然混乱"、需要复盘"为什么一直失败"、或要给反思/复盘本身立验收标准(回溯测试)——时使用本 skill。配套 workflow:closure-retro.star(三路闭包源重建覆盖表+盲集回溯验证)。⚠️ 活文档:每次覆盖表被新失败证伪,把漏掉的决策类追加进 §6。 |
决策闭包:没做过的复杂任务,怎么不靠撞墙完成
0. 核心命题(为什么复杂任务会混乱)
- 决策闭包:一个复杂任务的成品背后,存在一个"为了让成品自洽,必须被做出的全部决策"的集合。"有经验"的本质 = 脑子里装着这个闭包;行业管线(分镜→model sheet→layout→blocking→动画)是闭包的结晶——每道工序的存在就是为了在下游消费之前钉死一类决策。
- 意外决策:没经验的人拿残缺闭包开工。缺掉的决策不会消失,会被意外做出(生成模型的随机输出替你决定了道具风格;坐标系默认值替你决定了站位;"无人决定"的桌高就是错的桌高)。意外决策几乎必错,且只在下游碰撞时暴露,一次一个,每个吃一轮返工。
- 闭包债 = 延期机制:重复延期不是执行慢,是闭包债被一次一个碰撞地偿还。30 个无主决策=30 轮返工;动工前重建闭包≈1-2 轮成本。"先设计再执行"不是美德,是摊销。
- 假设计检验:坐标契约、不变量表这类产物若每一行都能追溯到一次失败,它是伤疤集不是设计。检验:这份设计能否在第一次失败之前被写出来? 设计质量的度量 = 执行中还剩多少决策要靠意外做出。
- 单环 vs 双环:修实例+补一个闸 = 单环;修"产生这类错误的模型"(更新闭包/覆盖表)= 双环。复盘的本职是双环;把复盘做成"把所有事故再看一遍"是更大的单环,产出只能是更全的伤疤清单。
1. 核心产物:决策覆盖表
复盘/开工前设计的唯一合格产出形态(散文报告不收货):
| 决策类 | 它决定成品的哪些具体性质 | 应由哪个设计件钉死 | 当前状态 | 预言 |
|---|
| (如)道具-角色比例 | 桌高/凳高/壶杯尺寸相对身高 | 比例表(scale chart) | 已设计(引证文件)/ 被意外决定(引证谁替你决定的)/ 无人决定 | 若不补,会在哪碰撞 |
行规范:
- 每行可证伪:"已设计"必须引证具体设计件;"无人决定"可以被拿出反例设计件反驳。
- 粒度检验:一行若适用于任何任务(如"空间要设计好")则太粗,必须落到本任务的具体性质(桌高、走路轨迹起止点)。
- "被意外决定 + 无人决定"的格子 = 对未来失败的预言,即工作队列,按下游碰撞成本排序。
2. 三个闭包来源 + 盲区规则
闭包不能从内部重建(你写的反思提示词继承你的盲区)。只有三个有信息增量的来源:
| 来源 | 做法 | 盲区规则 |
|---|
| (a) 第一性推演 | 模拟最终成品逐帧/逐性质枚举:每个性质问"这在哪被决定?" | 只给任务陈述,不给历史 |
| (b) 行业结晶 | 该任务类的成熟生产管线有哪些工序/中间产物,各钉死什么决策 | 只给任务陈述,不给历史 |
| (c) 失败考古 | 历史里每个已做决策:被谁做出(设计件/意外/无人)?用户每次纠偏=真闭包的一次采样 | 给历史,但不给本次要验证的盲集(见 §3) |
三路独立产出 → 合成 agent 合并成覆盖表(合成者也不看盲集)。"对历史更努力地反思一遍"没有新输入,跑十次也一样——v2 之鉴。
3. 复盘的验收标准:预注册回溯测试
复盘 workflow 自己必须有可证伪的验收,否则又是"技术信号当交付":
- 预注册:跑之前写死——盲集(用户最近 N 次纠偏,从语料中物理剔除)、命中判定、阈值、各失败模式的解释。跑完不许改。
- 命中判定:覆盖表存在一行,其决策类+状态能可操作地预防该纠偏;裁判 agent 必须逐字引用行文并说明映射;擦边 0.5。
- 阈值:≥80% 命中=方法成立,表中"用户尚未指出的空格"才值得信;60-79%=调一个变量(粒度/来源/合成)再跑一次,两轮不涨熔断;<60%=方法可疑,回到讨论。
- 产出物校验闸:任一路来源产出为空/泛泛而谈(行文不含本任务具体性质)→ 该路 FAILED;<2 路有效 → 本次复盘 FAILED,产出不许拿去改流程。
4. 运行期规则(表建好之后)
- 修表优先于修实例:每次新失败先问"覆盖表里有这格吗?"没有 → 闭包又漏了,先补表(双环),再修实例(单环)。
- 纠偏=采样:用户每次纠偏直接入表(新增或翻转某行状态),与机检失败同等入账。
- 无表不动工:没做过的复杂任务,第一个交付物必须是覆盖表,不是任何可运行的东西。执行者的"进展感"(模型出来了/脚本跑通了/机检绿了)会掩盖闭包债。
- 表是活的、可证伪的——别指望一次复盘终结问题;指望的是把"每个缺口一轮真机返工"变成"大部分缺口动工前纸面暴露",漏网之鱼用"修表优先"逐次收编。
5. 触发条件
- 接到一个没做过的复杂任务(多交付物、多阶段、跨域)→ 先建表(§1,用 §2 三来源)。
- 同一交付物验收失败 ≥2 次,或用户纠偏 1 次 → 查表/补表 + 产出对应 evaluator 挂常驻 gate。
- 周期性:每过一个里程碑 gate,跑一次 closure-retro 校表。
6. 实例记录(活)
- 2026-06-12 揭小贤功夫茶项目:首次回溯测试 PASS 4.0/5(K2/K3/K4 全中,K1/K5 半中)。变量隔离:第一轮考古路输出格式违规被校验闸拒收→3.0;恢复考古路(fp/行业冻结、提示词逐字不变)→4.0,+1.0 全部来自考古路有效性,证明"历史=闭包采样"路不可省。对照:同源数据的事故考古复盘(v2)完全没产出这些行——结构(决策考古+外部闭包源)是起效变量。半中教训:合成粒度仍会把"位移"降维成"锚点对齐"(K1)、道具 turnaround 这类行业件仍会漏(K5)——行业路提示词应点名 turnaround/三视图类物料属于必查项。表中真·新发现(用户未指出过):贴面竖直→重力方向与倒茶几何冲突、茶汤液体表现无人决定、AR 观看角/敬茶朝向被 MindAR 意外决定、文化动作正确性(巡城/点兵轨迹)无专家闸。
- 2026-06-12 R2/R3(迭代反思系列,同项目):walk-forward 刀口前移到"疼痛前"(语料截断于第一次纠偏 U222 之前),盲集=之后 5 纠偏。R2(资产偏置本体)=2.5/5,过程类纠偏(单元验收/对版闸)如预注册预测归零→证实 I7"验证决策也是闭包";R3 唯一变量=本体加「验证决策」维度(定于 R2 结果之前,防 Goodhart)→4.5/5,+2.0 全落在新增 [验证] 行——机器自改进闭环(预承诺变量→同盲集复测→可测提升)首次完整跑通。方法论升级:①迭代反思的新信息只来自三处:问题换层(对象→机制→性情)、参照系轮换、上轮已验证产出作查询;②同一语料可切多个 walk-forward 盲测点;③新颖度闸+两轮无新增 dry 熔断,防"洞见表演";④盲集复测只算工艺证据,金标准=前瞻预测的现实验证。
- 2026-06-12 R4(机制层,语料统计证伪):4 个候选机制 0 证实——3 个被确定性计数干净反驳(含两个非常动听的:"默认值代行决策普遍机制""资产偏置过程闸无主"),1 个因仪器偏置判无效。证伪层是反思系统的牙齿:没有它,4 个叙事就被当洞见采纳了。 仪器纪律:签名先析偏置方向+设空模型基线;合取签名脆弱;截断摘要语料会系统性吃掉证据类分子。codex 不可靠执行多步语义计数,计数必须确定性脚本化,语义判断单独最小化委托。迭代收口纪律有效:R4 零新增已验证洞见→meta 循环 dry 收口回产线,不无限反思。
- 工程教训:codex worker 在 schema 模式下会把进度播报也写成多行 JSON → 解析失败 → structured=None。考古/长任务类 prompt 必须写明「最终只输出一个 JSON 对象,禁止输出中间进度行」;主循环遇 structured=None 时先抢救 output_summary(raw_decode 扫描取 rows 最长对象)再判废。