5.6 KiB
17 生产就绪差距与阶段计划
评估日期:2026-08-11
事实来源:01_PROJECT_CONSTITUTION.md、02_PRODUCT_PRD_V1.md、09_TEST_ACCEPTANCE.md、10_TASK_STATE.md、13_DEPLOYMENT_CHINA.md、14_RELEASE_CHECKLIST.md。
1. 当前结论
Phase 0–7 的可自动化开发与本地生产工程验证已完成。当前仍不满足生产发布条件,剩余差距来自真实环境与人工审批:
- Phase 6 内容审核、站内消息和微信通知 Adapter 已完成,真实微信模板发送待平台配置;
- Phase 7 统计、脱敏汇总导出、安全扫描、备份恢复演练、监控规则和可回滚部署配置已完成,真实 staging、UAT 和 production deployment 待执行;
- 微信、域名备案、TLS、对象存储和运营合规材料需要人工账号与真实环境。
在上述工作完成前,只能视为可持续开发的 MVP,不得标记为可生产发布。
2. 分阶段交付计划
阶段 A:Phase 4 回访闭环(已完成,2026-08-11)
- 服务完成与自动回访任务在同一事务中提交;
- 回访待办、今日/逾期/本周/重点关怀视图;
- 人工及重点关怀回访任务;
- 回访结果、完成历史和审计;
NEED_MORE_HELP原子创建关联后续申请,保留原历史;- 完成 E2E-005、E2E-006 对应的集成验证。
退出条件:Phase 4 P0 测试、migration、文档和全仓质量门禁全部通过。
完成证据:Phase 4 migration 已部署到隔离测试库且无 schema drift;27 个单元测试、28 个真实 MySQL 集成测试、全仓类型检查和 production build 全部通过。
阶段 B:Phase 5 公益项目、活动与志愿者(已完成,2026-08-11)
- 志愿者资料、申请审核、状态机和最小权限;
- 公益项目与活动 CRUD/发布状态机;
- 活动报名、防重复、容量与截止时间校验;
- 签到和服务时长事实记录;
- E2E-009 及角色越权验证。
退出条件:V1 的志愿参与链路可在 staging 使用生成数据完整跑通。
完成证据:Phase 5 migration 已部署到隔离测试库且无 schema drift;真实 MySQL 集成测试覆盖项目/活动/报名/审核/签到/服务分钟、容量上限、幂等重放和公开边界。真实微信、合法域名、对象存储与 staging 仍按外部配置项保留,未用测试值冒充完成。
阶段 C:Phase 6 内容与通知(已完成,2026-08-12)
- 机构介绍、公益动态、草稿/审核/发布;
- 站内消息和投递记录;
- 微信订阅消息 Adapter、重试与失败补偿;
- 隐私政策、用户协议和授权页面接入可版本化内容;
- 外部通知失败不回滚主业务。
退出条件:公开内容审核、业务通知降级和隐私版本留痕通过测试。
完成证据:草稿公开隔离、审核状态机、服务故事隐私确认、危险内容拒绝、消息 IDOR 和订阅偏好已通过真实 MySQL 集成测试;真实微信发送保留为外部验收。
阶段 D:Phase 7 生产工程与发布(工程完成,外部发布待执行)
- 基础统计与受控脱敏导出;
- readiness/liveness、结构化运行日志、5xx/P95/资源/数据库/任务/备份监控;
- SAST、依赖/密钥扫描、IDOR、CSRF、SQLi、XSS、上传绕过和暴力登录测试;
- MySQL 自动备份、对象存储保护、恢复脚本和实际恢复演练;
- Nginx、TLS、immutable image、staging/prod Compose 或等价部署清单;
- migration precheck、发布、冒烟、观察和应用回滚流程;
- P0 E2E、性能基线和多角色 UAT。
退出条件:14_RELEASE_CHECKLIST.md 全部勾选,Critical/High 为零,恢复演练和 staging 闭环通过。
当前证据:统计/导出、health/metrics、权限扫描、官方依赖审计、密钥扫描、CodeQL 工作流、备份/恢复脚本、Nginx、immutable image Compose、预检/冒烟和告警规则已完成;本地恢复演练源库与恢复库均为 42 张表。真实 staging、UAT、告警接收和生产发布尚未执行,因此本退出条件仍未满足。
3. 需要人工或外部环境配合
以下内容不能用测试值替代正式验收:
- 微信小程序主体、类目、有效 AppID/AppSecret、接口权限和审核材料;
- 已备案域名、合法 request/upload/download HTTPS 域名和有效 TLS 证书;
- 生产 MySQL、Redis、私有对象存储 Bucket、最小权限密钥、CORS、生命周期/版本策略;
- 监控告警接收渠道和实际值班责任人;
- 数据保留期限、未成年人数据规则、隐私政策和用户协议的运营/法律确认;
- staging 测试账号、微信开发者工具、真机测试和非开发人员 UAT;
- 生产变更窗口、备份保留策略、回滚授权人与发布审批。
4. 发布阻断项
任一项未满足均阻断生产发布:
- Phase 6–7 本地 P0 功能或测试回归失败;
- P0 E2E 未全通过;
- 存在 Critical/High 安全漏洞或未修复越权;
- 未完成真实备份恢复演练;
- 无 staging 全闭环记录或可回滚镜像;
- 隐私/监护授权、微信合规材料或合法域名未就绪;
- 监控、告警无人接收;
- 使用测试 Adapter、测试密钥或本地 HTTP 冒充生产能力。
5. 执行规则
- 严格按 Phase 顺序推进,一个阶段 P0 未通过不得进入下一阶段;
- 外部配置缺失时保留真实 Adapter 和明确不可用状态,不伪造联调成功;
- 每阶段结束更新
10_TASK_STATE.md,架构或产品决定追加到11_DECISIONS.md; - 每阶段均执行 format、lint、typecheck、unit、integration 和 build,生产阶段另执行安全、恢复、E2E 与性能门禁。