# 19 — 执行一次性审计切换与停机发布门禁 **What to build:** 发布负责人可以在一次停机窗口内完成新结构、Writer、现有敏感入口、历史查询、权限、监控和跨仓契约切换,并通过自动化门禁决定是否开放流量。任一关键检查失败时整体停止发布;一旦新系统产生生产事实,只能前向修复,不能恢复旧 Writer 制造分裂历史。 **Blocked by:** - 03 — 完成 Access Log 全路由敏感信息防泄漏 - 04 — 迁移账号、角色与权限敏感操作到统一审计 - 05 — 迁移卡资产生命周期操作到统一审计 - 06 — 迁移设备与资产导入操作到统一审计 - 07 — 迁移店铺、套餐和关键配置操作到统一审计 - 08 — 迁移现有资金与订单敏感操作到统一审计 - 09 — 承接手动轮询状态并记录同步外部尝试 - 10 — 提供旧审计历史统一只读投影 - 11 — 交付全局事件和资源轨迹查询闭环 - 12 — 交付人员行为和风险事件查询闭环 - 13 — 交付请求、业务链路和外部集成时间线 - 14 — 交付资金审计时间线 - 15 — 交付敏感值二次查看与自审计闭环 - 16 — 交付审计导出与字段授权快照 - 17 — 交付审计保留、清理和运行监控 - 18 — 冻结审计中心跨仓前端契约与验收包 - `.scratch/tech-public-foundation/issues/12-foundation-release-gate-and-integration-contract.md` — 12 — 建立公共基础发布门禁和下游接入契约 **Status:** ready-for-agent **架构通道:** 主通道为 Infrastructure,辅助通道为 Application/Query 验收。 **完整业务边界:** 本票收口全局审计一次性停机切换、迁移验证、旧写收缩、对账、性能、安全、监控和发布回滚边界。明确不允许长期双写或局部放量,不删除旧历史,不在新事实产生后通过删表回滚。 - [ ] 停机顺序明确覆盖暂停流量与 Worker、前置检查、增量迁移、权限初始化、新 Writer 装配、旧写护栏、历史对账、Worker 恢复和开放流量。 - [ ] 自动切换清单证明生产产物不再调用旧账号/资产审计 Writer、不再直接 Create 旧三表、启动装配不再注入旧 Writer;旧表意外新增会立即告警或失败。 - [ ] 门禁覆盖关键业务与审计同事务、审计失败回滚、失败短事务、Integration 结果未知、历史新旧交界、Access Log 敏感矩阵和权限隔离。 - [ ] Query 性能验证常用过滤使用索引、无 JSONB 全表模糊扫描、无资源/操作者 N+1,并满足项目 P95/P99 目标。 - [ ] 任一迁移、旧写清单、样本对账、事务、安全、权限、性能、监控或跨仓验收失败均在开放流量前整体终止发布,不能让局部模块继续写旧表。 - [ ] 发布与回滚说明明确:未产生新事实时可回退兼容应用;已产生 Audit/Integration/Outbox 事实后保留全部记录、停止异常生产者并前向修复,禁止恢复旧 Writer 或删除事实。 - [ ] 中文功能总结覆盖关键流程、前后端契约、异常闭环、发布回滚、监控恢复和待决策项,README 增加索引;完整停机演练通过后方可放量。