Files
lijiaoqiao/projects/ai-customer-service/PRODUCTION_EXECUTION_PLAN.md
Your Name 687c4535f8 fix: P0-1 RateLimiter并发写安全 + P0-2工单操作错误码区分 + P1 rows.Close修复
P0-1 (limits.go): Allow()方法改为全程使用写锁保护counters map读写,避免RLock写入时的data race
P0-2 (ticket_workflow.go+ticket_handler.go): Assign/Resolve/Close操作先查询ticket存在性和状态,返回明确的CS_TICKET_4001/CS_TKT_4002/CS_TICKET_4092/CS_TICKET_4093错误码,handler根据错误前缀路由HTTP状态码
P1-1 (ticket_store.go): 移除GetStats中3处手动rows.Close(),只保留defer Close()
2026-05-01 20:56:25 +08:00

7.5 KiB
Raw Blame History

AI-Customer-Service 生产上线执行方案

定位:本文件替代 demo/proto 导向的实施口径,作为小龙统筹 PM / TechLead / QA / Engineer 按生产上线标准推进的唯一执行基线。

1. 结论

当前 ai-customer-service 不具备生产上线条件

已完成的只是一个可运行原型,不能作为“阶段完成”或“可灰度上线”的依据。后续工作必须按生产项目方式推进,满足:

  • 文档与实现一致
  • 数据与审计可持久化
  • 权限、签名、幂等、隔离、防重放具备
  • 工单闭环真实存在
  • 外部依赖真实联通并可观测
  • 灰度、回滚、SLO、告警、Runbook 完整

2. 小龙团队职责重排

2.1 小龙(统筹)

负责:

  • 统一生产一期范围,禁止再使用 MVP-proto 口径作为完成标准
  • 建立跨角色门禁,不允许“代码能跑”替代“产品可上线”
  • 每阶段只允许在 PM/TechLead/QA 共同签字后进入下一阶段
  • 对“文档说有、代码没有”“测试只测 happy path”直接打回

2.2 PM

必须补齐:

  1. 《生产一期范围与门禁定义》
  2. 《客服 SLA 与升级响应规范》
  3. 《工单运营闭环 SOP》
  4. 《灰度发布与回滚 Runbook》
  5. 《客服运营后台需求说明》
  6. 《身份核验与数据权限策略》
  7. 《数据合规与留存策略》
  8. 《商业化与价值追踪方案》

2.3 TechLead

必须补齐:

  1. 生产数据模型与 migration 方案
  2. PostgreSQL / Redis / 外部依赖 / 配置系统接入设计
  3. Webhook 签名、防重放、幂等、审计 fail-closed 方案
  4. Ticket / Session / Audit / KB 真实架构
  5. IntegrationPlugin / 集成运行模式设计
  6. metrics / tracing / logging / health readiness 设计
  7. 降级、熔断、回滚、灰度技术方案

2.4 QA

必须补齐:

  1. 文档-实现一致性检查清单
  2. 威胁建模到测试映射清单
  3. AC/失败路径/安全/性能/灾备测试矩阵
  4. 灰度与回滚演练检查表
  5. 实施漂移检测点
  6. 上线阻断条件清单

2.5 Engineer

必须按文档和门禁实现,不得自行降级为:

  • 内存版替代持久化
  • 文本文案替代真实工单
  • 占位 OpenAPI 替代真实契约
  • 永远 UP 的 health 替代 readiness

3. 当前 P0 阻塞项

P0-1 范围口径错误

  • 当前 IMPLEMENTATION_PLAN.md 仍使用 MVP-proto 口径。
  • 必须废弃其“已完成即可进入下一阶段”的含义。

P0-2 持久化与数据模型缺失

  • Session / Audit / Knowledge 仍为内存实现。
  • 无 PostgreSQL schema / migration / rollback。

P0-3 Webhook 安全链路缺失

  • 无签名校验、无防重放、无幂等、无限流。

P0-4 工单闭环不存在

  • 当前转人工只返回文案,没有真实 ticket 创建、分配、处理、关闭。

P0-5 身份核验与只读业务查询缺失

  • 无用户绑定、无 quota/token/error logs 真实查询。

P0-6 权限与隔离缺失

  • 无鉴权、无 RBAC、无后台权限模型、无跨用户隔离验证。

P0-7 审计不可靠

  • 审计不持久化,且当前是 fail-open。

P0-8 可观测性与健康检查失真

  • 无 metrics/tracing/structured logging。
  • readiness/health 不检查依赖状态。

P0-9 灰度/回滚不可执行

  • 文档有灰度与回滚要求,但代码与部署层无对应能力。

P0-10 契约失真

  • OpenAPI / INTERFACE / router 实现明显不一致。

4. 分阶段执行计划

Phase 0收口生产一期基线必须先完成

交付物:

  • PRODUCTION_EXECUTION_PLAN.md(本文件)
  • 重写 IMPLEMENTATION_PLAN.md,去掉 proto 口径
  • PM 产出生产一期范围、门禁、SLA、工单运营、灰度回滚、合规文档清单
  • QA 产出上线阻断清单

退出条件:

  • 不再使用“最小原型已完成”作为阶段结论
  • PM / TechLead / QA 对 P0 范围达成一致

Phase 1生产底座

交付物:

  • PostgreSQL schema + migration + rollback
  • Redis 方案
  • 配置系统YAML + env
  • 结构化日志、metrics、trace id
  • health/live/ready 真实区分
  • graceful shutdown

退出条件:

  • 服务重启不丢核心状态
  • 多实例可运行
  • readiness 能真实阻断坏实例接流量

Phase 2入口安全与契约

交付物:

  • webhook 签名校验
  • 防重放
  • 幂等表与重复消息处理语义
  • body limit / schema validation
  • 完整 OpenAPI
  • 统一错误码

退出条件:

  • 外部恶意/重复/畸形请求不能造成假成功
  • QA 契约测试通过

Phase 3核心业务闭环

交付物:

  • Session / Message / Ticket / Audit 持久化
  • 真实工单状态机
  • 转人工创建/分配/关闭链路
  • 身份核验与账户绑定
  • quota/token/error logs 只读查询
  • 审计 fail-closed

退出条件:

  • 查询、转人工、审计、人工处理形成真实闭环
  • 不再存在“文案假装已转人工”

Phase 4运营后台与知识库

交付物:

  • 工单后台 API
  • 知识库 CRUD / 发布 / 审核 / 引用统计
  • FAQ 命中与未命中回流
  • 运营指标看板

退出条件:

  • 客服与运营团队可实际接管系统

Phase 5依赖联调、灰度、回滚

交付物:

  • supply-api / token-runtime / gateway / NewAPI/Sub2API 联调结果
  • 灰度策略开关
  • 回滚脚本与 Runbook
  • 压测/安全/灾备报告
  • 发布检查单

退出条件:

  • QA 签字通过
  • 小龙批准进入灰度

5. 生产级门禁

Gate A允许开始实现前

  • 生产一期范围清晰,不含 proto/demo 表述
  • PM 文档补齐到可执行程度
  • QA 阻断项建立完成
  • TechLead 生产架构方案冻结

Gate B允许联调前

  • 持久化、签名、防重放、幂等、鉴权、审计已具备
  • OpenAPI 与实现一致
  • 真实健康检查可工作
  • 关键失败路径自动化测试存在
  • Phase 1 真实范围已定义6 个接口P0-AC + P1-DE+ 错误码统一
  • 16+ 漂移接口已明确分类GET tickets/{id} / POST sessions/{id}/handoff / POST sessions/{id}/feedback / GET tickets/stats → Phase 1KB 全系 / admin 全系 / 会话查询类 → Phase 2
  • GET /tickets/{id} 已实现并测试通过
  • POST /sessions/{id}/handoff 已实现并测试通过(手动转人工)
  • POST /sessions/{id}/feedback 已实现并测试通过
  • GET /tickets/stats 已实现并测试通过
  • 错误码全局统一:无 hardcode 散落,统一使用 internal/domain/error/

Gate C允许灰度前

  • 工单闭环真实可用
  • 身份核验与只读查询真实可用
  • 监控、告警、SLO 仪表板上线
  • 灰度/回滚 Runbook 完成并演练
  • 压测/安全/灾备测试通过

Gate D允许全量前

  • 灰度期间投诉率、错误率、转人工率、SLA 达标
  • 无 P0/P1 未关闭缺陷
  • PM/TechLead/QA/小龙联合签字

6. 当前立即执行项(本轮)

  1. 废弃 demo 口径:重写 IMPLEMENTATION_PLAN.md
  2. 以生产底座为先,优先落地:
    • PostgreSQL migration
    • 持久化 Session/Audit/Ticket 基础模型
    • 配置系统
    • readiness/health 改造
    • HTTP 超时/请求体限制/优雅停机/结构化日志基础设施
  3. 并行补齐 PM/QA 文档,不允许只有代码没有上线规则

7. 纪律要求

  • 不允许再把“代码能运行”汇报成“项目可上线”。
  • 不允许拿 mock/内存版冒充生产闭环完成。
  • 不允许 QA 在没有真实依赖、真实工单、真实权限边界验证的情况下放行。
  • 任何阶段发现文档与实现漂移,立即回退到上一门禁。