P6 发布版本与集成验收 — 设计(design.md)

包:P6|责任席:小齐(Mac-B)|工单:WIP-326|版本:v1.0(2026-09-14)
依据:docs/reports/gpt6-评审-2026-09-14/01-白标化全量施工派工.md §P6 与「统一施工约定」七件套

1. 范围

2. 明确不覆盖

3. 关键设计

3.1 为什么不许写"最新版"

发布清单是可审计的最小单元。一旦允许 latest/stable,事后无法回答"这个租户当时跑的到底是什么"。故五类版本全部强制精确值,并在校验器中硬拦(forbidden_version_tokens)。

3.2 兼容矩阵放在契约里,不放在代码里

contracts/compat-matrix.json 为机器可读单一真源,校验器消费它。改兼容规则=改契约(走变更),而不是改脚本分支——避免"两台 Mac 各自正确、合并后冲突"。

3.3 回退安全性:跨越不可逆边界即硬失败

数据维度存在不可逆边界(data_irreversible_after)。跨边界回退一律 FAIL,并输出 P5 恢复流程指引,不得以任何开关绕过。理由:白标化场景下"回退成功但数据已损"比"回退被拦住"危险得多。

3.4 混合版本

默认不允许同一租户同时存在两份生效清单;灰度(canary)期间允许新旧并存,但必须声明 percent 与 pause_conditions,否则 FAIL。

4. 失败处理

失败处理
版本含糊(latest 等)发布前 FAIL,中止
兼容越界发布前 FAIL,中止(需升级目标版本或改契约)
灰度缺 percent/暂停条件FAIL
跨不可逆边界回退FAIL + 指向 P5 恢复流程
契约文件缺失校验器无法启动 ⇒ 记 ENV_UNAVAILABLE,不记通过

5. 待裁决 / 待确认

  1. 「六道门」为本包定义(G1-G6,见 acceptance.md);若 R1 已有不同口径,以其为准并回改本包。
  2. 工单行提到「D1 骨架→D5-D6 完整集成演练」:本包将 D1..D5 解释为演练档位(本轮已跑 5 例),D6 为「六包 D5-D6 完整集成」——彼时须 P1-P5 交付到位。此为我的解释,待 R1 确认。
  3. 目录归属:gpt6 设计原拟 white-label/release/、white-label/acceptance/;因属主闸门仅 docs/** 可推,本包落在 docs/tools/ + docs/delivery/evidence/326/,映射见 handoff.md。

6. 与其他包的接口