feat(ai-customer-service): add gate readiness verification and handoff docs

This commit is contained in:
Your Name
2026-05-06 09:39:33 +08:00
parent 087de4e102
commit 6c3474e23b
25 changed files with 2322 additions and 400 deletions

View File

@@ -0,0 +1,122 @@
# AI-Customer-Service 灰度放行清单
> 版本v1.0
> 状态:灰度放行总门禁
> 用途:作为一页式放行清单,统一判断“是否允许进入灰度、是否允许继续放量、是否必须回滚”
---
## 1. 使用规则
- 任一 `阻断项` 未通过:**不得进入灰度**
- 任一 `回滚项` 触发:**立即回滚**
- 任一 `观察项` 异常:**冻结当前档位,不继续放量**
- 本清单的结论优先级高于口头判断
---
## 2. 代码级门禁
- [x] `go test ./... -count=1` 通过
- [x] `go test -race ./...` 通过
- [x] `go vet ./...` 通过
- [x] production 禁止 memory fallback
- [x] readiness 语义已与真实依赖对齐
- [x] 工单闭环语义已收口
- [x] 后台接口最小鉴权已启用
说明:
- 当前这些门禁已通过,属于**进入灰度准备的必要非充分条件**
---
## 3. Gate B 预生产门禁
- [x] `scripts/verify_preprod_gate_b.sh` 已建立
- [x] 本地/容器化 Gate B 预演通过
- [x] 真实 PostgreSQL migration 成功
- [x] signed webhook 联调通过
- [x] ticket / audit / dedup 入库可验证
- [x] `live` / `ready` 探针符合预期
- [x] 有验证记录:`docs/PREPROD_VERIFICATION_RECORD.md`
- [ ] 真实共享预生产环境已复跑同一脚本并留痕
阻断结论:
- **最后一项未完成前,不得宣称“真实预生产门禁已通过”**
---
## 4. Gate C 灰度门禁
- [x] 最小监控指标已定义
- [x] 告警阈值已定义
- [x] 灰度放量节奏已定义
- [x] 回滚触发条件已定义
- [x] 最小 dashboard 已定义
- [x] `scripts/verify_gate_c_rollback.sh` 已建立
- [x] 本地/容器化回滚演练已通过
- [x] 有验证记录:`docs/ROLLBACK_DRILL_RECORD.md`
- [ ] 真实共享预生产/灰度环境监控接线完成
- [ ] 真实共享预生产/灰度环境回滚演练完成并留痕
- [ ] 值班通知链路已确认
阻断结论:
- **最后三项未完成前,不得进入真实灰度放量**
---
## 5. 灰度放量节奏
| 阶段 | 流量比例 | 最短观察时间 | 进入条件 |
|------|----------|--------------|----------|
| Stage 1 | 5% | 30 分钟 | Gate B 已通过,核心门禁全绿 |
| Stage 2 | 20% | 2 小时 | Stage 1 稳定5xx / audit / DB 指标正常 |
| Stage 3 | 50% | 半天 | Stage 2 稳定handoff / ticket 指标正常 |
| Stage 4 | 100% | 次日 | Stage 3 稳定跨工作日,无新增 P0/P1 |
---
## 6. 继续放量判定
进入下一档前,必须同时满足:
- [ ] `webhook 5xx <= 0.5%`
- [ ] `webhook reject` 无异常升高
- [ ] `audit 写入失败数 = 0`
- [ ] `postgres 连接异常 = 0`
- [ ] `readiness down` 未持续发生
- [ ] `单实例重启次数 <= 2 / 10 分钟`
- [ ] `handoff 比率 <= 25%` 或未高于基线 `2x`
- [ ] `ticket 创建量` 与人工承载能力匹配
任一不满足:
- **冻结当前档位**
---
## 7. 立即回滚判定
满足任一项,立即回滚:
- [ ] `webhook 5xx > 5%` 持续 5 分钟
- [ ] PostgreSQL 异常导致 `ready` 持续失败
- [ ] `audit 写入失败数 > 0` 持续 5 分钟
- [ ] ticket 创建链路断裂
- [ ] 全量 readiness down
- [ ] 实例反复重启且影响服务
---
## 8. 当前总判定
当前状态:
- **代码级门禁:通过**
- **本地/容器化 Gate B通过**
- **真实共享预生产 Gate B未通过**
- **本地/容器化 Gate C 回滚演练:通过**
- **Gate C 灰度门禁:未通过**
因此当前唯一允许的结论是:
> **可以继续做共享预生产验证和灰度准备,但还不能进入真实灰度放量。**