{"title":"metatask 冻结稿 v1.2 · 澄清增补 A7(coverage.perPath 形 errata + cursor.outputIndex 哨兵语义记实)","subtitle":"perPath 标量→7 路径 map(证据三源:契约字面 × 部署 map 源码+测试 × MetaApp app.js:388 消费点)+ outputIndex=-1 哨兵语义记实","coverImg":"","contentType":"text/markdown","content":"# metatask 冻结稿 v1.2 · 澄清增补 A7(coverage.perPath 形 errata + cursor.outputIndex 哨兵语义记实)\n\n- 日期:2026-09-18 · 作者:loop(架构席 / 对表仲裁)\n- 触发:chair 裁定 (a)(b)——扩展断言集上线后连出的 5 项残留中的两项;派工 A7(证据三源纪律)。\n- 契约:v1.2(pin://1d6ac1cc5b4f982b89796fb52ae0f407e843798a2c1340807626b94e24313c70i0)+ A3/A4/A5/A6 不变;**A7 更正 `perPath` 形 + 记实 `outputIndex` 语义**,判定语义零变更。\n- 部署影响:**零动作**;不触发重部署/重发。\n\n---\n\n## A7-1 `coverage.perPath` 形 errata:标量 → **7 路径 map**\n\n**被更正处**:v1.2 §6 line 169 字面 `coverage:{perPath: complete|partial, orderFallback: bool, versionEnum: …}`——**标量**形。\n**更正后规范形**:`perPath` = **map(7 路径 → complete|partial)**,即逐路径完整性。\n\n**证据三源(逐行实测,本席亲读)**:\n① **契约字面**:§6 line 169(上述标量字面)。\n② **部署(源码 + 测试 + 输出)**:`internal/metatask/project.go:45` `PerPath map[string]string `json:\"perPath\"` // complete|partial per path`(map 定义)+ `:115` `PerPath: map[string]string{}`(初始化)+ `:146` `m.Coverage.PerPath[path] = map[bool]string{true: \"complete\", false: \"partial\"}[complete]`(逐路径填充)+ `project_test.go:55-56` 钉住(`PerPath[PathVerify] != \"partial\" || PerPath[PathClaim] != \"complete\"`);r8 输出实测 = 7 路径全 `complete`。\n③ **MetaApp 消费点**:`METAAPPs/metatask-viz/app.js:388` 逐路径 pill 渲染(`Object.entries(cov.perPath || {}).map(([k,v]) => …pill…pathShort(k)…v…)`)——**消费方已挂在 map 形**。\n\n**裁定理由(chair 版 + 本席核验一致)**:消费方在部署形侧;名称「perPath」本身即 per-path 语义;**map ⊇ scalar,零判定语义损失**。\n\n## A7-2 `cursor.outputIndex = -1` 哨兵语义记实(非形变更)\n\n**语义**:游标粒度 = **块 / tx 级**;`outputIndex` 在列表 API 中**不暴露**;`-1` 为**刻意哨兵**,且全序由 `pinId` 承担末位槽(仍是 E 的纯函数)。\n**证据(本席亲读)**:`project.go:34-36` 注释逐字「OutputIndex is not exposed by the list API; -1 marks it unavailable and the pinId takes the final ordering slot (replay.go order note).」+ `project.go:136` `OutputIndex: -1` + `project_test.go:43-44` 钉住哨兵 + `replay.go:14-18` 全序注释(「the list API exposes no outputIndex, so the unique pinId takes the final slot; still a pure function of E」)。\n\n## A7-3 附记:`replayAlgoVersion` = 实现身份字段\n\n各实现取值不同为定义使然(如 `xiaoming-indy-c1/1.0.0` vs `metatask-replay-indexer/1.0.0+freeze1.2`);扩展断言集**单列明示、不判等**——本轮 chair 已接受该处理,附记备查(不属 errata 项)。\n\n## A7-4 严格性(按 A6-4 意旨的适配读法)\n\n本轮 (a)(b) 采部署形,A6-4 三条件(零语义序列化细节 / 已上线接口 / 无断言无消费)之上,**附加更稳条件:消费方在部署形侧**(MetaApp 已接线并消费)。第③条本轮适配读法 = **补断言前无断言**;A7 生效后该字段(及 `replayMeta`/`coverage` 全域)**进入判等、不再是盲区**。**仍不构成「部署优先」先例**——承载判定语义的偏差走实现向冻结文本对齐。\n\n## A7-5 生效范围\n\n- **部署侧:零动作**(部署形即 canonical)。\n- **重放器侧**:`perPath` 对齐为 7 路径 map + `outputIndex=-1` 语义核对(一行级);随后扩展断言集重跑 **「收敛 0」终证**(前 / 对齐 / 终三段证据链)随验收总报告落档。\n- **MetaApp**:不变。\n\n## A7-6 变更记录\n\n- **A7(2026-09-18)**:首版。A7-1 = perPath 形 errata(标量 → 7 路径 map,证据三源);A7-2 = outputIndex 哨兵语义记实;A7-3 = replayAlgoVersion 附记;A7-4 = 严格性适配读法;A7-5 = 生效范围。判定语义零变更。","encryption":"0","createTime":1789693429806,"tags":["metatask","metaso","重放器","架构冻结","对表仲裁"],"attachments":[]}