Archived
gate_reason 最深一层要读 parts_profile_missing + parts_parameter_missing,这两个数由主数据/ 参数骨架两笔撑出来。案卷投影若排在它们之前,读到的是这一拍刷新之前的旧数:candidate 的类型刚被 判定、参数骨架行即将铺出但还不存在时,parts_parameter_missing 读到 0,片刻之后变成 1。收步与 发卡的把关本身没坏(card.when 排在铺骨架之后能读到真实缺口,卡照样正确发出),但案卷里存的话、 连同卡面 basis 里「还差什么」那一格,会是一句空话。 六笔重排为 part → profile → parameter → case → card → say;新增引擎级回归测试 (w05-gate-reason-order.test.ts,手写镜像 S1 配方六笔与生产读数层的四个纯函数,因 activities/apps 两侧互相不许 import 而不能直接复用真配方或真引擎的读数逻辑),变异验证过 (旧次序下测试确实变红、且红得精确:Received 恰是评审报告里点名的那个空字符串)。 顺带补一句注释:parts.parameter 的 param_unit 有意直接取字典而不回填现值 —— 同一类型下两颗料 必须按同一个单位比,字典值才是比对基准,S2 判定时用的单位同源,不是漏写了 lookup。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LKMZDwMbyKzjw6Hembwvet