release: enforce single named reviewer workflow

This commit is contained in:
2026-09-27 07:45:15 +08:00
parent 3182d73b0b
commit 74da61a9f1
28 changed files with 1361 additions and 402 deletions
@@ -411,7 +411,7 @@ Gate A 没有启动服务、访问实时数据库、调用真实模型、部署
| RC-03 同候选确定性质量 | `closed_current_candidate` | Windows:synthetic 144/144、Python 1,210 pass+3 platform skip、扩展 319/319、Web 192/192、Golden 31/31+32/32、OpenAPI fresh/tool pass;Linux:同一 ledger 实现和测试字节的 output/ledger/attempts 3/3 pass、0 skip。补验后 452 source pins missing 0、mismatch 0,自包含 v3 聚合索引已绑定收据。失效的 synthetic v1~v4 C-TEMP 及两个 invalid-c-temp 仍单独保留,未拼接 | 当前字节 RC-03 退出条件已满足,严格转入 RC-04。若后续源码、安全实现、测试或冻结输入发生变化,则只作废并重跑受影响门禁,同时递增索引版本;不得改写原始 Windows/Linux JUnit |
| RC-04 不可变可安装候选 | `rc04_1_and_rc04_2_rejected_rc04_3_clean_checkout_fix_pending` | 已完成 9,358 条预冻结路径的独立审阅:500 纳入、8,858 保留排除,secret/runtime、manual、gap、missing anchor、ownership blocker 均为 0。`.1` commit `2770d738185589c399c5740c4fc6cc25a4d65c2f` / tag `v2-multiscene-rc04-20260920.1` 保持不可变,但 manifest 实跑把 5 个合法密钥托管源码路径误判成密钥材料,已失败关闭且不得构建。`.2` commit `62d7d4476c08c8d72419665c3c0e1a6b3ef1c0f9` / tag `v2-multiscene-rc04-20260920.2` 成功生成确定性 manifest 和源码包,但冻结后干净 checkout 回归为 43 项中 1 项失败:测试错误强制要求 ownership 明确排除的原始 QA 证据,先前的脏工作区掩盖了该依赖;`.2` 因此也已不可变地否决。规则现收窄为只允许 `src/tests/migrations` 下的明确代码后缀,实际密钥材料仍拒绝;回归现要求发布源码/测试必须存在,而外置保留的 generated evidence 只在存在时复验哈希。四个 Dockerfile 基础镜像已固定到 Linux amd64 manifest digest,根 `.dockerignore` 已隔离本地缓存、文档、环境文件和运行态数据;Contract 38 与 AI 41 依赖锁的 pinned audit 为 0 known vulnerability。数据库共址主机当前根盘 93%、健康门禁失败且有容器反复重启,禁止直接使用默认 Docker/buildx 构建 | 只纳入干净 checkout 回归修复、回归和状态证据,独立复核后生成递增 `.3` commit/tag;必须先在冻结后干净 checkout 重跑 43 项并通过,才允许生成 source manifest/archive。Linux 构建仅允许在独立 builder,或在健康门禁恢复后的维护窗口使用 `/home` 独立 BuildKit/containerd root、串行和严格资源限额,绝不写入既有 `/var/lib/docker`;随后记录 image/base digest、SBOM、扫描、import/startup/health 及安装/回退收据 |
| RC-05 真实模型质量与耗时 | `blocked_by_rc04_not_started_full_real_matrix` | 当前 RC 没有真实矩阵;已知历史真实调用 4 次已计入,总预算最多剩 276 次、修复调用最多剩 12 次;尚未验证最终候选 `codex_cli / gpt-5.6-sol / medium / 300 / fallback=false` | 冻结 144 个任务,代表探针属于矩阵首批而不是额外调用;历史调用和所有新调用共用 280 次全局上限;0 unknown;失败/取消/降级/接管全进分母;关键主体、金额、日期、事实无静默丢失,正常链 schema/终态无阻断;按 operation 报 p50/p95/超时,未达三分钟只披露异步体验 |
| RC-06 部署、发布与双工作区 UAT | `waiting_for_rc04_rc05_and_external_uat_inputs` | 未完成目标备份、两库 current、迁移、RC 镜像部署、60资产/14 Prompt 批次批准和 apply/hash;没有管理员+2 普通成员+2 工作区的完整证据;31 项资产仍为 `needs_legal_review` | 获得目标主机、备份/迁移/部署授权、发布负责人和两个普通账号;具名批次批准必须逐项记录法律批准,或仅对内部受控试点记录有 owner/期限/范围/补偿控制的风险接受和使用限制,未处置项不得进入 RC-07 内部 Go;每个资产走适用正常 API 链,8 核心走 UI;验证跨租户、取消/幂等/关页续接/worker restart/人工接管、下载及原稿不覆盖。法律文书不强迫走不适用的签署/撤回 |
| RC-06 部署、发布与双工作区 UAT | `waiting_for_rc04_rc05_and_external_uat_inputs` | 未完成目标备份、两库 current、迁移、RC 镜像部署、60资产/14 Prompt 批次批准和 apply/hash;没有管理员+2 普通成员测试账号+2 工作区的完整证据;31 项资产仍为 `needs_legal_review` | 获得目标主机、备份/迁移/部署授权和两个普通测试账号;唯一审核人陈钰麒对绑定 60 资产+14 Prompt 精确 hash 的一个批次作一次决定,系统逐项记录法律批准,或仅对内部受控试点记录有 owner/期限/范围/补偿控制的风险接受和使用限制,未处置项不得进入 RC-07 内部 Go;每个资产走适用正常 API 链,8 核心走 UI;验证跨租户、取消/幂等/关页续接/worker restart/人工接管、下载及原稿不覆盖。两个普通账号不是审核人;法律文书不强迫走不适用的签署/撤回 |
| RC-07 恢复与内部放行 | `waiting_for_rc06` | 旧恢复证据不绑定当前 RC;没有当前候选的隔离恢复、RPO/RTO、rollback/forward、操作包、证据索引和内部 Go/No-Go | 在隔离 namespace 恢复当前候选,实测 RPO/RTO并核验版本/hash/关键记录;完成 rollback/forward;交付安装、升级、运维、回退、发布清单、已知限制和证据索引;单独作出内部受控 Go/No-Go |
| RC-08 对外公众放行 | `waiting_external_materials_and_production_validation`,`public_release_blocker=true` | 四份正式政策和同意证据、AI 备案/标识适用性判定及必要真实编号、生产 Provider、域名/TLS、密钥、监控告警、反滥用、生产 preflight、备份新鲜度、切流授权均未闭环 | 先由具名责任人形成适用性结论;适用的备案/标识必须有真实生效证明,不使用占位值;production blocker=0,warning 可有登记接受;发布负责人最后授权切流。内部例外不能授权公众开放 |
@@ -442,6 +442,7 @@ Gate A 没有启动服务、访问实时数据库、调用真实模型、部署
9. UAT 按 `document_kind` 走适用流程;通知、决议、意见书、授权委托书不强制套双边签署/履约/撤回。
10. 每次只处理当前最前置未通过门禁;一般样式、额外措辞和非阻断性能优化继续留在后续,不得挤入本轮。
11. AI Platform 的共享 service key 是服务到服务认证,不是最终用户认证。生产只允许受信 BFF/Contract API/worker 断言 `X-User-Id`;密钥不得进入浏览器或普通客户端。若网络拓扑不能保证该条件,则在 RC-08 前改为签名用户上下文并重跑受影响门禁。
12. 本轮唯一人工发布审核人为陈钰麒(总经理)。恢复、回退、政策与最终 Go/No-Go 不再追加第二名发布审核人;AI 自动完成技术核验但不得冒签。每次具体恢复/回退只接收一条 `release_owner` 签名,离线根密钥与日常审批密钥必须用途隔离且公钥不同。两个普通成员账号和两个工作区只是 UAT 测试身份,不是审核人;租户业务审批能力不在本条简化范围内。
### 6. 外部输入清单