6.1 KiB
V1.1 可发布条件实施计划
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: 在不扩大业务范围的前提下,完成丹阳公益婚恋平台 V1.1 的发布前验证,并输出可复现的 GO、CONDITIONAL GO 或 NO-GO 决策。
Architecture: 保持模块化单体、PostgreSQL Source of Truth 和现有 Docker Compose。验证分为代码测试、真实 PostgreSQL、运行中服务、人工 UAT、运维发布五层;任一层的结果不替代其他层。
Tech Stack: Java 21、Spring Boot 3、PostgreSQL 16、Redis、Docker Compose、Vue 3、微信原生小程序、Edge、Maven 阿里云镜像。
Spec: docs/superpowers/plans/2026-10-15-next-phase-validation-roadmap.md、docs/STATUS.md、AGENTS.md。
Global Constraints
- 不清理、回滚或覆盖现有未提交修改。
- 不把 H2、内存模拟、Mock 微信或演示 Seed 结果写成生产验收证据。
- 不安装 Chrome/Chromium;管理端使用 Edge。
- 测试账号、密码、Token 只通过环境变量注入,不写入仓库或日志。
- 不修改生产业务逻辑,除非真实验证复现出根因并完成回归测试。
- 不执行不可逆数据库清理;所有演示数据操作前先备份。
Task 1:发布基线与环境确认
Files:
- Inspect:
git status、infrastructure/docker-compose.yml、.env.example、docs/PENDING_DECISIONS.md - Create:
.mimosa/release-baseline-20261015.log - Modify:
docs/STATUS.md
Interfaces:
-
Produces:当前提交/工作区、Flyway 版本、容器健康状态、配置缺口清单。
-
检查工作区,不修改既有未提交文件。
-
检查
.env必需变量是否存在,仅输出变量名,不输出值。 -
启动或复用完整 Docker 演示栈,确认 PostgreSQL、Redis、后端、管理端、Nginx 健康。
-
备份演示数据库并记录 Flyway 版本。
-
将缺失项分为代码可执行项和必须由用户/运营提供的条件。
验收:环境健康、备份文件存在、无敏感值进入日志。
Task 2:真实 PostgreSQL 并发门禁
Files:
- Inspect/Modify:
backend/src/test/java/com/danyang/match/platform/concurrent.ConcurrentTests.java - Inspect/Modify:
backend/src/test/resources/application-test.yml - Create:
.mimosa/postgres-concurrency-test.log
Interfaces:
-
Consumes:隔离 PostgreSQL 数据库、真实 Service/Mapper。
-
Produces:Like 并发无重复 active Match;活动报名/审核不超过容量;失败有明确业务错误。
-
为每次测试生成唯一 run id 和隔离用户/活动数据。
-
将内存
AtomicInteger模拟替换为真实 Service/Mapper 调用。 -
执行同一目标的并发 Like 和超容量活动报名/审核。
-
查询 PostgreSQL 结果,断言重复 Match 为 0、approved 数不超过 capacity。
-
清理本次 run id 数据并保留日志。
验收:真实 PostgreSQL 测试通过;否则标记 NOT_VERIFIED,不得给正式生产 GO。
Task 3:完整业务闭环 E2E
Files:
- Inspect/Modify:
backend/src/test/java/com/danyang/match/platform/core/CoreE2ETest.java - Create:
.mimosa/core-e2e-postgres-test.log
Interfaces:
-
Consumes:微信 Mock Provider、实名/资料审核、推荐、Like、双向 Match、聊天、牵手服务。
-
Produces:真实 PostgreSQL 下可复现的注册到牵手闭环和负向权限断言。
-
拆解现有
@Disabled占位测试。 -
每个步骤先查询数据库状态,再进入下一步。
-
增加未审核资料不能推荐、未 Mutual 不能聊天、单方确认不能完成的负向断言。
-
在隔离 PostgreSQL 数据库执行并保存日志。
-
只有完整链路通过才移除
@Disabled;否则保留并标记NOT_VERIFIED。
验收:主流程和负向流程均通过。
Task 4:运行中服务与前端发布冒烟
Files:
- Use:
tests/public-id-web-live.cjs - Use:
tests/admin-dashboard-behavior.cjs - Use:
scripts/miniapp-compile-check.mjs - Create:
.mimosa/release-smoke-20261015.log - Modify:
docs/STATUS.md
Interfaces:
-
Consumes:完整 Docker 栈、Edge、微信开发者工具。
-
Produces:登录、工作台、红娘服务、授权审批、公开编号、401、重启恢复证据。
-
执行后端健康、管理端
/admin/、未登录 401 和公开编号 API 冒烟。 -
用 Edge 验证管理端登录、工作台统计、红娘服务、服务详情、跟进、完成服务、联系授权审批。
-
用演示数据走用户确认服务到管理端完成服务的闭环,核对统计回写。
-
重启后端和前端服务,重复登录、工作台和编号查询。
-
运行小程序编译检查并由用户在微信开发者工具/真机完成红娘端关键路径复验。
验收:核心页面、接口和重启恢复均通过。
Task 5:生产配置、备份恢复和人工发布条件
Files:
- Inspect:
infrastructure/docker-compose.prod.yml、infrastructure/scripts/backup.sh、infrastructure/scripts/restore.sh、docs/legal/privacy-policy.md、docs/security/PIA.md - Create:
docs/RELEASE-READINESS-2026-10-15.md - Modify:
docs/STATUS.md
Interfaces:
-
Produces:发布条件矩阵、剩余 P0/P1、最终
GO/CONDITIONAL GO/NO-GO。 -
验证生产配置关闭 Mock 微信、演示 Seed、Debug、Swagger,并使用注入密钥。
-
执行加密备份和干净环境恢复演练,记录数据库校验结果。
-
验证 HTTPS、域名、监控、日志、回滚目标和端口暴露。
-
核对隐私政策法务确认、微信小程序审核、运营真实内容和待决策项。
-
形成发布决策:全部 P0 通过才允许
GO;有人工条件未完成则CONDITIONAL GO;真实数据库/E2E/安全门禁缺失则NO-GO。
验收:发布报告包含每项证据、负责人、阻塞原因和下一步。
执行顺序
- Task 1:基线和环境
- Task 2:真实 PostgreSQL 并发
- Task 3:完整 PostgreSQL E2E
- Task 4:运行中服务和人工验收
- Task 5:生产门禁和发布决策