2790 lines
39 KiB
Markdown
2790 lines
39 KiB
Markdown
# 丹阳公益婚恋服务平台
|
||||
|
|
# Codex首轮启动提示词 + Phase 01~Phase 26 Jira级任务清单 + 每阶段验收条件
|
|||
|
|
|
|||
|
|
版本:V1.0
|
|||
|
|
适用对象:Codex
|
|||
|
|
使用方式:首次启动项目时完整提供给Codex;后续每次开发任务继续要求Codex先读取 `AGENTS.md`、`docs/STATUS.md`、`docs/PENDING_DECISIONS.md` 后再执行。
|
|||
|
|
文档性质:研发启动执行包,不重新定义产品需求。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一部分:Codex首轮启动提示词
|
|||
|
|
|
|||
|
|
以下内容可以直接复制给Codex执行。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 一、Codex首轮完整启动提示词
|
|||
|
|
|
|||
|
|
你现在负责完整开发一个正式项目:
|
|||
|
|
|
|||
|
|
> **丹阳公益婚恋服务平台 V1.0**
|
|||
|
|
|
|||
|
|
这是一个面向丹阳市成年单身人士、由公益组织参与运营的实名制公益婚恋服务平台。
|
|||
|
|
|
|||
|
|
你不是在做Demo,也不是在做概念验证页面。
|
|||
|
|
|
|||
|
|
你的任务是:
|
|||
|
|
|
|||
|
|
> **按照既定产品设计、技术设计、安全设计和业务规则,持续完成一个真正可以部署、测试、运营、维护和升级的V1.0生产级系统。**
|
|||
|
|
|
|||
|
|
项目最终包括:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
微信小程序用户端
|
|||
|
|
+
|
|||
|
|
统一Web运营后台
|
|||
|
|
+
|
|||
|
|
公益红娘工作台
|
|||
|
|
+
|
|||
|
|
平台管理后台
|
|||
|
|
+
|
|||
|
|
后端服务
|
|||
|
|
+
|
|||
|
|
PostgreSQL
|
|||
|
|
+
|
|||
|
|
Redis
|
|||
|
|
+
|
|||
|
|
对象存储
|
|||
|
|
+
|
|||
|
|
WebSocket
|
|||
|
|
+
|
|||
|
|
测试体系
|
|||
|
|
+
|
|||
|
|
部署运维体系
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 二、你的最高执行原则
|
|||
|
|
|
|||
|
|
你必须首先遵守以下规则。
|
|||
|
|
|
|||
|
|
## 1. 不重新设计产品
|
|||
|
|
|
|||
|
|
已有需求已经经过完整规划。
|
|||
|
|
|
|||
|
|
你不能因为:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
实现方便
|
|||
|
|
技术偏好
|
|||
|
|
已有模板
|
|||
|
|
个人判断
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
擅自重新设计产品。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 2. 不擅自扩展功能
|
|||
|
|
|
|||
|
|
V1.0明确不开发:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
直播
|
|||
|
|
短视频
|
|||
|
|
动态Feed
|
|||
|
|
朋友圈
|
|||
|
|
群聊
|
|||
|
|
语音房
|
|||
|
|
视频相亲
|
|||
|
|
礼物
|
|||
|
|
金币
|
|||
|
|
积分商城
|
|||
|
|
排行榜
|
|||
|
|
VIP
|
|||
|
|
支付
|
|||
|
|
超级喜欢
|
|||
|
|
Boost
|
|||
|
|
付费曝光
|
|||
|
|
付费聊天
|
|||
|
|
付费联系方式
|
|||
|
|
AI代聊
|
|||
|
|
AI婚姻幸福预测
|
|||
|
|
颜值评分
|
|||
|
|
财富评分
|
|||
|
|
复杂社交玩法
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
不要顺手增加。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 3. 用户永久免费
|
|||
|
|
|
|||
|
|
本项目属于:
|
|||
|
|
|
|||
|
|
> 公益婚恋服务平台。
|
|||
|
|
|
|||
|
|
不得引入任何:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
会员
|
|||
|
|
付费
|
|||
|
|
VIP
|
|||
|
|
充值
|
|||
|
|
金币
|
|||
|
|
礼物
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
相关代码、数据表和页面。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4. Required不可自动放宽
|
|||
|
|
|
|||
|
|
用户择偶条件分为:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
必须符合
|
|||
|
|
最好符合
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
必须符合:
|
|||
|
|
|
|||
|
|
> Hard Constraint。
|
|||
|
|
|
|||
|
|
任何算法、红娘、运营后台都不能自动放宽。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5. 双向意愿是核心边界
|
|||
|
|
|
|||
|
|
必须保证:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
A喜欢B
|
|||
|
|
+
|
|||
|
|
B喜欢A
|
|||
|
|
=
|
|||
|
|
Mutual Match
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
只有Mutual Match后:
|
|||
|
|
|
|||
|
|
> 才能聊天。
|
|||
|
|
|
|||
|
|
陌生人不能直接私信。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 6. Block优先级最高
|
|||
|
|
|
|||
|
|
任一方Block后:
|
|||
|
|
|
|||
|
|
必须立即:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
停止聊天
|
|||
|
|
停止互相推荐
|
|||
|
|
停止搜索展示
|
|||
|
|
停止红娘推荐
|
|||
|
|
停止进一步关系操作
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Unblock:
|
|||
|
|
|
|||
|
|
不能自动恢复Match。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 7. 公益红娘只能辅助
|
|||
|
|
|
|||
|
|
红娘:
|
|||
|
|
|
|||
|
|
可以:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
看必要资料
|
|||
|
|
看系统候选
|
|||
|
|
人工推荐
|
|||
|
|
给条件建议
|
|||
|
|
跟进
|
|||
|
|
推荐活动
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
不能:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
替用户Like
|
|||
|
|
替用户确认成功
|
|||
|
|
看私人聊天
|
|||
|
|
看完整身份证
|
|||
|
|
私自把手机号给别人
|
|||
|
|
绕过Required强推
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 8. 活动单向意向必须保密
|
|||
|
|
|
|||
|
|
A活动后选择B。
|
|||
|
|
|
|||
|
|
如果B没有选择A:
|
|||
|
|
|
|||
|
|
> B不能知道A选择了自己。
|
|||
|
|
|
|||
|
|
只有:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
A → B
|
|||
|
|
B → A
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
双方成立:
|
|||
|
|
|
|||
|
|
> 才创建活动来源Match。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 9. 敏感数据默认拒绝
|
|||
|
|
|
|||
|
|
以下数据默认禁止普通工作人员查看:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
完整身份证
|
|||
|
|
完整手机
|
|||
|
|
私人聊天
|
|||
|
|
举报证据
|
|||
|
|
风控调查材料
|
|||
|
|
精确住址
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
必须:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Permission
|
|||
|
|
+
|
|||
|
|
Data Scope
|
|||
|
|
+
|
|||
|
|
Sensitive Permission
|
|||
|
|
+
|
|||
|
|
Audit
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
后才可访问。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 10. 数据库是Source of Truth
|
|||
|
|
|
|||
|
|
Redis、前端Store、WebSocket都不是业务事实源。
|
|||
|
|
|
|||
|
|
最终状态:
|
|||
|
|
|
|||
|
|
> PostgreSQL为准。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 三、项目核心业务闭环
|
|||
|
|
|
|||
|
|
必须最终跑通:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
微信登录
|
|||
|
|
↓
|
|||
|
|
绑定手机号
|
|||
|
|
↓
|
|||
|
|
实名认证
|
|||
|
|
↓
|
|||
|
|
填写资料
|
|||
|
|
↓
|
|||
|
|
设置择偶条件
|
|||
|
|
↓
|
|||
|
|
提交人工审核
|
|||
|
|
↓
|
|||
|
|
审核通过
|
|||
|
|
↓
|
|||
|
|
系统推荐
|
|||
|
|
↓
|
|||
|
|
用户Like
|
|||
|
|
↓
|
|||
|
|
双向Like
|
|||
|
|
↓
|
|||
|
|
Mutual Match
|
|||
|
|
↓
|
|||
|
|
聊天
|
|||
|
|
↓
|
|||
|
|
公益红娘辅助
|
|||
|
|
↓
|
|||
|
|
公益活动
|
|||
|
|
↓
|
|||
|
|
进一步了解
|
|||
|
|
↓
|
|||
|
|
双方确认成功牵手
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 四、产品形态
|
|||
|
|
|
|||
|
|
## 用户端
|
|||
|
|
|
|||
|
|
微信小程序。
|
|||
|
|
|
|||
|
|
固定底部导航:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
首页
|
|||
|
|
找对象
|
|||
|
|
消息
|
|||
|
|
活动
|
|||
|
|
我的
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
不得改变。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 工作人员端
|
|||
|
|
|
|||
|
|
统一Web后台。
|
|||
|
|
|
|||
|
|
通过:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Operator
|
|||
|
|
Role
|
|||
|
|
Permission
|
|||
|
|
Data Scope
|
|||
|
|
Organization
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
决定不同角色界面。
|
|||
|
|
|
|||
|
|
角色至少:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
super_admin
|
|||
|
|
platform_admin
|
|||
|
|
organization_admin
|
|||
|
|
reviewer
|
|||
|
|
matchmaker
|
|||
|
|
activity_manager
|
|||
|
|
risk_operator
|
|||
|
|
volunteer
|
|||
|
|
data_viewer
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 五、推荐技术架构
|
|||
|
|
|
|||
|
|
如果当前仓库为空,优先采用:
|
|||
|
|
|
|||
|
|
## Backend
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Java 21
|
|||
|
|
Spring Boot 3.x
|
|||
|
|
Spring Security
|
|||
|
|
PostgreSQL
|
|||
|
|
Redis
|
|||
|
|
WebSocket
|
|||
|
|
Flyway
|
|||
|
|
S3-Compatible Object Storage
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
ORM可以选择:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
MyBatis-Plus
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
或者:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Spring Data JPA
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
选择一种即可,不要混用。
|
|||
|
|
|
|||
|
|
优先标准:
|
|||
|
|
|
|||
|
|
> 简单、稳定、易维护。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Admin Web
|
|||
|
|
|
|||
|
|
建议:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Vue 3
|
|||
|
|
TypeScript
|
|||
|
|
Vite
|
|||
|
|
Pinia
|
|||
|
|
Vue Router
|
|||
|
|
Element Plus
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Mini Program
|
|||
|
|
|
|||
|
|
优先:
|
|||
|
|
|
|||
|
|
> 微信原生小程序 + TypeScript。
|
|||
|
|
|
|||
|
|
如果决定使用成熟框架,必须解释原因并写ADR。
|
|||
|
|
|
|||
|
|
不要为了跨端而引入明显增加维护成本的架构。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Deployment
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Docker
|
|||
|
|
Docker Compose
|
|||
|
|
Nginx
|
|||
|
|
PostgreSQL
|
|||
|
|
Redis
|
|||
|
|
Private Object Storage
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
不得主动使用:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Kubernetes
|
|||
|
|
Kafka
|
|||
|
|
Elasticsearch
|
|||
|
|
ClickHouse
|
|||
|
|
Neo4j
|
|||
|
|
Milvus
|
|||
|
|
Service Mesh
|
|||
|
|
微服务
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 六、项目目录
|
|||
|
|
|
|||
|
|
如果仓库为空,建立:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
/
|
|||
|
|
├── backend/
|
|||
|
|
├── miniapp/
|
|||
|
|
├── admin-web/
|
|||
|
|
├── infrastructure/
|
|||
|
|
├── scripts/
|
|||
|
|
├── tests/
|
|||
|
|
├── docs/
|
|||
|
|
│ ├── product/
|
|||
|
|
│ ├── architecture/
|
|||
|
|
│ ├── api/
|
|||
|
|
│ ├── database/
|
|||
|
|
│ ├── security/
|
|||
|
|
│ ├── testing/
|
|||
|
|
│ ├── ops/
|
|||
|
|
│ └── decisions/
|
|||
|
|
├── AGENTS.md
|
|||
|
|
├── CHANGELOG.md
|
|||
|
|
└── README.md
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 七、启动后第一批必须创建的文件
|
|||
|
|
|
|||
|
|
在任何正式业务编码之前创建:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
AGENTS.md
|
|||
|
|
docs/STATUS.md
|
|||
|
|
docs/PENDING_DECISIONS.md
|
|||
|
|
docs/ARCHITECTURE_BASELINE.md
|
|||
|
|
docs/TESTING_BASELINE.md
|
|||
|
|
docs/decisions/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 八、AGENTS.md最低内容
|
|||
|
|
|
|||
|
|
必须写明:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
1. 用户永久免费
|
|||
|
|
2. Required不可自动放宽
|
|||
|
|
3. Mutual Match后才能聊天
|
|||
|
|
4. Block优先级最高
|
|||
|
|
5. 红娘不可替用户操作
|
|||
|
|
6. 活动单向意向保密
|
|||
|
|
7. 普通工作人员不能查看私人聊天
|
|||
|
|
8. 敏感信息默认拒绝
|
|||
|
|
9. PostgreSQL是Source of Truth
|
|||
|
|
10. 使用模块化单体
|
|||
|
|
11. V1不引入微服务/Kubernetes/Kafka
|
|||
|
|
12. 所有未确认数量参数配置化
|
|||
|
|
13. 新功能不得擅自扩大V1范围
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 九、PENDING_DECISIONS.md
|
|||
|
|
|
|||
|
|
至少加入:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
每日推荐数量
|
|||
|
|
推荐最低阈值
|
|||
|
|
匹配权重最终值
|
|||
|
|
Pass冷却时间
|
|||
|
|
照片上限
|
|||
|
|
兴趣标签上限
|
|||
|
|
自我介绍字符长度
|
|||
|
|
Privacy默认值
|
|||
|
|
Getting To Know是否自动暂停推荐
|
|||
|
|
活动默认是否需要审核
|
|||
|
|
活动男女名额策略
|
|||
|
|
活动互选最大人数
|
|||
|
|
活动互选截止时间
|
|||
|
|
红娘联系意向对象是否允许电话联系
|
|||
|
|
RelationshipStatus最终业务名称
|
|||
|
|
Appeal是否V1.0首发
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任何这些项:
|
|||
|
|
|
|||
|
|
> 不得擅自拍板为固定产品规则。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 十、当前未确认参数处理规则
|
|||
|
|
|
|||
|
|
如果技术实现必须需要默认值:
|
|||
|
|
|
|||
|
|
可以提供:
|
|||
|
|
|
|||
|
|
> `technical_default`
|
|||
|
|
|
|||
|
|
但必须满足:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
存储在配置
|
|||
|
|
不可硬编码
|
|||
|
|
README/配置文档说明
|
|||
|
|
PENDING_DECISIONS记录
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 十一、首轮任务不是立即写全部代码
|
|||
|
|
|
|||
|
|
你首先必须执行:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Step 1
|
|||
|
|
审计当前仓库
|
|||
|
|
|
|||
|
|
Step 2
|
|||
|
|
判断是否为空仓库
|
|||
|
|
|
|||
|
|
Step 3
|
|||
|
|
输出Gap Analysis
|
|||
|
|
|
|||
|
|
Step 4
|
|||
|
|
创建项目治理文档
|
|||
|
|
|
|||
|
|
Step 5
|
|||
|
|
确认技术栈
|
|||
|
|
|
|||
|
|
Step 6
|
|||
|
|
建立Phase 01 Jira任务
|
|||
|
|
|
|||
|
|
Step 7
|
|||
|
|
建立测试骨架
|
|||
|
|
|
|||
|
|
Step 8
|
|||
|
|
再开始Phase 01
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 十二、如果已有代码
|
|||
|
|
|
|||
|
|
禁止直接推翻重写。
|
|||
|
|
|
|||
|
|
必须首先输出:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
当前技术栈
|
|||
|
|
目录
|
|||
|
|
已有模块
|
|||
|
|
已有数据模型
|
|||
|
|
已有API
|
|||
|
|
已有测试
|
|||
|
|
已有部署
|
|||
|
|
可复用模块
|
|||
|
|
冲突模块
|
|||
|
|
缺失模块
|
|||
|
|
安全风险
|
|||
|
|
重构建议
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
然后:
|
|||
|
|
|
|||
|
|
> 渐进式改造。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 十三、Codex每次开发前
|
|||
|
|
|
|||
|
|
必须读取:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
AGENTS.md
|
|||
|
|
docs/STATUS.md
|
|||
|
|
docs/PENDING_DECISIONS.md
|
|||
|
|
本Phase相关文档
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
再开发。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 十四、Codex每次完成任务后
|
|||
|
|
|
|||
|
|
必须更新:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
docs/STATUS.md
|
|||
|
|
CHANGELOG.md
|
|||
|
|
测试结果
|
|||
|
|
Migration
|
|||
|
|
OpenAPI
|
|||
|
|
PENDING_DECISIONS(如果有)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 十五、任务完成标准
|
|||
|
|
|
|||
|
|
禁止只因为:
|
|||
|
|
|
|||
|
|
> 代码已经写完
|
|||
|
|
|
|||
|
|
就宣布Done。
|
|||
|
|
|
|||
|
|
一个任务Done必须至少满足:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Code Complete
|
|||
|
|
+
|
|||
|
|
Tests Pass
|
|||
|
|
+
|
|||
|
|
Lint Pass
|
|||
|
|
+
|
|||
|
|
Build Pass
|
|||
|
|
+
|
|||
|
|
必要Migration Pass
|
|||
|
|
+
|
|||
|
|
相关权限测试Pass
|
|||
|
|
+
|
|||
|
|
相关文档Updated
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 十六、开发方式
|
|||
|
|
|
|||
|
|
严格按照:
|
|||
|
|
|
|||
|
|
> Phase 01 → Phase 26
|
|||
|
|
|
|||
|
|
推进。
|
|||
|
|
|
|||
|
|
不要多个Phase同时无序开发。
|
|||
|
|
|
|||
|
|
每阶段结束以后才能进入下一阶段。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二部分:Jira任务统一规范
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 十七、Epic命名规则
|
|||
|
|
|
|||
|
|
每个Phase对应一个Epic:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P01
|
|||
|
|
EPIC-P02
|
|||
|
|
...
|
|||
|
|
EPIC-P26
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 十八、Story命名
|
|||
|
|
|
|||
|
|
例如:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P03-S01 实现实名认证Provider抽象
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 十九、Task命名
|
|||
|
|
|
|||
|
|
例如:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P03-T01 创建IdentityProvider接口
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 二十、Bug命名
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
BUG-MATCH-001 双向Like并发生成重复Match
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 二十一、任务字段
|
|||
|
|
|
|||
|
|
每一个Jira任务至少包含:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Summary
|
|||
|
|
Phase
|
|||
|
|
Priority
|
|||
|
|
Description
|
|||
|
|
Dependencies
|
|||
|
|
Implementation Notes
|
|||
|
|
Acceptance Criteria
|
|||
|
|
Tests
|
|||
|
|
Docs Impact
|
|||
|
|
Status
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 二十二、Definition of Ready
|
|||
|
|
|
|||
|
|
任务开始前必须:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
需求清晰
|
|||
|
|
依赖完成
|
|||
|
|
接口明确
|
|||
|
|
待确认参数已配置化
|
|||
|
|
测试场景明确
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 二十三、Definition of Done
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
代码完成
|
|||
|
|
测试完成
|
|||
|
|
接口文档更新
|
|||
|
|
Migration完成
|
|||
|
|
权限检查完成
|
|||
|
|
无P0/P1已知缺陷
|
|||
|
|
STATUS更新
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第三部分:Phase 01~Phase 26 Jira级任务拆解
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 01:项目基础架构
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P01 项目基础骨架与工程治理
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### P01-S01 初始化Monorepo/项目目录
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P01-T01 创建backend目录
|
|||
|
|
P01-T02 创建miniapp目录
|
|||
|
|
P01-T03 创建admin-web目录
|
|||
|
|
P01-T04 创建infrastructure目录
|
|||
|
|
P01-T05 创建scripts目录
|
|||
|
|
P01-T06 创建tests目录
|
|||
|
|
P01-T07 创建docs目录体系
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### P01-S02 建立项目治理文档
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P01-T08 创建AGENTS.md
|
|||
|
|
P01-T09 创建docs/STATUS.md
|
|||
|
|
P01-T10 创建docs/PENDING_DECISIONS.md
|
|||
|
|
P01-T11 创建CHANGELOG.md
|
|||
|
|
P01-T12 创建README.md初版
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### P01-S03 Backend工程初始化
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P01-T13 初始化Spring Boot工程
|
|||
|
|
P01-T14 建立shared/common模块
|
|||
|
|
P01-T15 配置统一异常体系
|
|||
|
|
P01-T16 配置统一Response
|
|||
|
|
P01-T17 配置RequestId
|
|||
|
|
P01-T18 配置结构化日志
|
|||
|
|
P01-T19 配置Validation
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### P01-S04 基础设施
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P01-T20 Docker Compose开发环境
|
|||
|
|
P01-T21 PostgreSQL开发容器
|
|||
|
|
P01-T22 Redis开发容器
|
|||
|
|
P01-T23 Flyway初始化
|
|||
|
|
P01-T24 ObjectStorage本地适配
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### P01-S05 Admin工程
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P01-T25 Vue3+TS+Vite初始化
|
|||
|
|
P01-T26 Router
|
|||
|
|
P01-T27 Pinia
|
|||
|
|
P01-T28 Element Plus
|
|||
|
|
P01-T29 Design Token基础
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### P01-S06 Mini Program工程
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P01-T30 初始化微信小程序
|
|||
|
|
P01-T31 TypeScript配置
|
|||
|
|
P01-T32 基础Theme
|
|||
|
|
P01-T33 API Client
|
|||
|
|
P01-T34 基础State
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### P01-S07 CI
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P01-T35 Backend Lint/Test
|
|||
|
|
P01-T36 Admin Build
|
|||
|
|
P01-T37 Miniapp Build检查
|
|||
|
|
P01-T38 Migration Validation
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 01验收
|
|||
|
|
|
|||
|
|
必须:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Backend成功启动
|
|||
|
|
Admin成功启动
|
|||
|
|
Miniapp可打开
|
|||
|
|
PostgreSQL可连接
|
|||
|
|
Redis可连接
|
|||
|
|
Migration成功
|
|||
|
|
/health/live正常
|
|||
|
|
/health/ready正常
|
|||
|
|
/version正常
|
|||
|
|
CI通过
|
|||
|
|
README能够指导新开发者启动
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 02:认证、Operator、Organization与权限底座
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P02 认证与后台权限基础
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 用户认证
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P02-T01 微信登录Provider接口
|
|||
|
|
P02-T02 微信code登录
|
|||
|
|
P02-T03 User基础表
|
|||
|
|
P02-T04 user_wechat_accounts
|
|||
|
|
P02-T05 手机绑定
|
|||
|
|
P02-T06 Token/Session
|
|||
|
|
P02-T07 Refresh
|
|||
|
|
P02-T08 Logout
|
|||
|
|
P02-T09 /me/status
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Operator
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P02-T10 operators表
|
|||
|
|
P02-T11 operator登录
|
|||
|
|
P02-T12 operator状态
|
|||
|
|
P02-T13 operator session
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Organization
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P02-T14 organizations表
|
|||
|
|
P02-T15 organization状态
|
|||
|
|
P02-T16 基础组织Service
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### RBAC
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P02-T17 roles
|
|||
|
|
P02-T18 permissions
|
|||
|
|
P02-T19 role_permissions
|
|||
|
|
P02-T20 operator_roles
|
|||
|
|
P02-T21 PermissionService
|
|||
|
|
P02-T22 DataScopeService骨架
|
|||
|
|
P02-T23 后台菜单权限
|
|||
|
|
P02-T24 API权限中间件
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Audit
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P02-T25 audit_logs基础
|
|||
|
|
P02-T26 operator login log
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 02验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
用户微信登录成功
|
|||
|
|
绑定手机号成功
|
|||
|
|
Operator可登录
|
|||
|
|
disabled Operator不能访问
|
|||
|
|
不同角色菜单不同
|
|||
|
|
直接调用无权限API返回403
|
|||
|
|
Organization A不能访问Organization B基础资源
|
|||
|
|
权限修改可即时生效
|
|||
|
|
关键后台操作有Audit
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 03:实名认证
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P03 实名认证与成年人准入
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P03-T01 user_identities表
|
|||
|
|
P03-T02 IdentityVerificationProvider接口
|
|||
|
|
P03-T03 Mock Provider
|
|||
|
|
P03-T04 正式Provider Adapter接口预留
|
|||
|
|
P03-T05 姓名身份证提交
|
|||
|
|
P03-T06 身份证格式校验
|
|||
|
|
P03-T07 身份证加密
|
|||
|
|
P03-T08 身份证Hash
|
|||
|
|
P03-T09 身份去重
|
|||
|
|
P03-T10 出生日期解析
|
|||
|
|
P03-T11 成年校验
|
|||
|
|
P03-T12 认证状态API
|
|||
|
|
P03-T13 Provider失败重试策略
|
|||
|
|
P03-T14 日志脱敏
|
|||
|
|
P03-T15 Consent记录
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 03验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
正常成年人认证成功
|
|||
|
|
未成年人被拒绝
|
|||
|
|
重复身份证处理正确
|
|||
|
|
数据库没有身份证明文
|
|||
|
|
日志没有身份证全文
|
|||
|
|
Provider超时不会误判用户欺诈
|
|||
|
|
认证状态可恢复
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 04:用户资料、照片、兴趣、择偶条件与隐私
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P04 用户资料体系
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P04-T01 user_profiles
|
|||
|
|
P04-T02 user_preferences
|
|||
|
|
P04-T03 preference_rules设计
|
|||
|
|
P04-T04 user_interests
|
|||
|
|
P04-T05 interest_dictionary
|
|||
|
|
P04-T06 user_photos
|
|||
|
|
P04-T07 user_privacy_settings
|
|||
|
|
P04-T08 Basic Profile API
|
|||
|
|
P04-T09 Lifestyle API
|
|||
|
|
P04-T10 Relationship Intent API
|
|||
|
|
P04-T11 Self Intro API
|
|||
|
|
P04-T12 Interests API
|
|||
|
|
P04-T13 Photos API
|
|||
|
|
P04-T14 Object Upload Token
|
|||
|
|
P04-T15 Signed URL
|
|||
|
|
P04-T16 EXIF清理
|
|||
|
|
P04-T17 Profile Completion
|
|||
|
|
P04-T18 Onboarding Draft
|
|||
|
|
P04-T19 Preference Required/Preferred
|
|||
|
|
P04-T20 Privacy API
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Miniapp:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P04-T21 U06基础资料
|
|||
|
|
P04-T22 U07职业生活
|
|||
|
|
P04-T23 U08头像照片
|
|||
|
|
P04-T24 U09兴趣
|
|||
|
|
P04-T25 U10婚恋态度
|
|||
|
|
P04-T26 U11自我介绍
|
|||
|
|
P04-T27 U12/U13/U14择偶条件
|
|||
|
|
P04-T28 U15资料确认
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 04验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
完整完成Profile
|
|||
|
|
Required/Preferred正确保存
|
|||
|
|
未确认数量限制来自配置
|
|||
|
|
图片为Private
|
|||
|
|
图片URL非永久公开
|
|||
|
|
EXIF按规则清理
|
|||
|
|
本地不长期保存身份证
|
|||
|
|
Profile Completion正确
|
|||
|
|
Draft退出后可恢复
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 05:人工资料审核
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P05 用户资料人工审核
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P05-T01 review_tasks
|
|||
|
|
P05-T02 review_items
|
|||
|
|
P05-T03 review_reasons
|
|||
|
|
P05-T04 Submit Review
|
|||
|
|
P05-T05 Reviewer Queue
|
|||
|
|
P05-T06 Atomic Claim
|
|||
|
|
P05-T07 Approve
|
|||
|
|
P05-T08 Need Edit
|
|||
|
|
P05-T09 Reject
|
|||
|
|
P05-T10 Resubmit
|
|||
|
|
P05-T11 Review History
|
|||
|
|
P05-T12 Review状态路由
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
后台:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P05-T13 A05审核列表
|
|||
|
|
P05-T14 A06审核详情
|
|||
|
|
P05-T15 审核快捷理由
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
用户端:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P05-T16 U16审核中
|
|||
|
|
P05-T17 U17需修改/拒绝
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 05验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
10名审核员同时Claim只能1人成功
|
|||
|
|
Approve后用户可进入推荐
|
|||
|
|
Need Edit后用户明确知道改什么
|
|||
|
|
Resubmit正确生成新审核流程
|
|||
|
|
旧审核历史保留
|
|||
|
|
审核员不能修改用户资料
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 06:Match Engine
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P06 双向匹配推荐引擎
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P06-T01 MatchEligibilityService
|
|||
|
|
P06-T02 RequiredConditionService
|
|||
|
|
P06-T03 年龄匹配
|
|||
|
|
P06-T04 身高匹配
|
|||
|
|
P06-T05 地区匹配
|
|||
|
|
P06-T06 婚姻状态匹配
|
|||
|
|
P06-T07 子女匹配
|
|||
|
|
P06-T08 学历匹配
|
|||
|
|
P06-T09 吸烟饮酒匹配
|
|||
|
|
P06-T10 婚姻计划
|
|||
|
|
P06-T11 定居意愿
|
|||
|
|
P06-T12 兴趣匹配
|
|||
|
|
P06-T13 DirectionalScoringService
|
|||
|
|
P06-T14 MutualScoringService
|
|||
|
|
P06-T15 RecommendationReasonService
|
|||
|
|
P06-T16 RankingService
|
|||
|
|
P06-T17 match_rule_configs
|
|||
|
|
P06-T18 规则版本
|
|||
|
|
P06-T19 recommendation_records
|
|||
|
|
P06-T20 单元测试矩阵
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 06验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
A符合B但B不符合A → Reject
|
|||
|
|
任一Required失败 → Reject
|
|||
|
|
Preferred失败只影响评分
|
|||
|
|
算法结果稳定
|
|||
|
|
规则版本可追溯
|
|||
|
|
前端DTO不返回具体分数
|
|||
|
|
推荐理由不虚构
|
|||
|
|
所有算法关键规则有自动化测试
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 07:首页推荐与找对象
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P07 用户推荐与主动搜索
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P07-T01 Recommendation API
|
|||
|
|
P07-T02 推荐缓存
|
|||
|
|
P07-T03 推荐缓存失效
|
|||
|
|
P07-T04 推荐二次Eligibility
|
|||
|
|
P07-T05 Discover API
|
|||
|
|
P07-T06 Temporary Filter
|
|||
|
|
P07-T07 PublicProfile DTO
|
|||
|
|
P07-T08 Recommendation Source
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Miniapp:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P07-T09 U18首页
|
|||
|
|
P07-T10 RecommendCard
|
|||
|
|
P07-T11 推荐理由
|
|||
|
|
P07-T12 U19找对象
|
|||
|
|
P07-T13 U20筛选
|
|||
|
|
P07-T14 U21用户详情
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 07验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
首页只返回有效候选
|
|||
|
|
被Block/paused用户不出现
|
|||
|
|
搜索临时筛选不修改择偶条件
|
|||
|
|
PublicProfile无真实姓名/手机号/身份证
|
|||
|
|
无候选时显示合理空状态
|
|||
|
|
未确认每日推荐数量来自配置
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 08:Like、Pass、Block、Match与关系基础
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P08 用户关系与双向匹配
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P08-T01 user_relations
|
|||
|
|
P08-T02 Like
|
|||
|
|
P08-T03 Cancel Like
|
|||
|
|
P08-T04 Pass
|
|||
|
|
P08-T05 Pass expires_at
|
|||
|
|
P08-T06 Block
|
|||
|
|
P08-T07 Unblock
|
|||
|
|
P08-T08 matches
|
|||
|
|
P08-T09 active pair约束
|
|||
|
|
P08-T10 Mutual事务
|
|||
|
|
P08-T11 Match Episode/History
|
|||
|
|
P08-T12 我的缘分三列表
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Miniapp:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P08-T13 U22我的缘分
|
|||
|
|
P08-T14 Mutual Match视觉
|
|||
|
|
P08-T15 Block确认
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 08验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
单向Like不创建Match
|
|||
|
|
双向Like只创建1个Match
|
|||
|
|
并发100+次不重复Match
|
|||
|
|
Block即时排除双方
|
|||
|
|
Unblock不恢复Match
|
|||
|
|
Pass冷却可配置
|
|||
|
|
Cancel Like仅Mutual前允许
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 09:Conversation与文字聊天
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P09 一对一实时文字聊天
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P09-T01 conversations
|
|||
|
|
P09-T02 conversation_members
|
|||
|
|
P09-T03 messages
|
|||
|
|
P09-T04 Match创建Conversation
|
|||
|
|
P09-T05 MessagePermissionService
|
|||
|
|
P09-T06 REST Send Text
|
|||
|
|
P09-T07 clientMessageId
|
|||
|
|
P09-T08 Message Cursor
|
|||
|
|
P09-T09 History
|
|||
|
|
P09-T10 Unread
|
|||
|
|
P09-T11 Read Position
|
|||
|
|
P09-T12 WebSocket连接
|
|||
|
|
P09-T13 message.new
|
|||
|
|
P09-T14 Reconnect
|
|||
|
|
P09-T15 Event dedupe
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Miniapp:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P09-T16 U23消息
|
|||
|
|
P09-T17 U24聊天
|
|||
|
|
P09-T18 Sending/Sent/Failed
|
|||
|
|
P09-T19 Chat Draft
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 09验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
无Match不能聊
|
|||
|
|
Mutual后能聊
|
|||
|
|
重复clientMessageId不重复
|
|||
|
|
WS断线期间消息最终恢复
|
|||
|
|
Unmatch后不能发
|
|||
|
|
Block后不能发
|
|||
|
|
历史Cursor稳定
|
|||
|
|
System消息不计真实Chat Started
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 10:图片聊天与聊天安全
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P10 图片消息、反骚扰与消息风控
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P10-T01 Chat Image Upload
|
|||
|
|
P10-T02 图片Magic Number校验
|
|||
|
|
P10-T03 EXIF清理
|
|||
|
|
P10-T04 Signed URL
|
|||
|
|
P10-T05 MessageRiskService
|
|||
|
|
P10-T06 Message Rate Limit
|
|||
|
|
P10-T07 Duplicate Text Spam
|
|||
|
|
P10-T08 风险关键词
|
|||
|
|
P10-T09 RiskNotice
|
|||
|
|
P10-T10 Block实时WS状态
|
|||
|
|
P10-T11 Account Restriction实时生效
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 10验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
伪装恶意图片被拒
|
|||
|
|
图片Private
|
|||
|
|
普通快速聊天不误伤
|
|||
|
|
1秒大量消息触发限流
|
|||
|
|
风险关键词只提示/记录,不自动永久Ban
|
|||
|
|
Block无需刷新即可阻止下一条消息
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 11:统一通知系统
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P11 系统通知与业务事件提醒
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P11-T01 notifications
|
|||
|
|
P11-T02 NotificationService
|
|||
|
|
P11-T03 通知幂等
|
|||
|
|
P11-T04 审核通知
|
|||
|
|
P11-T05 Match通知
|
|||
|
|
P11-T06 活动通知
|
|||
|
|
P11-T07 红娘通知
|
|||
|
|
P11-T08 风控通知
|
|||
|
|
P11-T09 未读统计
|
|||
|
|
P11-T10 Read All
|
|||
|
|
P11-T11 WebSocket notification.new
|
|||
|
|
P11-T12 微信订阅消息Adapter
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 11验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
业务事件不重复生成通知
|
|||
|
|
通知能跳正确业务页
|
|||
|
|
站外通知失败不影响核心业务
|
|||
|
|
系统通知和Chat分离
|
|||
|
|
未读数一致
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 12:婚恋状态与成功牵手
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P12 婚恋关系进展状态
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P12-T01 RelationshipStatus实现
|
|||
|
|
P12-T02 Pause
|
|||
|
|
P12-T03 Resume
|
|||
|
|
P12-T04 Getting To Know
|
|||
|
|
P12-T05 Success Request
|
|||
|
|
P12-T06 Success Confirm
|
|||
|
|
P12-T07 Success Decline
|
|||
|
|
P12-T08 relationship_success_requests
|
|||
|
|
P12-T09 Recommendation状态联动
|
|||
|
|
P12-T10 Conversation联动
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 12验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Paused不再进入新推荐
|
|||
|
|
Paused已有聊天继续
|
|||
|
|
Getting To Know是否暂停推荐由配置/用户选择
|
|||
|
|
Success必须双确认
|
|||
|
|
红娘/管理员不能替确认
|
|||
|
|
成功后停止新推荐
|
|||
|
|
成功≠法律婚姻状态
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 13:公益红娘
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P13 公益红娘工作台与服务流程
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P13-T01 matchmaker_services
|
|||
|
|
P13-T02 matchmaker_recommendations
|
|||
|
|
P13-T03 matchmaker_followups
|
|||
|
|
P13-T04 服务申请
|
|||
|
|
P13-T05 服务分配
|
|||
|
|
P13-T06 Claim
|
|||
|
|
P13-T07 Start
|
|||
|
|
P13-T08 Candidate API
|
|||
|
|
P13-T09 推荐
|
|||
|
|
P13-T10 Followup
|
|||
|
|
P13-T11 Waiting User
|
|||
|
|
P13-T12 Complete
|
|||
|
|
P13-T13 Cancel
|
|||
|
|
P13-T14 Risk Referral
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
后台:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P13-T15 R02工作台
|
|||
|
|
P13-T16 R03服务列表
|
|||
|
|
P13-T17 R04服务详情
|
|||
|
|
P13-T18 R05候选
|
|||
|
|
P13-T19 R06推荐确认
|
|||
|
|
P13-T20 R07跟进
|
|||
|
|
P13-T21 R08我的用户
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
用户端:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P13-T22 U33红娘首页
|
|||
|
|
P13-T23 U34服务申请
|
|||
|
|
P13-T24 U35服务进度
|
|||
|
|
P13-T25 U36红娘推荐
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 13验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
红娘只能看服务必要资料
|
|||
|
|
不能看身份证
|
|||
|
|
不能看私人聊天
|
|||
|
|
不能替用户Like
|
|||
|
|
Required冲突不能推荐
|
|||
|
|
推荐前服务端二次校验
|
|||
|
|
不同红娘不会无序重复推荐
|
|||
|
|
服务跟进可连续追踪
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 14:活动基础
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P14 公益相亲活动基础闭环
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P14-T01 activities
|
|||
|
|
P14-T02 activity_registrations
|
|||
|
|
P14-T03 Activity CRUD
|
|||
|
|
P14-T04 Publish
|
|||
|
|
P14-T05 Cancel
|
|||
|
|
P14-T06 Activity Browse
|
|||
|
|
P14-T07 Activity Detail
|
|||
|
|
P14-T08 Eligibility
|
|||
|
|
P14-T09 Apply
|
|||
|
|
P14-T10 Registration Review
|
|||
|
|
P14-T11 Capacity Transaction
|
|||
|
|
P14-T12 User Cancel
|
|||
|
|
P14-T13 My Activities
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
后台:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P14-T14 A11活动列表
|
|||
|
|
P14-T15 A12创建活动
|
|||
|
|
P14-T16 A13报名审核
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Miniapp:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P14-T17 U27活动首页
|
|||
|
|
P14-T18 U28详情
|
|||
|
|
P14-T19 U29报名
|
|||
|
|
P14-T20 U30我的活动
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 14验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
活动时间校验正确
|
|||
|
|
重复报名不会重复
|
|||
|
|
Pending是否占名额按既定V1规则
|
|||
|
|
最后1个名额并发只1人通过
|
|||
|
|
可选性别名额生效
|
|||
|
|
活动取消后不能再报名
|
|||
|
|
用户取消释放名额
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 15:活动签到
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P15 活动现场签到
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P15-T01 Checkin Token
|
|||
|
|
P15-T02 Token签名
|
|||
|
|
P15-T03 Token过期
|
|||
|
|
P15-T04 Staff Scan API
|
|||
|
|
P15-T05 Duplicate Checkin
|
|||
|
|
P15-T06 Manual Checkin
|
|||
|
|
P15-T07 Checkin Audit
|
|||
|
|
P15-T08 Volunteer Activity Scope
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Miniapp:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P15-T09 U31签到码
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
后台:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P15-T10 A14签到管理
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 15验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
二维码不包含敏感明文
|
|||
|
|
过期Token不可用
|
|||
|
|
重复签到幂等
|
|||
|
|
非approved用户不能签到
|
|||
|
|
志愿者只能操作指定活动
|
|||
|
|
手工签到有Audit
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 16:活动反馈与互选
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P16 活动后反馈与双向互选
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P16-T01 activity_feedback
|
|||
|
|
P16-T02 activity_interests
|
|||
|
|
P16-T03 Feedback API
|
|||
|
|
P16-T04 Interest Submit
|
|||
|
|
P16-T05 Interest Cancel/Modify
|
|||
|
|
P16-T06 Max Selection Config
|
|||
|
|
P16-T07 Deadline Config
|
|||
|
|
P16-T08 Mutual Interest
|
|||
|
|
P16-T09 Activity Match Source
|
|||
|
|
P16-T10 Existing Match Dedup
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Miniapp:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P16-T11 U32活动反馈
|
|||
|
|
P16-T12 活动互选页面
|
|||
|
|
P16-T13 互选成功页
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 16验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
A单选B,B绝对看不到
|
|||
|
|
双方互选只生成1个Match
|
|||
|
|
Block对象不能互选
|
|||
|
|
非本活动参与者不能被选择
|
|||
|
|
最多人数来自配置
|
|||
|
|
活动互选不计Success
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 17:举报与风控
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P17 举报、风险与账号处置
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P17-T01 reports
|
|||
|
|
P17-T02 report_evidences
|
|||
|
|
P17-T03 user_risk_profiles
|
|||
|
|
P17-T04 risk_events
|
|||
|
|
P17-T05 risk_actions
|
|||
|
|
P17-T06 Report Submit
|
|||
|
|
P17-T07 Report Triage
|
|||
|
|
P17-T08 Risk Process
|
|||
|
|
P17-T09 Warning
|
|||
|
|
P17-T10 Feature Limit
|
|||
|
|
P17-T11 Temporary Suspend
|
|||
|
|
P17-T12 Ban
|
|||
|
|
P17-T13 Account Capability计算
|
|||
|
|
P17-T14 Risk Evidence Permission
|
|||
|
|
P17-T15 Chat Context受控访问
|
|||
|
|
P17-T16 SensitiveAccessLog
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
后台:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P17-T17 A15举报中心
|
|||
|
|
P17-T18 A16举报详情
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 17验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
举报人身份不泄露
|
|||
|
|
普通管理员不能看证据
|
|||
|
|
聊天只能案件上下文访问
|
|||
|
|
RiskAction实时影响推荐/Like/Chat/Activity/Matchmaker
|
|||
|
|
单个关键词不自动永久Ban
|
|||
|
|
所有处置有Audit
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 18:申诉
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P18 用户申诉
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如决定不首发,则Feature Flag/模块预留,但不得删除数据设计。
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P18-T01 appeals
|
|||
|
|
P18-T02 Appeal Submit
|
|||
|
|
P18-T03 Appeal Review
|
|||
|
|
P18-T04 Approve
|
|||
|
|
P18-T05 Reject
|
|||
|
|
P18-T06 RiskAction Revoke
|
|||
|
|
P18-T07 Account Capability Recalculate
|
|||
|
|
P18-T08 Appeal Notification
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 18验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
用户只能申诉自己的有效处置
|
|||
|
|
Approve正确撤销对应Action
|
|||
|
|
其他剩余Action仍生效
|
|||
|
|
Reject不改变现有状态
|
|||
|
|
全部有Audit
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 19:运营后台完善
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P19 统一运营管理后台
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P19-T01 Dashboard角色化
|
|||
|
|
P19-T02 用户管理
|
|||
|
|
P19-T03 用户详情
|
|||
|
|
P19-T04 审核历史
|
|||
|
|
P19-T05 Match摘要
|
|||
|
|
P19-T06 Activity摘要
|
|||
|
|
P19-T07 Matchmaker摘要
|
|||
|
|
P19-T08 Organization管理
|
|||
|
|
P19-T09 Operator管理
|
|||
|
|
P19-T10 Role管理
|
|||
|
|
P19-T11 Permission管理
|
|||
|
|
P19-T12 Role Assignment Boundary
|
|||
|
|
P19-T13 Sensitive Identity
|
|||
|
|
P19-T14 Audit查询
|
|||
|
|
P19-T15 Sensitive Access查询
|
|||
|
|
P19-T16 临时Volunteer账号
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 19验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
不同角色看到不同Dashboard
|
|||
|
|
机构管理员不能提权
|
|||
|
|
机构A不能访问机构B
|
|||
|
|
红娘不能通过User详情看到Chat
|
|||
|
|
Volunteer不能进入User管理
|
|||
|
|
敏感数据默认脱敏
|
|||
|
|
所有高风险操作二次确认
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 20:Analytics
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P20 数据统计与管理驾驶舱
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P20-T01 指标字典
|
|||
|
|
P20-T02 User Metrics
|
|||
|
|
P20-T03 Review Metrics
|
|||
|
|
P20-T04 Recommendation Metrics
|
|||
|
|
P20-T05 Match Metrics
|
|||
|
|
P20-T06 Chat Started
|
|||
|
|
P20-T07 Matchmaker Metrics
|
|||
|
|
P20-T08 Activity Metrics
|
|||
|
|
P20-T09 Risk Metrics
|
|||
|
|
P20-T10 Daily Summary
|
|||
|
|
P20-T11 Rebuild Metrics
|
|||
|
|
P20-T12 Platform Dashboard
|
|||
|
|
P20-T13 Organization Dashboard
|
|||
|
|
P20-T14 Analytics权限
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 20验收
|
|||
|
|
|
|||
|
|
固定数据集验证:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
注册10
|
|||
|
|
实名7
|
|||
|
|
审核通过4
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
必须显示一致。
|
|||
|
|
|
|||
|
|
以及:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
2个Like = 1个Mutual Match
|
|||
|
|
System Message不算Chat Started
|
|||
|
|
活动10对互选≠10对Success
|
|||
|
|
红娘看20候选、发3个 → Recommendation=3
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Dashboard和专项页面相同指标必须一致。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 21:账号生命周期、注销与数据保留接口
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P21 用户账号生命周期
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P21-T01 Service Exit
|
|||
|
|
P21-T02 Account Deletion Request
|
|||
|
|
P21-T03 Account Deletion Cancel(如采用宽限期)
|
|||
|
|
P21-T04 Session Revoke
|
|||
|
|
P21-T05 Recommendation Removal
|
|||
|
|
P21-T06 Search Removal
|
|||
|
|
P21-T07 Matchmaker Stop
|
|||
|
|
P21-T08 Activity处理
|
|||
|
|
P21-T09 Conversation展示处理
|
|||
|
|
P21-T10 Retention Policy Hook
|
|||
|
|
P21-T11 User Data Rights API
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 21验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
注销后不再搜索
|
|||
|
|
不再推荐
|
|||
|
|
不能新聊天
|
|||
|
|
红娘服务停止
|
|||
|
|
未开始活动按规则处理
|
|||
|
|
历史关系不崩
|
|||
|
|
已注销展示名正确
|
|||
|
|
保留/删除逻辑可配置
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 22:部署、监控、备份、恢复
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P22 生产部署与运维体系
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P22-T01 Backend Dockerfile
|
|||
|
|
P22-T02 Admin Docker Build
|
|||
|
|
P22-T03 Docker Compose
|
|||
|
|
P22-T04 Staging Compose
|
|||
|
|
P22-T05 Nginx
|
|||
|
|
P22-T06 HTTPS/WSS配置
|
|||
|
|
P22-T07 .env.example
|
|||
|
|
P22-T08 Secret说明
|
|||
|
|
P22-T09 health/live
|
|||
|
|
P22-T10 health/ready
|
|||
|
|
P22-T11 version
|
|||
|
|
P22-T12 Structured Logging
|
|||
|
|
P22-T13 Metrics
|
|||
|
|
P22-T14 Monitoring
|
|||
|
|
P22-T15 Backup Script
|
|||
|
|
P22-T16 Restore Script
|
|||
|
|
P22-T17 Deploy Script
|
|||
|
|
P22-T18 Rollback Script
|
|||
|
|
P22-T19 Maintenance Mode
|
|||
|
|
P22-T20 Feature Flag
|
|||
|
|
P22-T21 Ops Docs
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 22验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
全新服务器可按文档部署
|
|||
|
|
生产Secret不进Git
|
|||
|
|
PostgreSQL/Redis不公网
|
|||
|
|
用户图片Private
|
|||
|
|
备份能实际恢复
|
|||
|
|
指定版本可以Rollback
|
|||
|
|
/health与/version正确
|
|||
|
|
WSS正常
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 23:完整测试与安全验证
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P23 系统级测试与安全验收
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P23-T01 Core E2E
|
|||
|
|
P23-T02 Auth E2E
|
|||
|
|
P23-T03 Review E2E
|
|||
|
|
P23-T04 Match E2E
|
|||
|
|
P23-T05 Chat E2E
|
|||
|
|
P23-T06 Matchmaker E2E
|
|||
|
|
P23-T07 Activity E2E
|
|||
|
|
P23-T08 Risk E2E
|
|||
|
|
P23-T09 Permission Matrix Test
|
|||
|
|
P23-T10 IDOR
|
|||
|
|
P23-T11 SQL Injection
|
|||
|
|
P23-T12 XSS
|
|||
|
|
P23-T13 CORS
|
|||
|
|
P23-T14 Upload Security
|
|||
|
|
P23-T15 Rate Limit
|
|||
|
|
P23-T16 Simultaneous Like
|
|||
|
|
P23-T17 Activity Capacity Race
|
|||
|
|
P23-T18 WebSocket Weak Network
|
|||
|
|
P23-T19 Restore Test
|
|||
|
|
P23-T20 Rollback Test
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 23验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P0 = 0
|
|||
|
|
未接受P1 = 0
|
|||
|
|
Core E2E全部通过
|
|||
|
|
权限测试通过
|
|||
|
|
隐私测试通过
|
|||
|
|
并发测试通过
|
|||
|
|
Backup Restore通过
|
|||
|
|
Rollback通过
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 24:UAT
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P24 真实角色用户验收
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P24-T01 普通用户UAT
|
|||
|
|
P24-T02 Reviewer UAT
|
|||
|
|
P24-T03 Matchmaker UAT
|
|||
|
|
P24-T04 Activity Manager UAT
|
|||
|
|
P24-T05 Volunteer UAT
|
|||
|
|
P24-T06 Risk Operator UAT
|
|||
|
|
P24-T07 Platform Admin UAT
|
|||
|
|
P24-T08 UAT问题修复
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 24验收
|
|||
|
|
|
|||
|
|
必须证明:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
普通用户不培训基本会用
|
|||
|
|
审核员可以连续处理审核
|
|||
|
|
红娘不依赖Excel完成服务
|
|||
|
|
活动管理员完成整场模拟
|
|||
|
|
志愿者简单培训即可签到
|
|||
|
|
风控员能处理标准举报
|
|||
|
|
管理员能管理权限但不能越权
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 25:Release Candidate
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P25 V1.0.0 Release Candidate
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P25-T01 版本冻结
|
|||
|
|
P25-T02 Migration最终验证
|
|||
|
|
P25-T03 OpenAPI冻结
|
|||
|
|
P25-T04 Release Notes
|
|||
|
|
P25-T05 Staging Clean Deploy
|
|||
|
|
P25-T06 全量Regression
|
|||
|
|
P25-T07 Production Config Review
|
|||
|
|
P25-T08 Privacy/Agreement版本核对
|
|||
|
|
P25-T09 Go/No-Go检查
|
|||
|
|
P25-T10 生成v1.0.0-rc.1
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 25验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Staging从空环境可部署
|
|||
|
|
所有Migration连续成功
|
|||
|
|
RC核心流程通过
|
|||
|
|
Production配置齐全
|
|||
|
|
备份恢复演练完成
|
|||
|
|
没有Blocker
|
|||
|
|
Go/No-Go材料完整
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 26:生产上线
|
|||
|
|
|
|||
|
|
## Epic
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EPIC-P26 Production Launch
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P26-T01 Production Backup
|
|||
|
|
P26-T02 Production Migration
|
|||
|
|
P26-T03 Backend Deploy
|
|||
|
|
P26-T04 Admin Deploy
|
|||
|
|
P26-T05 Mini Program正式配置
|
|||
|
|
P26-T06 Health Check
|
|||
|
|
P26-T07 Smoke Test
|
|||
|
|
P26-T08 Monitoring Check
|
|||
|
|
P26-T09 Backup Validation
|
|||
|
|
P26-T10 Gray Release
|
|||
|
|
P26-T11 First-day Monitoring
|
|||
|
|
P26-T12 Release Tag v1.0.0
|
|||
|
|
P26-T13 STATUS更新
|
|||
|
|
P26-T14 最终Release Report
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Phase 26验收
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
登录正常
|
|||
|
|
实名正常
|
|||
|
|
审核正常
|
|||
|
|
推荐正常
|
|||
|
|
Mutual正常
|
|||
|
|
聊天正常
|
|||
|
|
Block正常
|
|||
|
|
红娘正常
|
|||
|
|
活动正常
|
|||
|
|
后台权限正常
|
|||
|
|
监控正常
|
|||
|
|
备份正常
|
|||
|
|
无严重生产错误
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第四部分:跨Phase关键测试任务
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 二十四、必须永久存在的自动化测试套件
|
|||
|
|
|
|||
|
|
建立:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
tests/invariants/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
至少:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
INV-001 Required不可自动放宽
|
|||
|
|
INV-002 未Mutual不可聊天
|
|||
|
|
INV-003 Block后双方不可互动
|
|||
|
|
INV-004 双向并发Like只创建一个Match
|
|||
|
|
INV-005 Activity最后一个名额不可超卖
|
|||
|
|
INV-006 单向活动意向不可泄露
|
|||
|
|
INV-007 红娘不能替用户Like
|
|||
|
|
INV-008 非授权Operator不能读取身份证
|
|||
|
|
INV-009 非案件上下文不能读取聊天
|
|||
|
|
INV-010 跨Organization不能越权
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
这些测试:
|
|||
|
|
|
|||
|
|
> 每次CI都运行。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 二十五、必须永久存在的权限测试矩阵
|
|||
|
|
|
|||
|
|
至少测试:
|
|||
|
|
|
|||
|
|
| Role | 用户资料 | 身份证 | Chat | Review | Matchmaker | Activity | Risk | Permission |
|
|||
|
|
|---|---:|---:|---:|---:|---:|---:|---:|---:|
|
|||
|
|
| super_admin | 按权限 | 特殊 | 特殊 | 是 | 是 | 是 | 是 | 是 |
|
|||
|
|
| platform_admin | 是 | 特殊 | 否 | 是 | 是 | 是 | 按授权 | 有限 |
|
|||
|
|
| organization_admin | 范围内 | 否 | 否 | 按授权 | 本机构 | 本机构 | 默认否 | 有限 |
|
|||
|
|
| reviewer | 审核必要 | 否 | 否 | 是 | 否 | 否 | 否 | 否 |
|
|||
|
|
| matchmaker | 服务必要 | 否 | 否 | 否 | 是 | 推荐 | 转交 | 否 |
|
|||
|
|
| activity_manager | 活动必要 | 否 | 否 | 否 | 否 | 是 | 转交 | 否 |
|
|||
|
|
| risk_operator | 案件必要 | 特殊 | 案件授权 | 否 | 摘要 | 摘要 | 是 | 否 |
|
|||
|
|
| volunteer | 否 | 否 | 否 | 否 | 否 | 签到 | 转交 | 否 |
|
|||
|
|
| data_viewer | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第五部分:Codex每阶段输出格式
|
|||
|
|
|
|||
|
|
每个Phase完成以后必须输出以下报告。
|
|||
|
|
|
|||
|
|
```markdown
|
|||
|
|
# Phase XX Completion Report
|
|||
|
|
|
|||
|
|
## Status
|
|||
|
|
Completed / Partial / Blocked
|
|||
|
|
|
|||
|
|
## Implemented
|
|||
|
|
- ...
|
|||
|
|
- ...
|
|||
|
|
|
|||
|
|
## Database Changes
|
|||
|
|
- Migration Vxxx
|
|||
|
|
|
|||
|
|
## API Changes
|
|||
|
|
- ...
|
|||
|
|
|
|||
|
|
## Frontend Changes
|
|||
|
|
- ...
|
|||
|
|
|
|||
|
|
## Tests
|
|||
|
|
- Unit:
|
|||
|
|
- Integration:
|
|||
|
|
- Permission:
|
|||
|
|
- Concurrency:
|
|||
|
|
- E2E:
|
|||
|
|
|
|||
|
|
## Test Results
|
|||
|
|
- PASS:
|
|||
|
|
- FAIL:
|
|||
|
|
|
|||
|
|
## Security Review
|
|||
|
|
- ...
|
|||
|
|
|
|||
|
|
## Known Issues
|
|||
|
|
- ...
|
|||
|
|
|
|||
|
|
## Pending Product Decisions
|
|||
|
|
- ...
|
|||
|
|
|
|||
|
|
## Regression Check
|
|||
|
|
- ...
|
|||
|
|
|
|||
|
|
## Docs Updated
|
|||
|
|
- AGENTS
|
|||
|
|
- STATUS
|
|||
|
|
- OpenAPI
|
|||
|
|
- CHANGELOG
|
|||
|
|
|
|||
|
|
## Next Phase
|
|||
|
|
Phase XX+1
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第六部分:Codex首轮实际执行任务
|
|||
|
|
|
|||
|
|
首次把本文档交给Codex后,不要让它直接执行26个Phase。
|
|||
|
|
|
|||
|
|
第一轮只执行以下任务。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 二十六、首轮任务01:仓库审计
|
|||
|
|
|
|||
|
|
如果仓库存在代码,输出:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
技术栈
|
|||
|
|
目录结构
|
|||
|
|
模块
|
|||
|
|
数据库
|
|||
|
|
API
|
|||
|
|
前端
|
|||
|
|
测试
|
|||
|
|
CI
|
|||
|
|
部署
|
|||
|
|
依赖
|
|||
|
|
安全现状
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 二十七、首轮任务02:Gap Analysis
|
|||
|
|
|
|||
|
|
建立:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
docs/GAP_ANALYSIS.md
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
格式:
|
|||
|
|
|
|||
|
|
| Domain | Existing | Required V1 | Gap | Action |
|
|||
|
|
|---|---|---|---|---|
|
|||
|
|
| Auth | ... | ... | ... | ... |
|
|||
|
|
| Match | ... | ... | ... | ... |
|
|||
|
|
|
|||
|
|
至少包括:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Auth
|
|||
|
|
Verification
|
|||
|
|
Profile
|
|||
|
|
Review
|
|||
|
|
Match
|
|||
|
|
Relationship
|
|||
|
|
Messaging
|
|||
|
|
Activity
|
|||
|
|
Matchmaker
|
|||
|
|
Risk
|
|||
|
|
RBAC
|
|||
|
|
Analytics
|
|||
|
|
Deployment
|
|||
|
|
Testing
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 二十八、首轮任务03:技术栈确认
|
|||
|
|
|
|||
|
|
如果空仓:
|
|||
|
|
|
|||
|
|
采用推荐栈。
|
|||
|
|
|
|||
|
|
如果非空:
|
|||
|
|
|
|||
|
|
原则:
|
|||
|
|
|
|||
|
|
> 优先保留成熟可复用现有技术。
|
|||
|
|
|
|||
|
|
只有明确阻碍项目实现才调整。
|
|||
|
|
|
|||
|
|
写:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
docs/decisions/ADR-001-technology-stack.md
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 二十九、首轮任务04:创建治理文件
|
|||
|
|
|
|||
|
|
必须创建:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
AGENTS.md
|
|||
|
|
docs/STATUS.md
|
|||
|
|
docs/PENDING_DECISIONS.md
|
|||
|
|
CHANGELOG.md
|
|||
|
|
README.md
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 三十、首轮任务05:建立Jira任务源文件
|
|||
|
|
|
|||
|
|
如果暂时没有真实Jira连接,则创建:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
docs/project/JIRA_BACKLOG.md
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
按本文档写入:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Phase
|
|||
|
|
Epic
|
|||
|
|
Story
|
|||
|
|
Task
|
|||
|
|
Priority
|
|||
|
|
Dependencies
|
|||
|
|
Acceptance Criteria
|
|||
|
|
Status
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
保证后续可以直接导入Jira。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 三十一、首轮任务06:Phase 01详细Task Breakdown
|
|||
|
|
|
|||
|
|
Codex把P01继续拆成:
|
|||
|
|
|
|||
|
|
> 0.5~1天左右粒度的工程任务。
|
|||
|
|
|
|||
|
|
不要把:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
完成整个Backend
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
当成一个Task。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 三十二、首轮任务07:建立测试骨架
|
|||
|
|
|
|||
|
|
创建:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
tests/
|
|||
|
|
unit/
|
|||
|
|
integration/
|
|||
|
|
api/
|
|||
|
|
permission/
|
|||
|
|
concurrency/
|
|||
|
|
e2e/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
并先实现:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Health Test
|
|||
|
|
Migration Test
|
|||
|
|
Permission Test基础
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 三十三、首轮任务08:执行Phase 01
|
|||
|
|
|
|||
|
|
完成后必须:
|
|||
|
|
|
|||
|
|
> 停止继续开发Phase 02。
|
|||
|
|
|
|||
|
|
先提交:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Phase 01 Completion Report
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
等待下一条开发指令。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第七部分:Jira优先级
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 三十四、P0
|
|||
|
|
|
|||
|
|
阻碍核心V1上线:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
登录
|
|||
|
|
实名
|
|||
|
|
审核
|
|||
|
|
匹配
|
|||
|
|
Mutual
|
|||
|
|
Chat
|
|||
|
|
Block
|
|||
|
|
权限
|
|||
|
|
风控
|
|||
|
|
活动核心
|
|||
|
|
红娘核心
|
|||
|
|
数据安全
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 三十五、P1
|
|||
|
|
|
|||
|
|
V1必须,但可以较后开发:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
图片聊天
|
|||
|
|
活动互选
|
|||
|
|
申诉
|
|||
|
|
Analytics
|
|||
|
|
高级通知
|
|||
|
|
运营增强
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 三十六、P2
|
|||
|
|
|
|||
|
|
可进入:
|
|||
|
|
|
|||
|
|
> 1.0.x
|
|||
|
|
|
|||
|
|
例如:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
MFA增强
|
|||
|
|
动态水印
|
|||
|
|
更多统计
|
|||
|
|
登录异常提醒
|
|||
|
|
高级风控规则
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第八部分:Bug优先级
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 三十七、Blocker
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
无法登录
|
|||
|
|
数据库损坏
|
|||
|
|
敏感数据泄露
|
|||
|
|
权限系统失效
|
|||
|
|
Match逻辑整体错误
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 三十八、Critical
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
未Mutual可聊天
|
|||
|
|
Block无效
|
|||
|
|
跨组织越权
|
|||
|
|
红娘看身份证
|
|||
|
|
普通管理员看聊天
|
|||
|
|
活动严重超卖
|
|||
|
|
重复Match
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 三十九、Major
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
筛选错误
|
|||
|
|
通知漏发
|
|||
|
|
统计严重错误
|
|||
|
|
部分图片异常
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 四十、Minor
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
UI局部错位
|
|||
|
|
非关键文案
|
|||
|
|
小体验问题
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第九部分:Go/No-Go
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 四十一、绝对No-Go
|
|||
|
|
|
|||
|
|
任何以下情况存在:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P0 Bug > 0
|
|||
|
|
未接受P1安全Bug > 0
|
|||
|
|
权限越权
|
|||
|
|
身份证明文
|
|||
|
|
Block失效
|
|||
|
|
Mutual并发错误
|
|||
|
|
活动容量错误
|
|||
|
|
数据库无备份
|
|||
|
|
恢复未验证
|
|||
|
|
无法Rollback
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
禁止生产上线。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 四十二、Go最低标准
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Core E2E通过
|
|||
|
|
权限矩阵通过
|
|||
|
|
隐私测试通过
|
|||
|
|
并发测试通过
|
|||
|
|
Backup Restore通过
|
|||
|
|
Rollback通过
|
|||
|
|
运营UAT通过
|
|||
|
|
P0=0
|
|||
|
|
Critical=0
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第十部分:开发过程中禁止出现的“捷径”
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 四十三、禁止直接赋予管理员全部权限
|
|||
|
|
|
|||
|
|
不得:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
if admin → allow everything
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 四十四、禁止把全部用户数据返回前端再隐藏
|
|||
|
|
|
|||
|
|
权限过滤:
|
|||
|
|
|
|||
|
|
> 必须后端完成。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 四十五、禁止用Redis作为Match事实数据
|
|||
|
|
|
|||
|
|
Redis只能缓存。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 四十六、禁止用前端判断Chat权限
|
|||
|
|
|
|||
|
|
服务端每条Message Send都重新检查。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 四十七、禁止为了推荐数量自动突破Required
|
|||
|
|
|
|||
|
|
没有候选:
|
|||
|
|
|
|||
|
|
> 返回无候选。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 四十八、禁止活动Pending直接算正式名额,除非未来规则明确修改
|
|||
|
|
|
|||
|
|
当前V1建议:
|
|||
|
|
|
|||
|
|
> Approved占正式名额。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 四十九、禁止把活动互选算成功牵手
|
|||
|
|
|
|||
|
|
必须严格区分。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 五十、禁止红娘后台存在“代用户喜欢”
|
|||
|
|
|
|||
|
|
完全不要开发这个按钮/API。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 五十一、禁止普通用户详情返回内部Risk Score
|
|||
|
|
|
|||
|
|
风险数据内部使用。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 五十二、禁止生产Debug接口
|
|||
|
|
|
|||
|
|
例如:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
/mock-user
|
|||
|
|
/create-match
|
|||
|
|
/test-login
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Production必须关闭或不存在。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第十一部分:项目长期维护规则
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 五十三、任何新需求首先判断
|
|||
|
|
|
|||
|
|
属于:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Bug
|
|||
|
|
V1缺失
|
|||
|
|
V1.0.x
|
|||
|
|
V1.1
|
|||
|
|
V2
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
不得直接塞进当前Phase。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 五十四、新需求必须先更新文档
|
|||
|
|
|
|||
|
|
顺序:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
需求确认
|
|||
|
|
↓
|
|||
|
|
设计更新
|
|||
|
|
↓
|
|||
|
|
STATUS/Pending更新
|
|||
|
|
↓
|
|||
|
|
Jira
|
|||
|
|
↓
|
|||
|
|
开发
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 五十五、任何重大架构变化必须ADR
|
|||
|
|
|
|||
|
|
例如:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
更换数据库
|
|||
|
|
更换认证模式
|
|||
|
|
引入MQ
|
|||
|
|
引入搜索引擎
|
|||
|
|
拆微服务
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
都必须:
|
|||
|
|
|
|||
|
|
> ADR。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 五十六、任何敏感数据新增必须回答
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
为什么需要?
|
|||
|
|
是否必要?
|
|||
|
|
谁能看?
|
|||
|
|
存多久?
|
|||
|
|
如何删除?
|
|||
|
|
如何加密?
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
回答不了:
|
|||
|
|
|
|||
|
|
> 不采集。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 五十七、任何算法新增必须回答
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
是否透明?
|
|||
|
|
是否可解释?
|
|||
|
|
是否涉及敏感推断?
|
|||
|
|
是否会覆盖Required?
|
|||
|
|
用户是否可控?
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 五十八、任何Operator权限新增必须回答
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
哪个角色需要?
|
|||
|
|
为什么?
|
|||
|
|
数据范围?
|
|||
|
|
是否敏感?
|
|||
|
|
是否审计?
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第十二部分:最终执行要求
|
|||
|
|
|
|||
|
|
Codex必须将整个项目理解为:
|
|||
|
|
|
|||
|
|
> **一个长期可运营的公益婚恋服务系统。**
|
|||
|
|
|
|||
|
|
而不是:
|
|||
|
|
|
|||
|
|
> “一个相亲小程序页面集合”。
|
|||
|
|
|
|||
|
|
本项目最重要的技术难点依次是:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
权限
|
|||
|
|
隐私
|
|||
|
|
状态
|
|||
|
|
双向关系
|
|||
|
|
并发一致性
|
|||
|
|
线下活动闭环
|
|||
|
|
人工红娘协同
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
不是页面数量。
|
|||
|
|
|
|||
|
|
因此整个开发过程中始终遵循:
|
|||
|
|
|
|||
|
|
> **正确优先于快。**
|
|||
|
|
|
|||
|
|
> **简单优先于炫技。**
|
|||
|
|
|
|||
|
|
> **安全优先于方便。**
|
|||
|
|
|
|||
|
|
> **配置优先于硬编码。**
|
|||
|
|
|
|||
|
|
> **测试优先于主观判断。**
|
|||
|
|
|
|||
|
|
> **文档优先于个人记忆。**
|
|||
|
|
|
|||
|
|
> **用户自主权优先于平台效率。**
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第十三部分:给Codex的首轮最终指令
|
|||
|
|
|
|||
|
|
现在开始执行本项目。
|
|||
|
|
|
|||
|
|
你本轮只允许完成以下工作:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
1. 审计当前仓库
|
|||
|
|
2. 输出Gap Analysis
|
|||
|
|
3. 确认技术栈
|
|||
|
|
4. 创建AGENTS.md
|
|||
|
|
5. 创建STATUS.md
|
|||
|
|
6. 创建PENDING_DECISIONS.md
|
|||
|
|
7. 创建JIRA_BACKLOG.md
|
|||
|
|
8. 建立测试目录
|
|||
|
|
9. 拆解Phase 01
|
|||
|
|
10. 完成Phase 01
|
|||
|
|
11. 完整运行Phase 01测试
|
|||
|
|
12. 输出Phase 01 Completion Report
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
本轮完成以后:
|
|||
|
|
|
|||
|
|
> **不要自动继续Phase 02。**
|
|||
|
|
|
|||
|
|
等待下一条明确开发指令。
|
|||
|
|
|
|||
|
|
如果发现任何需求冲突:
|
|||
|
|
|
|||
|
|
> 不擅自修改既有产品规则。
|
|||
|
|
|
|||
|
|
在:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
docs/PENDING_DECISIONS.md
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
记录并采用最小影响、可配置、可回滚的技术实现。
|
|||
|
|
|
|||
|
|
最终目标不是最快写完最多代码。
|
|||
|
|
|
|||
|
|
最终目标是:
|
|||
|
|
|
|||
|
|
> **每一个Phase完成以后项目都处于可运行、可验证、可继续接手的状态,并最终形成一套真实、安全、稳定、易维护的丹阳公益婚恋服务平台V1.0。**
|