2026-09-18 20:25:58 +08:00
|
|
|
|
> **⚠️ 已被取代(2026-09-18 头注)**:本文件为 V1.0 项目规则总纲(333 章),最高执行文件已由
|
|
|
|
|
|
> `docs/善缘丹阳 V1.1 WorkBuddy最终主启动提示词(整合版).md` 取代;V1.0 核心规则中仍生效的
|
|
|
|
|
|
> 部分已摘要进 `AGENTS.md`。本文件保留原位(`AGENTS_SUMMARY.md` 与历史报告仍援引),其余内容不再生效。
|
|
|
|
|
|
|
2026-09-09 22:05:00 +08:00
|
|
|
|
# 丹阳公益婚恋服务平台
|
2026-09-16 14:37:44 +08:00
|
|
|
|
# V1.0 WorkBuddy开发执行总指令、项目规则与任务拆解
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
版本:V1.0
|
|
|
|
|
|
文档级别:最高优先级开发执行文件
|
2026-09-16 14:37:44 +08:00
|
|
|
|
适用对象:WorkBuddy、研发人员、测试人员、后续维护人员
|
2026-09-09 22:05:00 +08:00
|
|
|
|
执行原则:严格继承既有设计,不擅自扩展,不擅自删减,不擅自重新定义产品
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一章 文档定位
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
本文件用于指导WorkBuddy完整开发:
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
> 丹阳公益婚恋服务平台 V1.0
|
|
|
|
|
|
|
|
|
|
|
|
本文件不是普通PRD。
|
|
|
|
|
|
|
|
|
|
|
|
它同时承担:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
产品总约束
|
|
|
|
|
|
+
|
|
|
|
|
|
技术总约束
|
|
|
|
|
|
+
|
|
|
|
|
|
开发顺序
|
|
|
|
|
|
+
|
|
|
|
|
|
项目长期记忆
|
|
|
|
|
|
+
|
|
|
|
|
|
不可变规则
|
|
|
|
|
|
+
|
|
|
|
|
|
验收标准
|
|
|
|
|
|
+
|
|
|
|
|
|
任务拆解
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
WorkBuddy在整个项目开发周期内,应将本文件视为:
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
> **项目最高执行规则。**
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二章 总开发目标
|
|
|
|
|
|
|
|
|
|
|
|
开发一套:
|
|
|
|
|
|
|
|
|
|
|
|
> 面向丹阳市成年单身人士,由公益组织参与运营的实名制公益婚恋服务平台。
|
|
|
|
|
|
|
|
|
|
|
|
核心服务路径:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
实名认证
|
|
|
|
|
|
↓
|
|
|
|
|
|
人工资料审核
|
|
|
|
|
|
↓
|
|
|
|
|
|
系统精准匹配
|
|
|
|
|
|
↓
|
|
|
|
|
|
用户双向喜欢
|
|
|
|
|
|
↓
|
|
|
|
|
|
平台内安全聊天
|
|
|
|
|
|
↓
|
|
|
|
|
|
公益红娘辅助
|
|
|
|
|
|
↓
|
|
|
|
|
|
公益线下相亲活动
|
|
|
|
|
|
↓
|
|
|
|
|
|
双方进一步了解
|
|
|
|
|
|
↓
|
|
|
|
|
|
成功牵手
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第三章 产品核心定位
|
|
|
|
|
|
|
|
|
|
|
|
正式定位:
|
|
|
|
|
|
|
|
|
|
|
|
> 面向丹阳市成年单身人士,由公益组织参与运营的实名制公益婚恋服务平台,通过实名认证、人工审核、智能匹配、双向喜欢、在线沟通、公益红娘和线下相亲活动,帮助本地单身人士安全、高效、真实地寻找合适伴侣。
|
|
|
|
|
|
|
|
|
|
|
|
核心价值:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
真实
|
|
|
|
|
|
公益
|
|
|
|
|
|
本地
|
|
|
|
|
|
安全
|
|
|
|
|
|
高效
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第四章 V1最高产品原则
|
|
|
|
|
|
|
|
|
|
|
|
所有研发决策必须服从:
|
|
|
|
|
|
|
|
|
|
|
|
> 用户简单易用。
|
|
|
|
|
|
|
|
|
|
|
|
> 工作人员容易运营。
|
|
|
|
|
|
|
|
|
|
|
|
> 数据安全优先。
|
|
|
|
|
|
|
|
|
|
|
|
> 用户自主决定。
|
|
|
|
|
|
|
|
|
|
|
|
> 系统帮助而不是操控。
|
|
|
|
|
|
|
|
|
|
|
|
> 公益属性优先。
|
|
|
|
|
|
|
|
|
|
|
|
> 本地服务优先。
|
|
|
|
|
|
|
|
|
|
|
|
> 低开发复杂度。
|
|
|
|
|
|
|
|
|
|
|
|
> 易维护、易升级。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第五章 明确禁止偏离产品方向
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
WorkBuddy不得将平台开发成:
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
商业婚恋VIP平台
|
|
|
|
|
|
陌生人社交平台
|
|
|
|
|
|
直播平台
|
|
|
|
|
|
短视频平台
|
|
|
|
|
|
社区平台
|
|
|
|
|
|
内容平台
|
|
|
|
|
|
游戏化交友平台
|
|
|
|
|
|
付费聊天平台
|
|
|
|
|
|
婚介CRM销售系统
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第六章 V1用户收费规则
|
|
|
|
|
|
|
|
|
|
|
|
用户:
|
|
|
|
|
|
|
|
|
|
|
|
> 免费。
|
|
|
|
|
|
|
|
|
|
|
|
V1禁止:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
VIP
|
|
|
|
|
|
会员
|
|
|
|
|
|
金币
|
|
|
|
|
|
礼物
|
|
|
|
|
|
付费曝光
|
|
|
|
|
|
超级喜欢
|
|
|
|
|
|
付费聊天
|
|
|
|
|
|
付费联系方式
|
|
|
|
|
|
付费活动
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
除非未来产品负责人明确重新立项。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第七章 用户准入
|
|
|
|
|
|
|
|
|
|
|
|
用户必须:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
18周岁以上
|
|
|
|
|
|
+
|
|
|
|
|
|
微信登录
|
|
|
|
|
|
+
|
|
|
|
|
|
手机号
|
|
|
|
|
|
+
|
|
|
|
|
|
姓名/身份证实名认证
|
|
|
|
|
|
+
|
|
|
|
|
|
人工资料审核
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
未成年人:
|
|
|
|
|
|
|
|
|
|
|
|
> 禁止进入婚恋服务。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第八章 重要法律语义
|
|
|
|
|
|
|
|
|
|
|
|
必须区分:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
成年人
|
|
|
|
|
|
≠
|
|
|
|
|
|
达到法定结婚登记年龄
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
产品不得将18岁描述为:
|
|
|
|
|
|
|
|
|
|
|
|
> 已具备法定结婚登记资格。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第九章 实名认证语义
|
|
|
|
|
|
|
|
|
|
|
|
“已实名认证”只代表:
|
|
|
|
|
|
|
|
|
|
|
|
> 用户身份通过实名认证。
|
|
|
|
|
|
|
|
|
|
|
|
不代表:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
婚姻状态已经官方验证
|
|
|
|
|
|
职业已经验证
|
|
|
|
|
|
收入已经验证
|
|
|
|
|
|
所有资料100%真实
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第十章 婚姻状态
|
|
|
|
|
|
|
|
|
|
|
|
当前V1:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
未婚
|
|
|
|
|
|
离异
|
|
|
|
|
|
丧偶
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
属于:
|
|
|
|
|
|
|
|
|
|
|
|
> 用户自行申报 + 人工资料审核。
|
|
|
|
|
|
|
|
|
|
|
|
不得宣传:
|
|
|
|
|
|
|
|
|
|
|
|
> 官方婚姻状态认证。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第十一章 用户端技术形态
|
|
|
|
|
|
|
|
|
|
|
|
必须开发:
|
|
|
|
|
|
|
|
|
|
|
|
> 微信小程序。
|
|
|
|
|
|
|
|
|
|
|
|
底部导航固定:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
首页
|
|
|
|
|
|
找对象
|
|
|
|
|
|
消息
|
|
|
|
|
|
活动
|
|
|
|
|
|
我的
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
不得擅自改成其他导航结构。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第十二章 后台技术形态
|
|
|
|
|
|
|
|
|
|
|
|
推荐并按V1执行:
|
|
|
|
|
|
|
|
|
|
|
|
> 一个统一Web后台。
|
|
|
|
|
|
|
|
|
|
|
|
通过:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Operator
|
|
|
|
|
|
+
|
|
|
|
|
|
Role
|
|
|
|
|
|
+
|
|
|
|
|
|
Permission
|
|
|
|
|
|
+
|
|
|
|
|
|
Data Scope
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
分别提供:
|
|
|
|
|
|
|
|
|
|
|
|
- 公益红娘工作台
|
|
|
|
|
|
- 运营后台
|
|
|
|
|
|
- 平台管理后台
|
|
|
|
|
|
|
|
|
|
|
|
不需要开发三套完全独立后台。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第十三章 用户核心资料
|
|
|
|
|
|
|
|
|
|
|
|
必须字段:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
性别
|
|
|
|
|
|
出生年月
|
|
|
|
|
|
所在区域
|
|
|
|
|
|
身高
|
|
|
|
|
|
婚姻状况
|
|
|
|
|
|
是否有子女
|
|
|
|
|
|
学历
|
|
|
|
|
|
职业
|
|
|
|
|
|
头像
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
选填:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
兴趣
|
|
|
|
|
|
性格/生活方式
|
|
|
|
|
|
吸烟
|
|
|
|
|
|
饮酒
|
|
|
|
|
|
婚姻态度
|
|
|
|
|
|
结婚计划
|
|
|
|
|
|
自我介绍
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第十四章 用户资料输入原则
|
|
|
|
|
|
|
|
|
|
|
|
优先:
|
|
|
|
|
|
|
|
|
|
|
|
> 选择 / 标签 / Picker。
|
|
|
|
|
|
|
|
|
|
|
|
减少:
|
|
|
|
|
|
|
|
|
|
|
|
> 大段人工输入。
|
|
|
|
|
|
|
|
|
|
|
|
不要做超长复杂注册表。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第十五章 用户隐私字段
|
|
|
|
|
|
|
|
|
|
|
|
普通用户不得看到:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
真实姓名
|
|
|
|
|
|
完整手机号
|
|
|
|
|
|
微信号
|
|
|
|
|
|
身份证
|
|
|
|
|
|
精确地址
|
|
|
|
|
|
精确单位
|
|
|
|
|
|
内部风险信息
|
|
|
|
|
|
举报记录
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第十六章 择偶条件
|
|
|
|
|
|
|
|
|
|
|
|
基础:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
年龄
|
|
|
|
|
|
身高
|
|
|
|
|
|
地区
|
|
|
|
|
|
婚姻状况
|
|
|
|
|
|
学历
|
|
|
|
|
|
是否接受有子女
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
扩展:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
职业
|
|
|
|
|
|
吸烟
|
|
|
|
|
|
饮酒
|
|
|
|
|
|
婚姻计划
|
|
|
|
|
|
定居意愿
|
|
|
|
|
|
生活方式
|
|
|
|
|
|
兴趣
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第十七章 条件语义不可改变
|
|
|
|
|
|
|
|
|
|
|
|
每一项条件支持:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
必须符合
|
|
|
|
|
|
最好符合
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Required:
|
|
|
|
|
|
|
|
|
|
|
|
> 不符合直接淘汰。
|
|
|
|
|
|
|
|
|
|
|
|
Preferred:
|
|
|
|
|
|
|
|
|
|
|
|
> 可参与评分。
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
WorkBuddy不得把Required自动降级。
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第十八章 V1匹配算法
|
|
|
|
|
|
|
|
|
|
|
|
必须采用:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
资格过滤
|
|
|
|
|
|
+
|
|
|
|
|
|
双向Required
|
|
|
|
|
|
+
|
|
|
|
|
|
双向规则评分
|
|
|
|
|
|
+
|
|
|
|
|
|
推荐排序
|
|
|
|
|
|
+
|
|
|
|
|
|
推荐理由
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
不采用:
|
|
|
|
|
|
|
|
|
|
|
|
- AI黑盒匹配
|
|
|
|
|
|
- 大模型判断婚姻幸福
|
|
|
|
|
|
- 向量数据库
|
|
|
|
|
|
- 深度学习推荐
|
|
|
|
|
|
- 颜值评分
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第十九章 双向匹配
|
|
|
|
|
|
|
|
|
|
|
|
算法必须同时计算:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
A → B
|
|
|
|
|
|
B → A
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
不是只满足A。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二十章 MutualScore
|
|
|
|
|
|
|
|
|
|
|
|
建议公式实现为配置:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
MutualScore
|
|
|
|
|
|
=
|
|
|
|
|
|
0.6 × min(scoreAB, scoreBA)
|
|
|
|
|
|
+
|
|
|
|
|
|
0.4 × average(scoreAB, scoreBA)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
公式版本必须:
|
|
|
|
|
|
|
|
|
|
|
|
> 可版本化。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二十一章 算法参数特别说明
|
|
|
|
|
|
|
|
|
|
|
|
此前文档中出现过:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
6人每日推荐
|
|
|
|
|
|
60分阈值
|
|
|
|
|
|
100分权重
|
|
|
|
|
|
180天Pass冷却
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
这些属于:
|
|
|
|
|
|
|
|
|
|
|
|
> 示例/建议参数。
|
|
|
|
|
|
|
|
|
|
|
|
不得硬编码为不可修改业务常量。
|
|
|
|
|
|
|
|
|
|
|
|
必须通过:
|
|
|
|
|
|
|
|
|
|
|
|
> Config / Match Rule Version
|
|
|
|
|
|
|
|
|
|
|
|
实现。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二十二章 推荐前台展示
|
|
|
|
|
|
|
|
|
|
|
|
用户端不得显示:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
92%
|
|
|
|
|
|
87.5分
|
|
|
|
|
|
AI匹配成功率
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
只显示:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
很合适
|
|
|
|
|
|
比较合适
|
|
|
|
|
|
值得了解
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
以及:
|
|
|
|
|
|
|
|
|
|
|
|
> 为什么推荐。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二十三章 推荐理由
|
|
|
|
|
|
|
|
|
|
|
|
必须来源真实资料。
|
|
|
|
|
|
|
|
|
|
|
|
例如:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
年龄符合双方条件
|
|
|
|
|
|
都长期生活在丹阳
|
|
|
|
|
|
婚姻计划接近
|
|
|
|
|
|
双方都不吸烟
|
|
|
|
|
|
有共同兴趣
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
禁止AI虚构。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二十四章 首页
|
|
|
|
|
|
|
|
|
|
|
|
首页必须:
|
|
|
|
|
|
|
|
|
|
|
|
> 推荐优先。
|
|
|
|
|
|
|
|
|
|
|
|
不要开发:
|
|
|
|
|
|
|
|
|
|
|
|
- 新闻
|
|
|
|
|
|
- Feed
|
|
|
|
|
|
- 广告
|
|
|
|
|
|
- 热门榜
|
|
|
|
|
|
- 用户排行榜
|
|
|
|
|
|
- 直播入口
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二十五章 用户关系
|
|
|
|
|
|
|
|
|
|
|
|
单向:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
neutral
|
|
|
|
|
|
liked
|
|
|
|
|
|
passed
|
|
|
|
|
|
blocked
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
双向:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
mutual_match
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二十六章 Mutual Match
|
|
|
|
|
|
|
|
|
|
|
|
只有双方Like:
|
|
|
|
|
|
|
|
|
|
|
|
> 才创建Match。
|
|
|
|
|
|
|
|
|
|
|
|
必须保证并发情况下:
|
|
|
|
|
|
|
|
|
|
|
|
> 同一对用户只有一个有效Match实例/有效关系阶段。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二十七章 Chat准入
|
|
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Mutual Match
|
|
|
|
|
|
+
|
|
|
|
|
|
双方账号允许
|
|
|
|
|
|
+
|
|
|
|
|
|
无Block
|
|
|
|
|
|
+
|
|
|
|
|
|
Conversation active
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
才允许聊天。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二十八章 聊天V1支持
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
文字
|
|
|
|
|
|
图片
|
|
|
|
|
|
Emoji
|
|
|
|
|
|
系统消息
|
|
|
|
|
|
安全提示
|
|
|
|
|
|
未读
|
|
|
|
|
|
历史分页
|
|
|
|
|
|
失败重试
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二十九章 V1聊天禁止开发
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
语音消息
|
|
|
|
|
|
实时语音通话
|
|
|
|
|
|
视频
|
|
|
|
|
|
群聊
|
|
|
|
|
|
红包
|
|
|
|
|
|
转账
|
|
|
|
|
|
文件
|
|
|
|
|
|
阅后即焚
|
|
|
|
|
|
已读回执展示
|
|
|
|
|
|
正在输入
|
|
|
|
|
|
AI代聊
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第三十章 聊天发送架构
|
|
|
|
|
|
|
|
|
|
|
|
V1采用:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
REST发送
|
|
|
|
|
|
+
|
|
|
|
|
|
WebSocket接收
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
不要为了炫技改成全WebSocket协议。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第三十一章 消息持久化原则
|
|
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
先落PostgreSQL
|
|
|
|
|
|
↓
|
|
|
|
|
|
再实时推送
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
推送失败:
|
|
|
|
|
|
|
|
|
|
|
|
> 消息仍然成功。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第三十二章 消息幂等
|
|
|
|
|
|
|
|
|
|
|
|
每条消息:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
senderId + clientMessageId
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
唯一。
|
|
|
|
|
|
|
|
|
|
|
|
弱网重试:
|
|
|
|
|
|
|
|
|
|
|
|
> 不得重复消息。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第三十三章 Block
|
|
|
|
|
|
|
|
|
|
|
|
Block最高优先级。
|
|
|
|
|
|
|
|
|
|
|
|
发生后立即:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
停止聊天
|
|
|
|
|
|
排除推荐
|
|
|
|
|
|
排除Search
|
|
|
|
|
|
排除红娘候选
|
|
|
|
|
|
停止互相可见
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第三十四章 Unblock
|
|
|
|
|
|
|
|
|
|
|
|
解除Block后:
|
|
|
|
|
|
|
|
|
|
|
|
不得自动:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
恢复Like
|
|
|
|
|
|
恢复Match
|
|
|
|
|
|
恢复Conversation
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
重新建立关系必须重新走业务流程。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第三十五章 Unmatch
|
|
|
|
|
|
|
|
|
|
|
|
解除匹配后:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Match失效
|
|
|
|
|
|
Conversation只读
|
|
|
|
|
|
停止新消息
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Unmatch:
|
|
|
|
|
|
|
|
|
|
|
|
> 不等于Block。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第三十六章 RelationshipStatus
|
|
|
|
|
|
|
|
|
|
|
|
此前技术模型:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
searching
|
|
|
|
|
|
getting_to_know
|
|
|
|
|
|
paused
|
|
|
|
|
|
matched_successfully
|
|
|
|
|
|
service_exited
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
属于:
|
|
|
|
|
|
|
|
|
|
|
|
> 技术建议状态模型。
|
|
|
|
|
|
|
|
|
|
|
|
具体代码可采用等义命名,但不得随意扩展产品含义。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第三十七章 Paused
|
|
|
|
|
|
|
|
|
|
|
|
暂停寻找:
|
|
|
|
|
|
|
|
|
|
|
|
> 不进入新推荐。
|
|
|
|
|
|
|
|
|
|
|
|
但:
|
|
|
|
|
|
|
|
|
|
|
|
> 已有聊天保留。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第三十八章 Getting To Know
|
|
|
|
|
|
|
|
|
|
|
|
“正在了解”是否自动暂停其他推荐:
|
|
|
|
|
|
|
|
|
|
|
|
> 不能硬编码。
|
|
|
|
|
|
|
|
|
|
|
|
应由:
|
|
|
|
|
|
|
|
|
|
|
|
- 用户选择
|
|
|
|
|
|
- 配置
|
|
|
|
|
|
|
|
|
|
|
|
决定。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第三十九章 Successful
|
|
|
|
|
|
|
|
|
|
|
|
成功牵手:
|
|
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
> 一方发起 + 对方确认。
|
|
|
|
|
|
|
|
|
|
|
|
不能:
|
|
|
|
|
|
|
|
|
|
|
|
- 红娘确认
|
|
|
|
|
|
- 管理员确认
|
|
|
|
|
|
- 系统自动确认
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第四十章 公益活动
|
|
|
|
|
|
|
|
|
|
|
|
必须支持:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
活动列表
|
|
|
|
|
|
活动详情
|
|
|
|
|
|
报名
|
|
|
|
|
|
资格检查
|
|
|
|
|
|
人工审核
|
|
|
|
|
|
报名结果
|
|
|
|
|
|
签到
|
|
|
|
|
|
反馈
|
|
|
|
|
|
活动互选
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第四十一章 活动名额
|
|
|
|
|
|
|
|
|
|
|
|
必须支持:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
总人数
|
|
|
|
|
|
可选性别名额
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
性别名额:
|
|
|
|
|
|
|
|
|
|
|
|
> 配置项。
|
|
|
|
|
|
|
|
|
|
|
|
不能写死每场都50:50。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第四十二章 Activity Pending
|
|
|
|
|
|
|
|
|
|
|
|
V1建议:
|
|
|
|
|
|
|
|
|
|
|
|
> Pending不占正式名额。
|
|
|
|
|
|
|
|
|
|
|
|
Approved:
|
|
|
|
|
|
|
|
|
|
|
|
> 占正式名额。
|
|
|
|
|
|
|
|
|
|
|
|
审核通过必须事务检查剩余名额。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第四十三章 活动签到
|
|
|
|
|
|
|
|
|
|
|
|
采用:
|
|
|
|
|
|
|
|
|
|
|
|
> 短期签名二维码Token。
|
|
|
|
|
|
|
|
|
|
|
|
不能二维码直接放:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
身份证
|
|
|
|
|
|
手机号
|
|
|
|
|
|
userId明文
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第四十四章 活动互选
|
|
|
|
|
|
|
|
|
|
|
|
必须独立表:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
activity_interests
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
不能在feedback中只放一个interestedUserId。
|
|
|
|
|
|
|
|
|
|
|
|
因为用户可能:
|
|
|
|
|
|
|
|
|
|
|
|
> 选择多个意向对象。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第四十五章 活动意向隐私
|
|
|
|
|
|
|
|
|
|
|
|
A选择B但B没选A:
|
|
|
|
|
|
|
|
|
|
|
|
> B不知道。
|
|
|
|
|
|
|
|
|
|
|
|
双方选择:
|
|
|
|
|
|
|
|
|
|
|
|
> 才产生Match/通知。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第四十六章 活动互选不是成功牵手
|
|
|
|
|
|
|
|
|
|
|
|
只能表达:
|
|
|
|
|
|
|
|
|
|
|
|
> 双方愿意进一步了解。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第四十七章 公益红娘
|
|
|
|
|
|
|
|
|
|
|
|
用户可申请:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
推荐合适对象
|
|
|
|
|
|
调整择偶条件
|
|
|
|
|
|
联系意向对象
|
|
|
|
|
|
参加活动
|
|
|
|
|
|
长期无匹配
|
|
|
|
|
|
聊天帮助
|
|
|
|
|
|
其他
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第四十八章 红娘核心原则
|
|
|
|
|
|
|
|
|
|
|
|
红娘:
|
|
|
|
|
|
|
|
|
|
|
|
> 可以推荐。
|
|
|
|
|
|
|
|
|
|
|
|
不能:
|
|
|
|
|
|
|
|
|
|
|
|
> 替用户Like。
|
|
|
|
|
|
|
|
|
|
|
|
红娘:
|
|
|
|
|
|
|
|
|
|
|
|
> 可以辅助联系。
|
|
|
|
|
|
|
|
|
|
|
|
不能:
|
|
|
|
|
|
|
|
|
|
|
|
> 私自提供手机号。
|
|
|
|
|
|
|
|
|
|
|
|
红娘:
|
|
|
|
|
|
|
|
|
|
|
|
> 可以提供聊天建议。
|
|
|
|
|
|
|
|
|
|
|
|
不能:
|
|
|
|
|
|
|
|
|
|
|
|
> 看完整私人聊天。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第四十九章 红娘候选来源
|
|
|
|
|
|
|
|
|
|
|
|
必须调用:
|
|
|
|
|
|
|
|
|
|
|
|
> Match Engine。
|
|
|
|
|
|
|
|
|
|
|
|
红娘不能绕过Required搜索全库强推。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第五十章 红娘推荐
|
|
|
|
|
|
|
|
|
|
|
|
推荐前服务端必须二次检查:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
目标账号
|
|
|
|
|
|
审核
|
|
|
|
|
|
Block
|
|
|
|
|
|
Relationship
|
|
|
|
|
|
Required
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第五十一章 红娘联系意向对象
|
|
|
|
|
|
|
|
|
|
|
|
V1采用保守实现:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
A明确请求
|
|
|
|
|
|
↓
|
|
|
|
|
|
红娘触发平台中性邀请
|
|
|
|
|
|
↓
|
|
|
|
|
|
B自行查看/拒绝
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
不得:
|
|
|
|
|
|
|
|
|
|
|
|
> 自动给A或红娘释放B联系方式。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第五十二章 红娘服务记录
|
|
|
|
|
|
|
|
|
|
|
|
每次正式跟进:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
时间
|
|
|
|
|
|
渠道
|
|
|
|
|
|
摘要
|
|
|
|
|
|
结果
|
|
|
|
|
|
下一步
|
|
|
|
|
|
下次跟进
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
必须结构化保存。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第五十三章 红娘不能看到
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
身份证
|
|
|
|
|
|
私人聊天
|
|
|
|
|
|
举报证据
|
|
|
|
|
|
无关风险调查
|
|
|
|
|
|
精确住址
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第五十四章 后台Operator
|
|
|
|
|
|
|
|
|
|
|
|
所有工作人员统一:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
operators
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
不要创建:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
reviewer_accounts
|
|
|
|
|
|
matchmaker_accounts
|
|
|
|
|
|
volunteer_accounts
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
多套账号体系。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第五十五章 V1角色
|
|
|
|
|
|
|
|
|
|
|
|
建议:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
super_admin
|
|
|
|
|
|
platform_admin
|
|
|
|
|
|
organization_admin
|
|
|
|
|
|
reviewer
|
|
|
|
|
|
matchmaker
|
|
|
|
|
|
activity_manager
|
|
|
|
|
|
risk_operator
|
|
|
|
|
|
volunteer
|
|
|
|
|
|
data_viewer
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第五十六章 权限结构
|
|
|
|
|
|
|
|
|
|
|
|
必须采用:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
RBAC
|
|
|
|
|
|
+
|
|
|
|
|
|
Data Scope
|
|
|
|
|
|
+
|
|
|
|
|
|
Sensitive Permission
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第五十七章 Data Scope
|
|
|
|
|
|
|
|
|
|
|
|
至少支持:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
platform
|
|
|
|
|
|
organization
|
|
|
|
|
|
assigned
|
|
|
|
|
|
self
|
|
|
|
|
|
activity_scope
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第五十八章 用户不属于某个机构私有
|
|
|
|
|
|
|
|
|
|
|
|
禁止简单设计:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
users.organization_id
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
作为用户唯一归属。
|
|
|
|
|
|
|
|
|
|
|
|
用户是:
|
|
|
|
|
|
|
|
|
|
|
|
> 平台用户。
|
|
|
|
|
|
|
|
|
|
|
|
组织通过:
|
|
|
|
|
|
|
|
|
|
|
|
- 活动
|
|
|
|
|
|
- 红娘服务
|
|
|
|
|
|
- 审核任务
|
|
|
|
|
|
- 授权
|
|
|
|
|
|
|
|
|
|
|
|
获得必要访问。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第五十九章 机构之间
|
|
|
|
|
|
|
|
|
|
|
|
机构合作:
|
|
|
|
|
|
|
|
|
|
|
|
> 不代表数据完全共享。
|
|
|
|
|
|
|
|
|
|
|
|
必须按业务关系限制。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第六十章 后台权限必须服务端执行
|
|
|
|
|
|
|
|
|
|
|
|
不能:
|
|
|
|
|
|
|
|
|
|
|
|
> 只隐藏菜单。
|
|
|
|
|
|
|
|
|
|
|
|
每个API:
|
|
|
|
|
|
|
|
|
|
|
|
必须检查:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Authentication
|
|
|
|
|
|
Permission
|
|
|
|
|
|
Data Scope
|
|
|
|
|
|
Sensitive Permission
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第六十一章 聊天隐私
|
|
|
|
|
|
|
|
|
|
|
|
后台普通用户详情中:
|
|
|
|
|
|
|
|
|
|
|
|
> 禁止“聊天记录”Tab。
|
|
|
|
|
|
|
|
|
|
|
|
只有风控案件场景:
|
|
|
|
|
|
|
|
|
|
|
|
> 才允许有限访问。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第六十二章 敏感访问
|
|
|
|
|
|
|
|
|
|
|
|
查看:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
完整身份证
|
|
|
|
|
|
风控证据
|
|
|
|
|
|
案件聊天
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
- 特殊权限
|
|
|
|
|
|
- 原因
|
|
|
|
|
|
- SensitiveAccessLog
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第六十三章 用户数据安全
|
|
|
|
|
|
|
|
|
|
|
|
身份证:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
id_number_enc
|
|
|
|
|
|
+
|
|
|
|
|
|
id_number_hash
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
手机:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
phone_enc
|
|
|
|
|
|
+
|
|
|
|
|
|
phone_hash
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
禁止生产明文。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第六十四章 WeChat账号数据
|
|
|
|
|
|
|
|
|
|
|
|
不要仅:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
users.openid
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
推荐:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
user_wechat_accounts
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
唯一:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
app_id + openid
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
unionid允许为空。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第六十五章 实名Provider数据
|
|
|
|
|
|
|
|
|
|
|
|
只保留:
|
|
|
|
|
|
|
|
|
|
|
|
> 业务必要结果。
|
|
|
|
|
|
|
|
|
|
|
|
不要默认存储:
|
|
|
|
|
|
|
|
|
|
|
|
> 第三方完整原始响应。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第六十六章 用户照片
|
|
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
> Private Object Storage。
|
|
|
|
|
|
|
|
|
|
|
|
通过:
|
|
|
|
|
|
|
|
|
|
|
|
> Signed URL。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第六十七章 图片处理
|
|
|
|
|
|
|
|
|
|
|
|
至少:
|
|
|
|
|
|
|
|
|
|
|
|
- MIME检查
|
|
|
|
|
|
- Magic Number
|
|
|
|
|
|
- 大小限制
|
|
|
|
|
|
- 图片解码
|
|
|
|
|
|
- EXIF清理
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第六十八章 数据库
|
|
|
|
|
|
|
|
|
|
|
|
V1推荐:
|
|
|
|
|
|
|
|
|
|
|
|
> PostgreSQL。
|
|
|
|
|
|
|
|
|
|
|
|
具体技术栈仍可根据最终后端语言确认。
|
|
|
|
|
|
|
|
|
|
|
|
但数据模型和约束不可改变业务含义。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第六十九章 Redis
|
|
|
|
|
|
|
|
|
|
|
|
只用于:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Cache
|
|
|
|
|
|
Session
|
|
|
|
|
|
Rate Limit
|
|
|
|
|
|
WebSocket
|
|
|
|
|
|
临时状态
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
不得成为:
|
|
|
|
|
|
|
|
|
|
|
|
> Match等业务事实唯一数据源。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第七十章 Backend架构
|
|
|
|
|
|
|
|
|
|
|
|
V1采用:
|
|
|
|
|
|
|
|
|
|
|
|
> Modular Monolith。
|
|
|
|
|
|
|
|
|
|
|
|
不要擅自拆微服务。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第七十一章 模块
|
|
|
|
|
|
|
|
|
|
|
|
至少:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Auth
|
|
|
|
|
|
User
|
|
|
|
|
|
Verification
|
|
|
|
|
|
Profile
|
|
|
|
|
|
Review
|
|
|
|
|
|
Match
|
|
|
|
|
|
Relationship
|
|
|
|
|
|
Messaging
|
|
|
|
|
|
Activity
|
|
|
|
|
|
Matchmaker
|
|
|
|
|
|
Risk
|
|
|
|
|
|
Notification
|
|
|
|
|
|
Organization
|
|
|
|
|
|
Permission
|
|
|
|
|
|
Analytics
|
|
|
|
|
|
Audit
|
|
|
|
|
|
Config
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第七十二章 模块之间规则
|
|
|
|
|
|
|
|
|
|
|
|
禁止:
|
|
|
|
|
|
|
|
|
|
|
|
> Module A直接跨模块修改Module B表。
|
|
|
|
|
|
|
|
|
|
|
|
通过:
|
|
|
|
|
|
|
|
|
|
|
|
> Service / Domain接口。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第七十三章 后端语言
|
|
|
|
|
|
|
|
|
|
|
|
此前推荐:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Java 21 + Spring Boot 3.x
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
或者:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Node.js + NestJS
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
尚未锁死。
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
WorkBuddy如果当前仓库没有既有技术栈:
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
优先建议:
|
|
|
|
|
|
|
|
|
|
|
|
> Java 21 + Spring Boot 3.x + PostgreSQL + Redis。
|
|
|
|
|
|
|
|
|
|
|
|
原因:
|
|
|
|
|
|
|
|
|
|
|
|
- 权限
|
|
|
|
|
|
- 事务
|
|
|
|
|
|
- 状态机
|
|
|
|
|
|
- 长期维护
|
|
|
|
|
|
- 国内团队适配
|
|
|
|
|
|
|
|
|
|
|
|
但若用户后续明确指定技术栈:
|
|
|
|
|
|
|
|
|
|
|
|
以用户指令为准。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第七十四章 前端技术
|
|
|
|
|
|
|
|
|
|
|
|
微信小程序:
|
|
|
|
|
|
|
|
|
|
|
|
优先:
|
|
|
|
|
|
|
|
|
|
|
|
> 原生微信小程序或成熟稳定框架。
|
|
|
|
|
|
|
|
|
|
|
|
不要为了技术炫技引入过重跨端体系。
|
|
|
|
|
|
|
|
|
|
|
|
后台:
|
|
|
|
|
|
|
|
|
|
|
|
> Vue 3 或 React均可。
|
|
|
|
|
|
|
|
|
|
|
|
如果无既有代码:
|
|
|
|
|
|
|
|
|
|
|
|
建议:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Vue 3
|
|
|
|
|
|
TypeScript
|
|
|
|
|
|
Vite
|
|
|
|
|
|
Pinia
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第七十五章 组件库
|
|
|
|
|
|
|
|
|
|
|
|
后台可采用:
|
|
|
|
|
|
|
|
|
|
|
|
> Element Plus
|
|
|
|
|
|
|
|
|
|
|
|
或等价成熟组件库。
|
|
|
|
|
|
|
|
|
|
|
|
用户小程序:
|
|
|
|
|
|
|
|
|
|
|
|
> 自建统一轻量组件。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第七十六章 Design Token
|
|
|
|
|
|
|
|
|
|
|
|
必须继承此前Design Token规范。
|
|
|
|
|
|
|
|
|
|
|
|
页面不能:
|
|
|
|
|
|
|
|
|
|
|
|
> 每个开发者自己写一套颜色、间距、圆角。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第七十七章 UI原则
|
|
|
|
|
|
|
|
|
|
|
|
用户端:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
简单
|
|
|
|
|
|
温和
|
|
|
|
|
|
可信
|
|
|
|
|
|
公益
|
|
|
|
|
|
非商业化
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
避免:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
大量粉红
|
|
|
|
|
|
皇冠
|
|
|
|
|
|
钻石
|
|
|
|
|
|
金币
|
|
|
|
|
|
火焰
|
|
|
|
|
|
排行榜
|
|
|
|
|
|
夜店风
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第七十八章 页面架构
|
|
|
|
|
|
|
|
|
|
|
|
小程序核心路由必须继承既有U01-U48设计。
|
|
|
|
|
|
|
|
|
|
|
|
不得随意合并导致业务缺失。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第七十九章 用户启动路由优先级
|
|
|
|
|
|
|
|
|
|
|
|
服务端状态判断:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
1 登录
|
|
|
|
|
|
2 手机
|
|
|
|
|
|
3 实名
|
|
|
|
|
|
4 资料完整
|
|
|
|
|
|
5 审核
|
|
|
|
|
|
6 账号风险
|
|
|
|
|
|
7 婚恋服务状态
|
|
|
|
|
|
8 正常业务
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
页面自己不能猜。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第八十章 State Store
|
|
|
|
|
|
|
|
|
|
|
|
前端建议:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
AuthStore
|
|
|
|
|
|
UserStore
|
|
|
|
|
|
MatchStore
|
|
|
|
|
|
MessageStore
|
|
|
|
|
|
ActivityStore
|
|
|
|
|
|
MatchmakerStore
|
|
|
|
|
|
AppStore
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第八十一章 Server Truth
|
|
|
|
|
|
|
|
|
|
|
|
所有关键状态:
|
|
|
|
|
|
|
|
|
|
|
|
> 后端数据库为最终事实。
|
|
|
|
|
|
|
|
|
|
|
|
前端Store:
|
|
|
|
|
|
|
|
|
|
|
|
> 只是显示缓存。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第八十二章 API Base
|
|
|
|
|
|
|
|
|
|
|
|
统一:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
/api/v1
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第八十三章 API响应
|
|
|
|
|
|
|
|
|
|
|
|
统一:
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"success": true,
|
|
|
|
|
|
"code": "OK",
|
|
|
|
|
|
"message": "success",
|
|
|
|
|
|
"data": {}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
建议同时包含:
|
|
|
|
|
|
|
|
|
|
|
|
> requestId / timestamp
|
|
|
|
|
|
|
|
|
|
|
|
并在全项目保持一致。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第八十四章 HTTP Status
|
|
|
|
|
|
|
|
|
|
|
|
必须合理使用:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
400 参数错误
|
|
|
|
|
|
401 未认证
|
|
|
|
|
|
403 权限/禁止
|
|
|
|
|
|
404 不存在/不可见
|
|
|
|
|
|
409 状态冲突
|
|
|
|
|
|
422 业务校验(如选用)
|
|
|
|
|
|
429 限流
|
|
|
|
|
|
500 服务端异常
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第八十五章 API DTO
|
|
|
|
|
|
|
|
|
|
|
|
禁止:
|
|
|
|
|
|
|
|
|
|
|
|
> 数据库Entity直接作为API Response。
|
|
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
PublicUserDTO
|
|
|
|
|
|
SelfUserDTO
|
|
|
|
|
|
MatchmakerUserDTO
|
|
|
|
|
|
AdminUserDTO
|
|
|
|
|
|
SensitiveIdentityDTO
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
等隔离。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第八十六章 OpenAPI
|
|
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
> 维护Swagger/OpenAPI。
|
|
|
|
|
|
|
|
|
|
|
|
并建议:
|
|
|
|
|
|
|
|
|
|
|
|
> 生成TypeScript Client。
|
|
|
|
|
|
|
|
|
|
|
|
减少前后端接口不一致。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第八十七章 Production Swagger
|
|
|
|
|
|
|
|
|
|
|
|
不得无保护公开管理API文档。
|
|
|
|
|
|
|
|
|
|
|
|
可:
|
|
|
|
|
|
|
|
|
|
|
|
- 内网
|
|
|
|
|
|
- 鉴权
|
|
|
|
|
|
- Production关闭
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第八十八章 数据库主键
|
|
|
|
|
|
|
|
|
|
|
|
建议:
|
|
|
|
|
|
|
|
|
|
|
|
> 应用生成UUID。
|
|
|
|
|
|
|
|
|
|
|
|
不要依赖可枚举自增ID作为对外资源ID。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第八十九章 数据库时间
|
|
|
|
|
|
|
|
|
|
|
|
统一:
|
|
|
|
|
|
|
|
|
|
|
|
> TIMESTAMPTZ。
|
|
|
|
|
|
|
|
|
|
|
|
展示:
|
|
|
|
|
|
|
|
|
|
|
|
> Asia/Shanghai。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第九十章 状态字段
|
|
|
|
|
|
|
|
|
|
|
|
推荐:
|
|
|
|
|
|
|
|
|
|
|
|
> VARCHAR + CHECK / 字典。
|
|
|
|
|
|
|
|
|
|
|
|
不建议PG Native ENUM。
|
|
|
|
|
|
|
|
|
|
|
|
便于状态演进。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第九十一章 JSONB原则
|
|
|
|
|
|
|
|
|
|
|
|
只用于:
|
|
|
|
|
|
|
|
|
|
|
|
- 配置
|
|
|
|
|
|
- Snapshot
|
|
|
|
|
|
- 小型扩展字段
|
|
|
|
|
|
|
|
|
|
|
|
不能把核心实体全部塞JSON。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第九十二章 关键数据库唯一约束
|
|
|
|
|
|
|
|
|
|
|
|
必须有:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
微信 app_id + openid
|
|
|
|
|
|
身份证hash
|
|
|
|
|
|
手机号hash(按业务需要)
|
|
|
|
|
|
user relation
|
|
|
|
|
|
activity registration
|
|
|
|
|
|
clientMessageId
|
|
|
|
|
|
Match active pair
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第九十三章 Match历史
|
|
|
|
|
|
|
|
|
|
|
|
不要设计成:
|
|
|
|
|
|
|
|
|
|
|
|
> 一对用户永远只有一条不可变Match且无法未来重新建立。
|
|
|
|
|
|
|
|
|
|
|
|
必须支持:
|
|
|
|
|
|
|
|
|
|
|
|
> 历史关系和新的有效关系阶段。
|
|
|
|
|
|
|
|
|
|
|
|
可采用:
|
|
|
|
|
|
|
|
|
|
|
|
- Match Episode
|
|
|
|
|
|
- 历史记录
|
|
|
|
|
|
- Active Pair Unique
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
具体表结构由WorkBuddy合理实现。
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第九十四章 Pass
|
|
|
|
|
|
|
|
|
|
|
|
需要预留:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
expires_at
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
但冷却周期:
|
|
|
|
|
|
|
|
|
|
|
|
> 配置。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第九十五章 AccountStatus
|
|
|
|
|
|
|
|
|
|
|
|
技术状态:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
normal
|
|
|
|
|
|
reviewing_risk
|
|
|
|
|
|
limited
|
|
|
|
|
|
suspended
|
|
|
|
|
|
banned
|
|
|
|
|
|
closed
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
属于建议技术模型。
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
如果WorkBuddy优化命名:
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
> 语义必须一致。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第九十六章 RiskLevel
|
|
|
|
|
|
|
|
|
|
|
|
建议:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
normal
|
|
|
|
|
|
watch
|
|
|
|
|
|
high
|
|
|
|
|
|
critical
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
RiskLevel:
|
|
|
|
|
|
|
|
|
|
|
|
> 不等于AccountStatus。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第九十七章 RiskAction
|
|
|
|
|
|
|
|
|
|
|
|
建议:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
warning
|
|
|
|
|
|
feature_limit
|
|
|
|
|
|
temporary_suspend
|
|
|
|
|
|
ban
|
|
|
|
|
|
manual_investigation
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第九十八章 Report
|
|
|
|
|
|
|
|
|
|
|
|
Report是否成立:
|
|
|
|
|
|
|
|
|
|
|
|
与:
|
|
|
|
|
|
|
|
|
|
|
|
> 风控如何处置
|
|
|
|
|
|
|
|
|
|
|
|
必须分开。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第九十九章 风控原则
|
|
|
|
|
|
|
|
|
|
|
|
不得:
|
|
|
|
|
|
|
|
|
|
|
|
> 单个关键词直接永久封禁。
|
|
|
|
|
|
|
|
|
|
|
|
默认:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
规则发现
|
|
|
|
|
|
↓
|
|
|
|
|
|
风险事件
|
|
|
|
|
|
↓
|
|
|
|
|
|
人工判断
|
|
|
|
|
|
↓
|
|
|
|
|
|
处置
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
明显技术攻击除外。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百章 申诉
|
|
|
|
|
|
|
|
|
|
|
|
Appeal此前属于:
|
|
|
|
|
|
|
|
|
|
|
|
> 推荐V1功能。
|
|
|
|
|
|
|
|
|
|
|
|
如果开发资源充足:
|
|
|
|
|
|
|
|
|
|
|
|
应实现。
|
|
|
|
|
|
|
|
|
|
|
|
若必须缩减:
|
|
|
|
|
|
|
|
|
|
|
|
> 可作为V1.0.x补充,但数据结构建议预留。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百零一章 数据统计
|
|
|
|
|
|
|
|
|
|
|
|
正式指标必须唯一口径。
|
|
|
|
|
|
|
|
|
|
|
|
尤其:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
注册
|
|
|
|
|
|
实名
|
|
|
|
|
|
审核通过
|
|
|
|
|
|
推荐曝光
|
|
|
|
|
|
Like
|
|
|
|
|
|
Mutual Match
|
|
|
|
|
|
Chat Started
|
|
|
|
|
|
Activity Mutual
|
|
|
|
|
|
Successful Match
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
不得混淆。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百零二章 Success统计
|
|
|
|
|
|
|
|
|
|
|
|
只有:
|
|
|
|
|
|
|
|
|
|
|
|
> 双方成功牵手确认
|
|
|
|
|
|
|
|
|
|
|
|
才算:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
successful
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
活动互选:
|
|
|
|
|
|
|
|
|
|
|
|
> 不是成功牵手。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百零三章 Chat Started
|
|
|
|
|
|
|
|
|
|
|
|
必须是真实用户消息。
|
|
|
|
|
|
|
|
|
|
|
|
SystemMessage:
|
|
|
|
|
|
|
|
|
|
|
|
> 不算。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百零四章 数据统计架构
|
|
|
|
|
|
|
|
|
|
|
|
V1:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
PostgreSQL业务表
|
|
|
|
|
|
+
|
|
|
|
|
|
Daily Summary
|
|
|
|
|
|
+
|
|
|
|
|
|
Redis缓存
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
足够。
|
|
|
|
|
|
|
|
|
|
|
|
禁止提前建设:
|
|
|
|
|
|
|
|
|
|
|
|
- Kafka
|
|
|
|
|
|
- Flink
|
|
|
|
|
|
- ClickHouse
|
|
|
|
|
|
- Data Lake
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百零五章 部署
|
|
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Docker
|
|
|
|
|
|
Docker Compose
|
|
|
|
|
|
Nginx
|
|
|
|
|
|
PostgreSQL
|
|
|
|
|
|
Redis
|
|
|
|
|
|
Private Object Storage
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百零六章 V1禁止基础设施过度设计
|
|
|
|
|
|
|
|
|
|
|
|
不得擅自引入:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Kubernetes
|
|
|
|
|
|
Service Mesh
|
|
|
|
|
|
Kafka
|
|
|
|
|
|
Elasticsearch
|
|
|
|
|
|
Neo4j
|
|
|
|
|
|
Milvus
|
|
|
|
|
|
分布式数据库
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
除非出现明确、经过验证的必要性。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百零七章 配置
|
|
|
|
|
|
|
|
|
|
|
|
区分:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
业务Config
|
|
|
|
|
|
部署Config
|
|
|
|
|
|
Secret
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Secret:
|
|
|
|
|
|
|
|
|
|
|
|
> 不进Git。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百零八章 CI/CD
|
|
|
|
|
|
|
|
|
|
|
|
至少:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Lint
|
|
|
|
|
|
Unit Test
|
|
|
|
|
|
Integration Test
|
|
|
|
|
|
Migration Validation
|
|
|
|
|
|
Build
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
通过后:
|
|
|
|
|
|
|
|
|
|
|
|
> 构建固定版本镜像。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百零九章 生产发布
|
|
|
|
|
|
|
|
|
|
|
|
禁止:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
SSH生产
|
|
|
|
|
|
git pull
|
|
|
|
|
|
现场npm install
|
|
|
|
|
|
现场mvn package
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
生产只拉:
|
|
|
|
|
|
|
|
|
|
|
|
> 已构建Artifact/Image。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百一十章 Migration
|
|
|
|
|
|
|
|
|
|
|
|
所有数据库变化:
|
|
|
|
|
|
|
|
|
|
|
|
> Migration管理。
|
|
|
|
|
|
|
|
|
|
|
|
生产禁止:
|
|
|
|
|
|
|
|
|
|
|
|
> 手工无记录ALTER TABLE。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百一十一章 Health
|
|
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
/health/live
|
|
|
|
|
|
/health/ready
|
|
|
|
|
|
/version
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百一十二章 监控
|
|
|
|
|
|
|
|
|
|
|
|
至少:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
CPU
|
|
|
|
|
|
Memory
|
|
|
|
|
|
Disk
|
|
|
|
|
|
API 5xx
|
|
|
|
|
|
P95
|
|
|
|
|
|
PostgreSQL
|
|
|
|
|
|
Redis
|
|
|
|
|
|
Backup
|
|
|
|
|
|
证书
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百一十三章 日志
|
|
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
> Structured Log。
|
|
|
|
|
|
|
|
|
|
|
|
统一:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
requestId
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百一十四章 日志禁区
|
|
|
|
|
|
|
|
|
|
|
|
禁止记录:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
完整身份证
|
|
|
|
|
|
完整Token
|
|
|
|
|
|
密码
|
|
|
|
|
|
聊天正文
|
|
|
|
|
|
举报完整正文
|
|
|
|
|
|
敏感图片URL
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百一十五章 Backup
|
|
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
数据库自动备份
|
|
|
|
|
|
+
|
|
|
|
|
|
独立位置
|
|
|
|
|
|
+
|
|
|
|
|
|
加密
|
|
|
|
|
|
+
|
|
|
|
|
|
恢复验证
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百一十六章 Restore
|
|
|
|
|
|
|
|
|
|
|
|
必须真正演练。
|
|
|
|
|
|
|
|
|
|
|
|
只有“有backup文件”:
|
|
|
|
|
|
|
|
|
|
|
|
> 不算合格。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百一十七章 Rollback
|
|
|
|
|
|
|
|
|
|
|
|
每个生产Release:
|
|
|
|
|
|
|
|
|
|
|
|
必须知道:
|
|
|
|
|
|
|
|
|
|
|
|
> 上一个稳定版本。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百一十八章 Feature Flag
|
|
|
|
|
|
|
|
|
|
|
|
至少支持:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
activityEnabled
|
|
|
|
|
|
matchmakerEnabled
|
|
|
|
|
|
imageChatEnabled
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
以及必要核心模块Kill Switch。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百一十九章 测试最高优先级
|
|
|
|
|
|
|
|
|
|
|
|
开发过程中测试顺序:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
权限
|
|
|
|
|
|
数据一致性
|
|
|
|
|
|
Match
|
|
|
|
|
|
Block
|
|
|
|
|
|
Chat
|
|
|
|
|
|
实名认证
|
|
|
|
|
|
审核
|
|
|
|
|
|
活动并发
|
|
|
|
|
|
红娘
|
|
|
|
|
|
统计
|
|
|
|
|
|
UI细节
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
# 第一百二十章 WorkBuddy开发模式
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
WorkBuddy必须采用:
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
> 分阶段、可运行、可验证。
|
|
|
|
|
|
|
|
|
|
|
|
禁止:
|
|
|
|
|
|
|
|
|
|
|
|
> 一次生成全项目大量代码然后最后统一调试。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百二十一章 每阶段基本流程
|
|
|
|
|
|
|
|
|
|
|
|
每一个阶段执行:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
读取本阶段规则
|
|
|
|
|
|
↓
|
|
|
|
|
|
确认相关数据模型
|
|
|
|
|
|
↓
|
|
|
|
|
|
建立测试
|
|
|
|
|
|
↓
|
|
|
|
|
|
实现后端
|
|
|
|
|
|
↓
|
|
|
|
|
|
实现前端
|
|
|
|
|
|
↓
|
|
|
|
|
|
运行测试
|
|
|
|
|
|
↓
|
|
|
|
|
|
验证核心流程
|
|
|
|
|
|
↓
|
|
|
|
|
|
更新开发记录
|
|
|
|
|
|
↓
|
|
|
|
|
|
进入下一阶段
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百二十二章 不允许静默改变需求
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
如果WorkBuddy发现:
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
- 规则冲突
|
|
|
|
|
|
- 前文未确认
|
|
|
|
|
|
- 技术实现存在多种方案
|
|
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
> 保持原需求。
|
|
|
|
|
|
|
|
|
|
|
|
对于未确认内容:
|
|
|
|
|
|
|
|
|
|
|
|
标记:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
TODO_PRODUCT_CONFIRMATION
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
或者:
|
|
|
|
|
|
|
|
|
|
|
|
> 使用可配置实现。
|
|
|
|
|
|
|
|
|
|
|
|
不得擅自拍板改变产品。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百二十三章 不允许“为了方便”简化核心规则
|
|
|
|
|
|
|
|
|
|
|
|
禁止:
|
|
|
|
|
|
|
|
|
|
|
|
> 为了开发简单取消双向匹配。
|
|
|
|
|
|
|
|
|
|
|
|
禁止:
|
|
|
|
|
|
|
|
|
|
|
|
> 为了查询方便给管理员全部权限。
|
|
|
|
|
|
|
|
|
|
|
|
禁止:
|
|
|
|
|
|
|
|
|
|
|
|
> 为了快速推荐自动放宽Required。
|
|
|
|
|
|
|
|
|
|
|
|
禁止:
|
|
|
|
|
|
|
|
|
|
|
|
> 为了聊天方便允许陌生私信。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百二十四章 技术债原则
|
|
|
|
|
|
|
|
|
|
|
|
允许:
|
|
|
|
|
|
|
|
|
|
|
|
> 简化技术架构。
|
|
|
|
|
|
|
|
|
|
|
|
不允许:
|
|
|
|
|
|
|
|
|
|
|
|
> 简化产品安全规则。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百二十五章 项目目录建议
|
|
|
|
|
|
|
|
|
|
|
|
如果从零开发,建议:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
project/
|
|
|
|
|
|
├── backend/
|
|
|
|
|
|
├── miniapp/
|
|
|
|
|
|
├── admin-web/
|
|
|
|
|
|
├── infrastructure/
|
|
|
|
|
|
├── docs/
|
|
|
|
|
|
├── scripts/
|
|
|
|
|
|
└── tests/
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百二十六章 Backend目录建议
|
|
|
|
|
|
|
|
|
|
|
|
以模块化单体为原则:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
backend/src/
|
|
|
|
|
|
├── auth/
|
|
|
|
|
|
├── user/
|
|
|
|
|
|
├── verification/
|
|
|
|
|
|
├── profile/
|
|
|
|
|
|
├── review/
|
|
|
|
|
|
├── match/
|
|
|
|
|
|
├── relationship/
|
|
|
|
|
|
├── messaging/
|
|
|
|
|
|
├── activity/
|
|
|
|
|
|
├── matchmaker/
|
|
|
|
|
|
├── risk/
|
|
|
|
|
|
├── notification/
|
|
|
|
|
|
├── organization/
|
|
|
|
|
|
├── permission/
|
|
|
|
|
|
├── analytics/
|
|
|
|
|
|
├── audit/
|
|
|
|
|
|
├── config/
|
|
|
|
|
|
└── shared/
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
具体语言框架结构可调整。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百二十七章 Miniapp目录建议
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
miniapp/
|
|
|
|
|
|
├── pages/
|
|
|
|
|
|
├── components/
|
|
|
|
|
|
├── stores/
|
|
|
|
|
|
├── services/
|
|
|
|
|
|
├── utils/
|
|
|
|
|
|
├── theme/
|
|
|
|
|
|
├── constants/
|
|
|
|
|
|
└── types/
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百二十八章 Admin目录建议
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
admin-web/src/
|
|
|
|
|
|
├── pages/
|
|
|
|
|
|
├── layouts/
|
|
|
|
|
|
├── components/
|
|
|
|
|
|
├── modules/
|
|
|
|
|
|
├── stores/
|
|
|
|
|
|
├── api/
|
|
|
|
|
|
├── permissions/
|
|
|
|
|
|
├── router/
|
|
|
|
|
|
├── theme/
|
|
|
|
|
|
└── types/
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百二十九章 Docs必须进入Git
|
|
|
|
|
|
|
|
|
|
|
|
至少:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
docs/
|
|
|
|
|
|
├── product/
|
|
|
|
|
|
├── architecture/
|
|
|
|
|
|
├── api/
|
|
|
|
|
|
├── database/
|
|
|
|
|
|
├── security/
|
|
|
|
|
|
├── testing/
|
|
|
|
|
|
├── ops/
|
|
|
|
|
|
└── decisions/
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百三十章 ADR
|
|
|
|
|
|
|
|
|
|
|
|
重要技术决策建议记录:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
docs/decisions/
|
|
|
|
|
|
ADR-001-backend-stack.md
|
|
|
|
|
|
ADR-002-auth-strategy.md
|
|
|
|
|
|
ADR-003-object-storage.md
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
# 第一百三十一章 WorkBuddy项目记忆文件
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
建议仓库根目录建立:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
AGENTS.md
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
用于放:
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
> WorkBuddy执行规则摘要。
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百三十二章 AGENTS.md必须写入
|
|
|
|
|
|
|
|
|
|
|
|
至少:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
不得改变V1范围
|
|
|
|
|
|
Required不可放宽
|
|
|
|
|
|
Mutual后才能聊天
|
|
|
|
|
|
红娘不可替用户操作
|
|
|
|
|
|
隐私最小化
|
|
|
|
|
|
禁止VIP/付费
|
|
|
|
|
|
禁止陌生人私信
|
|
|
|
|
|
禁止管理员默认查看聊天
|
|
|
|
|
|
模块化单体
|
|
|
|
|
|
不引入微服务/K8s
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百三十三章 STATUS.md
|
|
|
|
|
|
|
|
|
|
|
|
建议:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
docs/STATUS.md
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
记录:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
已完成
|
|
|
|
|
|
开发中
|
|
|
|
|
|
未开始
|
|
|
|
|
|
已知问题
|
|
|
|
|
|
待确认事项
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
WorkBuddy每阶段更新。
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百三十四章 CHANGELOG
|
|
|
|
|
|
|
|
|
|
|
|
每次版本更新:
|
|
|
|
|
|
|
|
|
|
|
|
> CHANGELOG.md。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百三十五章 第一阶段:项目基础骨架
|
|
|
|
|
|
|
|
|
|
|
|
目标:
|
|
|
|
|
|
|
|
|
|
|
|
> 项目可以启动。
|
|
|
|
|
|
|
|
|
|
|
|
任务:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
初始化Backend
|
|
|
|
|
|
初始化Mini Program
|
|
|
|
|
|
初始化Admin Web
|
|
|
|
|
|
Docker环境
|
|
|
|
|
|
PostgreSQL
|
|
|
|
|
|
Redis
|
|
|
|
|
|
基础配置
|
|
|
|
|
|
统一Response
|
|
|
|
|
|
Error Handling
|
|
|
|
|
|
Logging
|
|
|
|
|
|
RequestId
|
|
|
|
|
|
Migration
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百三十六章 第一阶段验收
|
|
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Backend可启动
|
|
|
|
|
|
数据库Migration成功
|
|
|
|
|
|
Redis正常
|
|
|
|
|
|
Admin可打开
|
|
|
|
|
|
Miniapp可打开
|
|
|
|
|
|
Health正常
|
|
|
|
|
|
CI通过
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百三十七章 第二阶段:认证与Operator基础
|
|
|
|
|
|
|
|
|
|
|
|
用户:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
微信登录
|
|
|
|
|
|
手机号
|
|
|
|
|
|
Session
|
|
|
|
|
|
/me/status
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
后台:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Operator login
|
|
|
|
|
|
Role
|
|
|
|
|
|
Permission
|
|
|
|
|
|
Organization
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百三十八章 第二阶段重点
|
|
|
|
|
|
|
|
|
|
|
|
必须先做好:
|
|
|
|
|
|
|
|
|
|
|
|
> 权限框架。
|
|
|
|
|
|
|
|
|
|
|
|
不要等整个后台开发完才补权限。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百三十九章 第二阶段测试
|
|
|
|
|
|
|
|
|
|
|
|
重点:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Token
|
|
|
|
|
|
Refresh
|
|
|
|
|
|
Logout
|
|
|
|
|
|
Operator Disable
|
|
|
|
|
|
RBAC
|
|
|
|
|
|
Data Scope基础
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百四十章 第三阶段:实名认证
|
|
|
|
|
|
|
|
|
|
|
|
开发:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
IdentityProvider接口
|
|
|
|
|
|
实名请求
|
|
|
|
|
|
实名认证状态
|
|
|
|
|
|
年龄检查
|
|
|
|
|
|
身份证加密/hash
|
|
|
|
|
|
去重
|
|
|
|
|
|
日志脱敏
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百四十一章 第三阶段验收
|
|
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
- 未成年拦截
|
|
|
|
|
|
- 重复身份证处理
|
|
|
|
|
|
- Provider失败可恢复
|
|
|
|
|
|
- 数据库无明文身份证
|
|
|
|
|
|
- 日志无身份证
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百四十二章 第四阶段:用户Profile
|
|
|
|
|
|
|
|
|
|
|
|
开发:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Basic Profile
|
|
|
|
|
|
Lifestyle
|
|
|
|
|
|
Photos
|
|
|
|
|
|
Interests
|
|
|
|
|
|
Self Intro
|
|
|
|
|
|
Relationship Intent
|
|
|
|
|
|
Privacy
|
|
|
|
|
|
Preference
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百四十三章 第四阶段重点
|
|
|
|
|
|
|
|
|
|
|
|
必须同时完成:
|
|
|
|
|
|
|
|
|
|
|
|
> Draft / Completion / Validation。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百四十四章 第五阶段:人工审核
|
|
|
|
|
|
|
|
|
|
|
|
开发:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
ReviewTask
|
|
|
|
|
|
ReviewItem
|
|
|
|
|
|
Claim
|
|
|
|
|
|
Approve
|
|
|
|
|
|
Need Edit
|
|
|
|
|
|
Reject
|
|
|
|
|
|
Review History
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百四十五章 第五阶段后台
|
|
|
|
|
|
|
|
|
|
|
|
完成:
|
|
|
|
|
|
|
|
|
|
|
|
> Reviewer工作台最小可用版本。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百四十六章 第五阶段并发
|
|
|
|
|
|
|
|
|
|
|
|
必须测试:
|
|
|
|
|
|
|
|
|
|
|
|
> 多审核员同时Claim。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百四十七章 第六阶段:推荐Match Engine
|
|
|
|
|
|
|
|
|
|
|
|
优先只做后端。
|
|
|
|
|
|
|
|
|
|
|
|
开发:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Eligibility
|
|
|
|
|
|
RequiredCondition
|
|
|
|
|
|
DirectionalScore
|
|
|
|
|
|
MutualScore
|
|
|
|
|
|
Reasons
|
|
|
|
|
|
Ranking
|
|
|
|
|
|
RecommendationRecord
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百四十八章 第六阶段测试
|
|
|
|
|
|
|
|
|
|
|
|
必须覆盖:
|
|
|
|
|
|
|
|
|
|
|
|
> 每个维度 + 双向Required。
|
|
|
|
|
|
|
|
|
|
|
|
算法测试必须自动化。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百四十九章 第七阶段:首页与找对象
|
|
|
|
|
|
|
|
|
|
|
|
开发:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
推荐卡
|
|
|
|
|
|
推荐理由
|
|
|
|
|
|
详情
|
|
|
|
|
|
Find
|
|
|
|
|
|
Filter
|
|
|
|
|
|
临时筛选
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百五十章 第七阶段重点
|
|
|
|
|
|
|
|
|
|
|
|
确保:
|
|
|
|
|
|
|
|
|
|
|
|
> Search和Recommendation使用同一Eligibility基础规则。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百五十一章 第八阶段:Like与Match
|
|
|
|
|
|
|
|
|
|
|
|
开发:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Like
|
|
|
|
|
|
Cancel Like
|
|
|
|
|
|
Pass
|
|
|
|
|
|
Block
|
|
|
|
|
|
Unblock
|
|
|
|
|
|
Mutual Match
|
|
|
|
|
|
Match History
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百五十二章 第八阶段最高风险
|
|
|
|
|
|
|
|
|
|
|
|
重点验证:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
并发Like
|
|
|
|
|
|
重复Like
|
|
|
|
|
|
Match唯一性
|
|
|
|
|
|
Block优先级
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百五十三章 第九阶段:Conversation与Text Chat
|
|
|
|
|
|
|
|
|
|
|
|
先只做:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Conversation
|
|
|
|
|
|
Text Message
|
|
|
|
|
|
REST Send
|
|
|
|
|
|
WebSocket Receive
|
|
|
|
|
|
Unread
|
|
|
|
|
|
History
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
暂不先做图片。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百五十四章 第九阶段完成条件
|
|
|
|
|
|
|
|
|
|
|
|
A/B双方:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Like
|
|
|
|
|
|
↓
|
|
|
|
|
|
Match
|
|
|
|
|
|
↓
|
|
|
|
|
|
打开Chat
|
|
|
|
|
|
↓
|
|
|
|
|
|
发送文字
|
|
|
|
|
|
↓
|
|
|
|
|
|
另一方实时收到
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
必须完整。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百五十五章 第十阶段:Chat安全与图片
|
|
|
|
|
|
|
|
|
|
|
|
增加:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
图片
|
|
|
|
|
|
上传
|
|
|
|
|
|
Signed URL
|
|
|
|
|
|
Risk Notice
|
|
|
|
|
|
Rate Limit
|
|
|
|
|
|
Block实时
|
|
|
|
|
|
Ban实时
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百五十六章 第十一阶段:系统通知
|
|
|
|
|
|
|
|
|
|
|
|
统一NotificationService。
|
|
|
|
|
|
|
|
|
|
|
|
接:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
审核
|
|
|
|
|
|
Match
|
|
|
|
|
|
活动
|
|
|
|
|
|
红娘
|
|
|
|
|
|
风险
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百五十七章 第十二阶段:Relationship状态
|
|
|
|
|
|
|
|
|
|
|
|
开发:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Paused
|
|
|
|
|
|
Getting To Know
|
|
|
|
|
|
Successful Request
|
|
|
|
|
|
Confirm
|
|
|
|
|
|
Decline
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Success必须双确认。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百五十八章 第十三阶段:公益红娘
|
|
|
|
|
|
|
|
|
|
|
|
开发:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
MatchmakerService
|
|
|
|
|
|
分配
|
|
|
|
|
|
Claim
|
|
|
|
|
|
候选
|
|
|
|
|
|
推荐
|
|
|
|
|
|
Followup
|
|
|
|
|
|
Waiting User
|
|
|
|
|
|
Complete
|
|
|
|
|
|
Risk Referral
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百五十九章 第十三阶段用户端
|
|
|
|
|
|
|
|
|
|
|
|
完成:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
公益红娘首页
|
|
|
|
|
|
申请
|
|
|
|
|
|
进度
|
|
|
|
|
|
红娘推荐
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百六十章 第十四阶段:活动基础
|
|
|
|
|
|
|
|
|
|
|
|
开发:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Activity CRUD
|
|
|
|
|
|
Publish
|
|
|
|
|
|
Cancel
|
|
|
|
|
|
Browse
|
|
|
|
|
|
Apply
|
|
|
|
|
|
Review
|
|
|
|
|
|
My Activities
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百六十一章 第十四阶段并发
|
|
|
|
|
|
|
|
|
|
|
|
必须完成:
|
|
|
|
|
|
|
|
|
|
|
|
> Activity capacity事务。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百六十二章 第十五阶段:签到
|
|
|
|
|
|
|
|
|
|
|
|
开发:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Signed Checkin Token
|
|
|
|
|
|
Staff Scan
|
|
|
|
|
|
Manual Checkin
|
|
|
|
|
|
Duplicate Check
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百六十三章 第十六阶段:活动反馈与互选
|
|
|
|
|
|
|
|
|
|
|
|
开发:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Feedback
|
|
|
|
|
|
ActivityInterest
|
|
|
|
|
|
Mutual Interest
|
|
|
|
|
|
Activity Source Match
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百六十四章 第十六阶段隐私重点
|
|
|
|
|
|
|
|
|
|
|
|
单向Activity Interest:
|
|
|
|
|
|
|
|
|
|
|
|
> 不得向对方暴露。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百六十五章 第十七阶段:举报与风控
|
|
|
|
|
|
|
|
|
|
|
|
开发:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Report
|
|
|
|
|
|
Evidence
|
|
|
|
|
|
RiskEvent
|
|
|
|
|
|
RiskProfile
|
|
|
|
|
|
RiskAction
|
|
|
|
|
|
Account Capability
|
|
|
|
|
|
Risk Admin
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百六十六章 第十七阶段实时联动
|
|
|
|
|
|
|
|
|
|
|
|
封禁/限制:
|
|
|
|
|
|
|
|
|
|
|
|
必须立即影响:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Recommendation
|
|
|
|
|
|
Like
|
|
|
|
|
|
Chat
|
|
|
|
|
|
Activity
|
|
|
|
|
|
Matchmaker
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百六十七章 第十八阶段:申诉
|
|
|
|
|
|
|
|
|
|
|
|
如果列入V1正式范围:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Appeal
|
|
|
|
|
|
Process
|
|
|
|
|
|
Approve
|
|
|
|
|
|
Reject
|
|
|
|
|
|
Recalculate Account Status
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百六十八章 第十九阶段:后台完善
|
|
|
|
|
|
|
|
|
|
|
|
完成:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
User Management
|
|
|
|
|
|
Organization
|
|
|
|
|
|
Operator
|
|
|
|
|
|
Role
|
|
|
|
|
|
Permission
|
|
|
|
|
|
Audit
|
|
|
|
|
|
SensitiveAccess
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百六十九章 第二十阶段:Analytics
|
|
|
|
|
|
|
|
|
|
|
|
实现:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Dashboard
|
|
|
|
|
|
User Funnel
|
|
|
|
|
|
Match Funnel
|
|
|
|
|
|
Matchmaker Stats
|
|
|
|
|
|
Activity Stats
|
|
|
|
|
|
Risk Stats
|
|
|
|
|
|
Daily Summary
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百七十章 第二十一阶段:注销与数据生命周期
|
|
|
|
|
|
|
|
|
|
|
|
完成:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Account Deletion
|
|
|
|
|
|
Service Exit
|
|
|
|
|
|
Visibility Removal
|
|
|
|
|
|
Activity Cleanup
|
|
|
|
|
|
Matchmaker Cleanup
|
|
|
|
|
|
Retention Hooks
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百七十一章 第二十二阶段:部署体系
|
|
|
|
|
|
|
|
|
|
|
|
完成:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Dockerfile
|
|
|
|
|
|
Docker Compose
|
|
|
|
|
|
Nginx
|
|
|
|
|
|
Health
|
|
|
|
|
|
CI/CD
|
|
|
|
|
|
Staging
|
|
|
|
|
|
Backup
|
|
|
|
|
|
Restore
|
|
|
|
|
|
Rollback
|
|
|
|
|
|
Monitoring
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百七十二章 第二十三阶段:完整系统测试
|
|
|
|
|
|
|
|
|
|
|
|
必须执行:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
核心E2E
|
|
|
|
|
|
权限矩阵
|
|
|
|
|
|
IDOR
|
|
|
|
|
|
并发
|
|
|
|
|
|
聊天弱网
|
|
|
|
|
|
活动并发
|
|
|
|
|
|
风控
|
|
|
|
|
|
统计
|
|
|
|
|
|
恢复
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百七十三章 第二十四阶段:UAT
|
|
|
|
|
|
|
|
|
|
|
|
邀请:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
普通用户
|
|
|
|
|
|
审核员
|
|
|
|
|
|
红娘
|
|
|
|
|
|
活动管理员
|
|
|
|
|
|
风控员
|
|
|
|
|
|
志愿者
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
进行真实操作。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百七十四章 第二十五阶段:RC
|
|
|
|
|
|
|
|
|
|
|
|
生成:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
v1.0.0-rc.1
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
进入Staging最终回归。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百七十五章 第二十六阶段:生产上线
|
|
|
|
|
|
|
|
|
|
|
|
上线前:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Backup
|
|
|
|
|
|
Migration
|
|
|
|
|
|
Deploy
|
|
|
|
|
|
Smoke
|
|
|
|
|
|
Monitor
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百七十六章 开发任务优先级
|
|
|
|
|
|
|
|
|
|
|
|
定义:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
P0
|
|
|
|
|
|
P1
|
|
|
|
|
|
P2
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百七十七章 P0
|
|
|
|
|
|
|
|
|
|
|
|
所有上线必须功能:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
认证
|
|
|
|
|
|
实名
|
|
|
|
|
|
Profile
|
|
|
|
|
|
审核
|
|
|
|
|
|
Preference
|
|
|
|
|
|
推荐
|
|
|
|
|
|
Like
|
|
|
|
|
|
Mutual
|
|
|
|
|
|
Chat
|
|
|
|
|
|
Block
|
|
|
|
|
|
Report
|
|
|
|
|
|
Matchmaker基础
|
|
|
|
|
|
Activity基础
|
|
|
|
|
|
权限
|
|
|
|
|
|
风控
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百七十八章 P1
|
|
|
|
|
|
|
|
|
|
|
|
V1必须完成但可以后置开发:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
图片聊天
|
|
|
|
|
|
活动互选
|
|
|
|
|
|
高级红娘协同
|
|
|
|
|
|
Analytics
|
|
|
|
|
|
申诉
|
|
|
|
|
|
动态水印
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
其中:
|
|
|
|
|
|
|
|
|
|
|
|
> 活动互选属于V1最终上线必需闭环,不得拖到V2。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百七十九章 P2
|
|
|
|
|
|
|
|
|
|
|
|
可V1.0.x:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
更高级统计
|
|
|
|
|
|
异常登录提醒
|
|
|
|
|
|
MFA强化
|
|
|
|
|
|
更多运营辅助
|
|
|
|
|
|
高级风控规则
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百八十章 V1明确不做列表
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
WorkBuddy遇到以下需求不得自行开发:
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
直播
|
|
|
|
|
|
短视频
|
|
|
|
|
|
动态Feed
|
|
|
|
|
|
朋友圈
|
|
|
|
|
|
群聊
|
|
|
|
|
|
语音房
|
|
|
|
|
|
视频相亲
|
|
|
|
|
|
礼物
|
|
|
|
|
|
金币
|
|
|
|
|
|
积分商城
|
|
|
|
|
|
排行榜
|
|
|
|
|
|
VIP
|
|
|
|
|
|
支付
|
|
|
|
|
|
超级喜欢
|
|
|
|
|
|
Boost
|
|
|
|
|
|
付费解锁联系方式
|
|
|
|
|
|
AI数字人
|
|
|
|
|
|
AI代聊
|
|
|
|
|
|
AI婚恋预测
|
|
|
|
|
|
颜值评分
|
|
|
|
|
|
财富评分
|
|
|
|
|
|
复杂智能排桌
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百八十一章 Git规则
|
|
|
|
|
|
|
|
|
|
|
|
建议:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
main
|
|
|
|
|
|
develop
|
|
|
|
|
|
feature/*
|
|
|
|
|
|
fix/*
|
|
|
|
|
|
hotfix/*
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
小团队也可以简化。
|
|
|
|
|
|
|
|
|
|
|
|
但Production发布必须:
|
|
|
|
|
|
|
|
|
|
|
|
> 有Tag。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百八十二章 Commit原则
|
|
|
|
|
|
|
|
|
|
|
|
每个Commit:
|
|
|
|
|
|
|
|
|
|
|
|
> 一个明确任务。
|
|
|
|
|
|
|
|
|
|
|
|
不要:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
update
|
|
|
|
|
|
fix stuff
|
|
|
|
|
|
final
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
建议:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
feat(match): implement mutual eligibility
|
|
|
|
|
|
fix(chat): prevent send after block
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百八十三章 Branch完成规则
|
|
|
|
|
|
|
|
|
|
|
|
合并前:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Tests pass
|
|
|
|
|
|
Lint pass
|
|
|
|
|
|
Build pass
|
|
|
|
|
|
Migration pass
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百八十四章 数据Migration与代码同PR
|
|
|
|
|
|
|
|
|
|
|
|
新增字段:
|
|
|
|
|
|
|
|
|
|
|
|
> Migration必须随代码提交。
|
|
|
|
|
|
|
|
|
|
|
|
不能:
|
|
|
|
|
|
|
|
|
|
|
|
> 口头告诉运维自己建表。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百八十五章 环境变量
|
|
|
|
|
|
|
|
|
|
|
|
`.env.example`必须持续同步。
|
|
|
|
|
|
|
|
|
|
|
|
新增环境变量:
|
|
|
|
|
|
|
|
|
|
|
|
> 同时更新文档。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百八十六章 API变更
|
|
|
|
|
|
|
|
|
|
|
|
每次:
|
|
|
|
|
|
|
|
|
|
|
|
> 更新OpenAPI。
|
|
|
|
|
|
|
|
|
|
|
|
不得代码改了API但文档不变。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百八十七章 前后端共享类型
|
|
|
|
|
|
|
|
|
|
|
|
如果可能:
|
|
|
|
|
|
|
|
|
|
|
|
> 自动生成。
|
|
|
|
|
|
|
|
|
|
|
|
避免手写两套Enum。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百八十八章 状态枚举
|
|
|
|
|
|
|
|
|
|
|
|
所有状态:
|
|
|
|
|
|
|
|
|
|
|
|
> 单一来源。
|
|
|
|
|
|
|
|
|
|
|
|
尤其:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
AccountStatus
|
|
|
|
|
|
ReviewStatus
|
|
|
|
|
|
RelationshipStatus
|
|
|
|
|
|
MatchStatus
|
|
|
|
|
|
ActivityStatus
|
|
|
|
|
|
RegistrationStatus
|
|
|
|
|
|
MatchmakerStatus
|
|
|
|
|
|
ReportStatus
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百八十九章 业务配置
|
|
|
|
|
|
|
|
|
|
|
|
所有未确认数量型规则:
|
|
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
> Configurable。
|
|
|
|
|
|
|
|
|
|
|
|
例如:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
推荐数量
|
|
|
|
|
|
照片数量
|
|
|
|
|
|
兴趣数量
|
|
|
|
|
|
Pass冷却
|
|
|
|
|
|
活动互选人数
|
|
|
|
|
|
消息长度
|
|
|
|
|
|
限流阈值
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百九十章 不要过度配置
|
|
|
|
|
|
|
|
|
|
|
|
只有:
|
|
|
|
|
|
|
|
|
|
|
|
> 业务可能变化的值
|
|
|
|
|
|
|
|
|
|
|
|
才配置。
|
|
|
|
|
|
|
|
|
|
|
|
不要把所有按钮颜色都放数据库。
|
|
|
|
|
|
|
|
|
|
|
|
UI走:
|
|
|
|
|
|
|
|
|
|
|
|
> Design Token。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百九十一章 代码注释原则
|
|
|
|
|
|
|
|
|
|
|
|
复杂业务:
|
|
|
|
|
|
|
|
|
|
|
|
> 解释为什么。
|
|
|
|
|
|
|
|
|
|
|
|
例如:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
// Required preferences must never be relaxed.
|
|
|
|
|
|
// This is a product invariant.
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
而不是:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
// if
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百九十二章 核心Invariant
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
WorkBuddy必须在代码、测试中明确保护以下Invariant:
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
未Mutual不可聊天
|
|
|
|
|
|
Required不可自动放宽
|
|
|
|
|
|
Block即时禁止互动
|
|
|
|
|
|
工作人员不能替用户Like
|
|
|
|
|
|
成功牵手必须双确认
|
|
|
|
|
|
单向活动意向不泄露
|
|
|
|
|
|
敏感身份默认脱敏
|
|
|
|
|
|
跨组织默认拒绝
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百九十三章 事务边界
|
|
|
|
|
|
|
|
|
|
|
|
以下必须事务:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Mutual Match创建
|
|
|
|
|
|
Activity名额批准
|
|
|
|
|
|
Review Claim
|
|
|
|
|
|
Successful Confirm
|
|
|
|
|
|
RiskAction + AccountStatus
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百九十四章 事务外副作用
|
|
|
|
|
|
|
|
|
|
|
|
例如:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Notification
|
|
|
|
|
|
WebSocket
|
|
|
|
|
|
Analytics
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
事务提交后执行。
|
|
|
|
|
|
|
|
|
|
|
|
失败:
|
|
|
|
|
|
|
|
|
|
|
|
> 补偿/重试。
|
|
|
|
|
|
|
|
|
|
|
|
不能回滚已成功核心业务。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百九十五章 Outbox
|
|
|
|
|
|
|
|
|
|
|
|
V1如果通知可靠性实现复杂:
|
|
|
|
|
|
|
|
|
|
|
|
建议:
|
|
|
|
|
|
|
|
|
|
|
|
> Lightweight Outbox Pattern。
|
|
|
|
|
|
|
|
|
|
|
|
无需Kafka。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百九十六章 Scheduler
|
|
|
|
|
|
|
|
|
|
|
|
允许:
|
|
|
|
|
|
|
|
|
|
|
|
> Backend内置Scheduler。
|
|
|
|
|
|
|
|
|
|
|
|
多实例时加锁。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百九十七章 后台删除原则
|
|
|
|
|
|
|
|
|
|
|
|
重要实体:
|
|
|
|
|
|
|
|
|
|
|
|
> 不物理删除。
|
|
|
|
|
|
|
|
|
|
|
|
采用:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
disabled
|
|
|
|
|
|
cancelled
|
|
|
|
|
|
closed
|
|
|
|
|
|
soft_delete
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百九十八章 Audit
|
|
|
|
|
|
|
|
|
|
|
|
后台关键操作:
|
|
|
|
|
|
|
|
|
|
|
|
> 必须Audit。
|
|
|
|
|
|
|
|
|
|
|
|
包括:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
审核
|
|
|
|
|
|
风险
|
|
|
|
|
|
活动取消
|
|
|
|
|
|
角色权限
|
|
|
|
|
|
Operator
|
|
|
|
|
|
敏感访问
|
|
|
|
|
|
系统配置
|
|
|
|
|
|
匹配规则
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第一百九十九章 测试优先要求
|
|
|
|
|
|
|
|
|
|
|
|
每完成模块:
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
WorkBuddy必须运行:
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
> 相关测试。
|
|
|
|
|
|
|
|
|
|
|
|
不得直到最后一次性运行。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百章 Match模块完成定义
|
|
|
|
|
|
|
|
|
|
|
|
必须同时满足:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
算法单测通过
|
|
|
|
|
|
Required测试通过
|
|
|
|
|
|
Mutual并发测试通过
|
|
|
|
|
|
Block测试通过
|
|
|
|
|
|
Recommendation API通过
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
才算完成。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百零一章 Chat模块完成定义
|
|
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
无Match不可发送
|
|
|
|
|
|
Match可发送
|
|
|
|
|
|
重复clientMessage不重复
|
|
|
|
|
|
Block即时失效
|
|
|
|
|
|
Unmatch即时失效
|
|
|
|
|
|
WS恢复
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百零二章 Activity完成定义
|
|
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
资格正确
|
|
|
|
|
|
名额并发正确
|
|
|
|
|
|
重复报名安全
|
|
|
|
|
|
签到安全
|
|
|
|
|
|
单向意向私密
|
|
|
|
|
|
Mutual创建一次
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百零三章 Permission完成定义
|
|
|
|
|
|
|
|
|
|
|
|
必须使用:
|
|
|
|
|
|
|
|
|
|
|
|
> 非超级管理员测试。
|
|
|
|
|
|
|
|
|
|
|
|
至少测试:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
reviewer
|
|
|
|
|
|
matchmaker
|
|
|
|
|
|
activity_manager
|
|
|
|
|
|
risk_operator
|
|
|
|
|
|
volunteer
|
|
|
|
|
|
organization_admin
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百零四章 敏感数据完成定义
|
|
|
|
|
|
|
|
|
|
|
|
必须确认:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
DB无身份证明文
|
|
|
|
|
|
日志无身份证
|
|
|
|
|
|
Public DTO无手机号
|
|
|
|
|
|
Bucket非公开
|
|
|
|
|
|
SensitiveAccess有审计
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百零五章 不接受“先做功能以后补安全”
|
|
|
|
|
|
|
|
|
|
|
|
本项目安全不是后置模块。
|
|
|
|
|
|
|
|
|
|
|
|
权限、敏感数据、Block:
|
|
|
|
|
|
|
|
|
|
|
|
> 必须和功能一起实现。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百零六章 用户体验完成定义
|
|
|
|
|
|
|
|
|
|
|
|
页面不只要:
|
|
|
|
|
|
|
|
|
|
|
|
> 功能存在。
|
|
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
- Loading
|
|
|
|
|
|
- Empty
|
|
|
|
|
|
- Error
|
|
|
|
|
|
- Success feedback
|
|
|
|
|
|
- Disabled state
|
|
|
|
|
|
- Retry
|
|
|
|
|
|
|
|
|
|
|
|
完整。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百零七章 普通用户错误提示
|
|
|
|
|
|
|
|
|
|
|
|
不得展示:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
NullPointerException
|
|
|
|
|
|
SQLSTATE
|
|
|
|
|
|
403 Forbidden
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
使用业务文案。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百零八章 后台技术错误
|
|
|
|
|
|
|
|
|
|
|
|
可以显示:
|
|
|
|
|
|
|
|
|
|
|
|
> RequestId
|
|
|
|
|
|
|
|
|
|
|
|
帮助技术排查。
|
|
|
|
|
|
|
|
|
|
|
|
但仍不得展示敏感Stack。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
# 第二百零九章 WorkBuddy每阶段输出要求
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
每完成一个阶段:
|
|
|
|
|
|
|
|
|
|
|
|
更新:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
docs/STATUS.md
|
|
|
|
|
|
CHANGELOG.md
|
|
|
|
|
|
OpenAPI
|
|
|
|
|
|
Migration
|
|
|
|
|
|
Tests
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百一十章 STATUS示例
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
## Phase 8 Like & Match
|
|
|
|
|
|
|
|
|
|
|
|
Status: Completed
|
|
|
|
|
|
|
|
|
|
|
|
Implemented:
|
|
|
|
|
|
- Like
|
|
|
|
|
|
- Pass
|
|
|
|
|
|
- Block
|
|
|
|
|
|
- Mutual Match
|
|
|
|
|
|
|
|
|
|
|
|
Tests:
|
|
|
|
|
|
- simultaneous like
|
|
|
|
|
|
- duplicate like
|
|
|
|
|
|
- block override
|
|
|
|
|
|
|
|
|
|
|
|
Known:
|
|
|
|
|
|
- pass cooldown configurable, default not finalized
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百一十一章 待确认内容管理
|
|
|
|
|
|
|
|
|
|
|
|
建立:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
docs/PENDING_DECISIONS.md
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百一十二章 当前需要标记为可配置/待确认的项目
|
|
|
|
|
|
|
|
|
|
|
|
包括但不限于:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
每日推荐数量
|
|
|
|
|
|
推荐最低阈值
|
|
|
|
|
|
最终权重
|
|
|
|
|
|
Pass冷却
|
|
|
|
|
|
照片上限
|
|
|
|
|
|
兴趣标签上限
|
|
|
|
|
|
Self Intro长度
|
|
|
|
|
|
Privacy默认值
|
|
|
|
|
|
Getting To Know是否自动暂停推荐
|
|
|
|
|
|
活动是否默认审核
|
|
|
|
|
|
活动男女名额
|
|
|
|
|
|
活动互选人数
|
|
|
|
|
|
活动互选截止时间
|
|
|
|
|
|
Matchmaker联系目标的电话授权规则
|
|
|
|
|
|
RelationshipStatus最终业务命名
|
|
|
|
|
|
Appeal是否V1首发
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
# 第二百一十三章 WorkBuddy不得把待确认项硬编码
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
- Config
|
|
|
|
|
|
- Feature Flag
|
|
|
|
|
|
- 合理默认技术值
|
|
|
|
|
|
- 文档标记
|
|
|
|
|
|
|
|
|
|
|
|
并明确:
|
|
|
|
|
|
|
|
|
|
|
|
> 默认值只是当前技术默认,不代表产品最终确认。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百一十四章 不得修改已确认内容
|
|
|
|
|
|
|
|
|
|
|
|
例如:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
用户免费
|
|
|
|
|
|
必须实名认证
|
|
|
|
|
|
人工资料审核
|
|
|
|
|
|
双向喜欢后聊天
|
|
|
|
|
|
公益活动顶级Tab
|
|
|
|
|
|
红娘不代操作
|
|
|
|
|
|
Required不可放宽
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
这些不是待确认。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百一十五章 代码质量原则
|
|
|
|
|
|
|
|
|
|
|
|
优先:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
可读
|
|
|
|
|
|
明确
|
|
|
|
|
|
少魔法
|
|
|
|
|
|
少抽象
|
|
|
|
|
|
可测试
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
不要为了:
|
|
|
|
|
|
|
|
|
|
|
|
> “架构高级”
|
|
|
|
|
|
|
|
|
|
|
|
创建大量无意义层。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百一十六章 不提前设计十年后的架构
|
|
|
|
|
|
|
|
|
|
|
|
当前只需:
|
|
|
|
|
|
|
|
|
|
|
|
> 支持V1 + 平滑扩容。
|
|
|
|
|
|
|
|
|
|
|
|
不要构建:
|
|
|
|
|
|
|
|
|
|
|
|
- Plugin Platform
|
|
|
|
|
|
- Workflow Engine
|
|
|
|
|
|
- Rule DSL
|
|
|
|
|
|
- Distributed Saga
|
|
|
|
|
|
|
|
|
|
|
|
除非实际需要。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百一十七章 Domain Service原则
|
|
|
|
|
|
|
|
|
|
|
|
业务规则集中。
|
|
|
|
|
|
|
|
|
|
|
|
Controller:
|
|
|
|
|
|
|
|
|
|
|
|
> 不写核心业务逻辑。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百一十八章 Repository原则
|
|
|
|
|
|
|
|
|
|
|
|
数据访问统一。
|
|
|
|
|
|
|
|
|
|
|
|
不要:
|
|
|
|
|
|
|
|
|
|
|
|
> Service里到处拼SQL。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百一十九章 Validation
|
|
|
|
|
|
|
|
|
|
|
|
分:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
DTO validation
|
|
|
|
|
|
+
|
|
|
|
|
|
Business validation
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
两者不要混淆。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百二十章 异常体系
|
|
|
|
|
|
|
|
|
|
|
|
例如:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
AuthenticationException
|
|
|
|
|
|
PermissionDeniedException
|
|
|
|
|
|
BusinessConflictException
|
|
|
|
|
|
ResourceUnavailableException
|
|
|
|
|
|
ValidationException
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
统一映射API错误。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百二十一章 Security默认拒绝
|
|
|
|
|
|
|
|
|
|
|
|
任何:
|
|
|
|
|
|
|
|
|
|
|
|
> 权限不确定
|
|
|
|
|
|
|
|
|
|
|
|
应:
|
|
|
|
|
|
|
|
|
|
|
|
> 拒绝。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百二十二章 Recommendation降级
|
|
|
|
|
|
|
|
|
|
|
|
推荐Reason失败:
|
|
|
|
|
|
|
|
|
|
|
|
> 可返回候选。
|
|
|
|
|
|
|
|
|
|
|
|
Eligibility失败:
|
|
|
|
|
|
|
|
|
|
|
|
> 不可绕过。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百二十三章 Privacy优先
|
|
|
|
|
|
|
|
|
|
|
|
Privacy设置:
|
|
|
|
|
|
|
|
|
|
|
|
> 高于推荐便利。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百二十四章 Risk优先
|
|
|
|
|
|
|
|
|
|
|
|
Risk状态:
|
|
|
|
|
|
|
|
|
|
|
|
> 高于普通业务状态。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百二十五章 Block优先
|
|
|
|
|
|
|
|
|
|
|
|
Block:
|
|
|
|
|
|
|
|
|
|
|
|
> 高于Match。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百二十六章 数据库Source of Truth
|
|
|
|
|
|
|
|
|
|
|
|
Redis/前端与DB不一致:
|
|
|
|
|
|
|
|
|
|
|
|
> DB为准。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百二十七章 前端Optimistic Update
|
|
|
|
|
|
|
|
|
|
|
|
可以用于:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Like
|
|
|
|
|
|
Pass
|
|
|
|
|
|
Privacy
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
但失败必须回滚。
|
|
|
|
|
|
|
|
|
|
|
|
以下不要盲目Optimistic:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
实名
|
|
|
|
|
|
审核
|
|
|
|
|
|
成功牵手
|
|
|
|
|
|
活动通过
|
|
|
|
|
|
封禁
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百二十八章 WebSocket只是通知通道
|
|
|
|
|
|
|
|
|
|
|
|
不能:
|
|
|
|
|
|
|
|
|
|
|
|
> 依赖WebSocket事件作为唯一业务状态。
|
|
|
|
|
|
|
|
|
|
|
|
断线后:
|
|
|
|
|
|
|
|
|
|
|
|
> REST可重建。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百二十九章 外部Provider
|
|
|
|
|
|
|
|
|
|
|
|
必须Adapter封装。
|
|
|
|
|
|
|
|
|
|
|
|
后续:
|
|
|
|
|
|
|
|
|
|
|
|
> 可更换供应商。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百三十章 中国大陆环境适配
|
|
|
|
|
|
|
|
|
|
|
|
优先:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
国内网络稳定
|
|
|
|
|
|
国内云服务
|
|
|
|
|
|
微信生态
|
|
|
|
|
|
中国大陆对象存储
|
|
|
|
|
|
国内实名认证Provider
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
避免核心依赖境外不可控服务。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百三十一章 第三方依赖最小化
|
|
|
|
|
|
|
|
|
|
|
|
V1不需要大量SDK。
|
|
|
|
|
|
|
|
|
|
|
|
只接:
|
|
|
|
|
|
|
|
|
|
|
|
> 真正必要能力。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百三十二章 开源依赖选型原则
|
|
|
|
|
|
|
|
|
|
|
|
选择:
|
|
|
|
|
|
|
|
|
|
|
|
- 活跃维护
|
|
|
|
|
|
- 社区成熟
|
|
|
|
|
|
- License清晰
|
|
|
|
|
|
- 国内可用
|
|
|
|
|
|
- 不过度绑定云厂商
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百三十三章 License
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
WorkBuddy新增开源库时:
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
必须确认License。
|
|
|
|
|
|
|
|
|
|
|
|
避免引入:
|
|
|
|
|
|
|
|
|
|
|
|
> 与商业/公益部署冲突的许可证风险。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百三十四章 Dependency清单
|
|
|
|
|
|
|
|
|
|
|
|
维护:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
docs/DEPENDENCIES.md
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
列:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
名称
|
|
|
|
|
|
版本
|
|
|
|
|
|
用途
|
|
|
|
|
|
License
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百三十五章 Security Dependency
|
|
|
|
|
|
|
|
|
|
|
|
定期扫描:
|
|
|
|
|
|
|
|
|
|
|
|
- npm audit
|
|
|
|
|
|
- Maven/Gradle依赖扫描
|
|
|
|
|
|
- Container CVE
|
|
|
|
|
|
|
|
|
|
|
|
但不要盲目自动升级破坏生产。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百三十六章 可观测性
|
|
|
|
|
|
|
|
|
|
|
|
每个模块关键操作应有:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Metrics
|
|
|
|
|
|
Logs
|
|
|
|
|
|
Audit(需要时)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百三十七章 Match Observability
|
|
|
|
|
|
|
|
|
|
|
|
至少记录:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
candidate_count
|
|
|
|
|
|
required_reject_count
|
|
|
|
|
|
recommendation_count
|
|
|
|
|
|
match_created
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
不记录敏感推断。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百三十八章 Message Observability
|
|
|
|
|
|
|
|
|
|
|
|
至少:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
send_success
|
|
|
|
|
|
send_failure
|
|
|
|
|
|
ws_push_failure
|
|
|
|
|
|
reconnect
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百三十九章 Activity Observability
|
|
|
|
|
|
|
|
|
|
|
|
至少:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
apply
|
|
|
|
|
|
approve
|
|
|
|
|
|
checkin
|
|
|
|
|
|
capacity_conflict
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百四十章 Risk Observability
|
|
|
|
|
|
|
|
|
|
|
|
至少:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
report_created
|
|
|
|
|
|
risk_action
|
|
|
|
|
|
appeal
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百四十一章 生产数据禁止Seed测试用户
|
|
|
|
|
|
|
|
|
|
|
|
正式环境:
|
|
|
|
|
|
|
|
|
|
|
|
> 禁止默认插入测试用户。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百四十二章 Test Account
|
|
|
|
|
|
|
|
|
|
|
|
如果生产必须保留运营测试账号:
|
|
|
|
|
|
|
|
|
|
|
|
必须明确标记:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
is_test_account
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
并排除:
|
|
|
|
|
|
|
|
|
|
|
|
- 推荐
|
|
|
|
|
|
- 统计
|
|
|
|
|
|
- 用户搜索
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百四十三章 数据统计必须排除测试账号
|
|
|
|
|
|
|
|
|
|
|
|
否则运营指标污染。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百四十四章 小程序发布前
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
WorkBuddy必须准备:
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
微信合法域名清单
|
|
|
|
|
|
API域名
|
|
|
|
|
|
Upload域名
|
|
|
|
|
|
Download域名
|
|
|
|
|
|
WebSocket域名
|
|
|
|
|
|
隐私配置清单
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百四十五章 小程序权限申请
|
|
|
|
|
|
|
|
|
|
|
|
只申请业务需要能力。
|
|
|
|
|
|
|
|
|
|
|
|
不要申请:
|
|
|
|
|
|
|
|
|
|
|
|
> GPS等当前不需要权限。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百四十六章 位置
|
|
|
|
|
|
|
|
|
|
|
|
V1:
|
|
|
|
|
|
|
|
|
|
|
|
> 不做持续GPS。
|
|
|
|
|
|
|
|
|
|
|
|
区域:
|
|
|
|
|
|
|
|
|
|
|
|
> 用户选择行政区。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百四十七章 用户协议页面
|
|
|
|
|
|
|
|
|
|
|
|
必须可访问:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
用户服务协议
|
|
|
|
|
|
隐私政策
|
|
|
|
|
|
个人信息收集清单
|
|
|
|
|
|
第三方共享清单
|
|
|
|
|
|
活动规则
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百四十八章 Privacy版本
|
|
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
> 版本化。
|
|
|
|
|
|
|
|
|
|
|
|
用户同意:
|
|
|
|
|
|
|
|
|
|
|
|
> 可追溯。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百四十九章 Consent
|
|
|
|
|
|
|
|
|
|
|
|
建议表:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
consent_records
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
至少记录:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
user
|
|
|
|
|
|
type
|
|
|
|
|
|
version
|
|
|
|
|
|
agreed_at
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百五十章 删除/注销
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
WorkBuddy必须设计:
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
> 正式后端流程。
|
|
|
|
|
|
|
|
|
|
|
|
不能只:
|
|
|
|
|
|
|
|
|
|
|
|
> 前端隐藏账号。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百五十一章 删除原则
|
|
|
|
|
|
|
|
|
|
|
|
需要:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
停止展示
|
|
|
|
|
|
停止服务
|
|
|
|
|
|
停止推荐
|
|
|
|
|
|
关闭Session
|
|
|
|
|
|
按保留规则处理数据
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百五十二章 数据保留期限
|
|
|
|
|
|
|
|
|
|
|
|
精确法律/运营期限:
|
|
|
|
|
|
|
|
|
|
|
|
> 不在代码硬编码。
|
|
|
|
|
|
|
|
|
|
|
|
使用:
|
|
|
|
|
|
|
|
|
|
|
|
> Data Retention Config / Policy。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百五十三章 成功案例
|
|
|
|
|
|
|
|
|
|
|
|
默认:
|
|
|
|
|
|
|
|
|
|
|
|
> Private。
|
|
|
|
|
|
|
|
|
|
|
|
宣传必须:
|
|
|
|
|
|
|
|
|
|
|
|
> 单独授权。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百五十四章 活动现场宣传照片
|
|
|
|
|
|
|
|
|
|
|
|
如有:
|
|
|
|
|
|
|
|
|
|
|
|
> 单独授权/规则。
|
|
|
|
|
|
|
|
|
|
|
|
不能把报名视作永久宣传授权。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百五十五章 红娘工作台数据
|
|
|
|
|
|
|
|
|
|
|
|
禁止提供:
|
|
|
|
|
|
|
|
|
|
|
|
> 一键导出所有用户资料。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百五十六章 Admin数据导出
|
|
|
|
|
|
|
|
|
|
|
|
必须单独权限:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
data.export
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
并:
|
|
|
|
|
|
|
|
|
|
|
|
> 脱敏 + Audit。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百五十七章 后台临时账号
|
|
|
|
|
|
|
|
|
|
|
|
志愿者建议:
|
|
|
|
|
|
|
|
|
|
|
|
> expires_at。
|
|
|
|
|
|
|
|
|
|
|
|
活动结束后失效。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百五十八章 数据权限生命周期
|
|
|
|
|
|
|
|
|
|
|
|
服务结束后:
|
|
|
|
|
|
|
|
|
|
|
|
> 应减少无必要访问。
|
|
|
|
|
|
|
|
|
|
|
|
V1至少保证:
|
|
|
|
|
|
|
|
|
|
|
|
> assigned任务权限结束后不能继续编辑。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
# 第二百五十九章 WorkBuddy不得擅自加入“内部用户价值评分”
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
禁止:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
A级用户
|
|
|
|
|
|
高价值用户
|
|
|
|
|
|
低质量用户
|
|
|
|
|
|
颜值分
|
|
|
|
|
|
财富分
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百六十章 算法不使用
|
|
|
|
|
|
|
|
|
|
|
|
禁止推断:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
宗教
|
|
|
|
|
|
政治
|
|
|
|
|
|
健康
|
|
|
|
|
|
性生活
|
|
|
|
|
|
财富等级
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
作为匹配分。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百六十一章 成功标准
|
|
|
|
|
|
|
|
|
|
|
|
本项目不是:
|
|
|
|
|
|
|
|
|
|
|
|
> 页面全部完成。
|
|
|
|
|
|
|
|
|
|
|
|
而是以下闭环真正运行:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
注册
|
|
|
|
|
|
↓
|
|
|
|
|
|
实名
|
|
|
|
|
|
↓
|
|
|
|
|
|
审核
|
|
|
|
|
|
↓
|
|
|
|
|
|
推荐
|
|
|
|
|
|
↓
|
|
|
|
|
|
Mutual
|
|
|
|
|
|
↓
|
|
|
|
|
|
Chat
|
|
|
|
|
|
↓
|
|
|
|
|
|
红娘/活动
|
|
|
|
|
|
↓
|
|
|
|
|
|
进一步了解
|
|
|
|
|
|
↓
|
|
|
|
|
|
成功
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百六十二章 V1核心验收用户故事一
|
|
|
|
|
|
|
|
|
|
|
|
新用户进入。
|
|
|
|
|
|
|
|
|
|
|
|
应能:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
微信登录
|
|
|
|
|
|
↓
|
|
|
|
|
|
绑定手机
|
|
|
|
|
|
↓
|
|
|
|
|
|
实名
|
|
|
|
|
|
↓
|
|
|
|
|
|
填写资料
|
|
|
|
|
|
↓
|
|
|
|
|
|
设置择偶
|
|
|
|
|
|
↓
|
|
|
|
|
|
提交审核
|
|
|
|
|
|
↓
|
|
|
|
|
|
等待
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百六十三章 用户故事二
|
|
|
|
|
|
|
|
|
|
|
|
审核员:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
登录
|
|
|
|
|
|
↓
|
|
|
|
|
|
待审核
|
|
|
|
|
|
↓
|
|
|
|
|
|
领取
|
|
|
|
|
|
↓
|
|
|
|
|
|
查看
|
|
|
|
|
|
↓
|
|
|
|
|
|
通过/退回
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百六十四章 用户故事三
|
|
|
|
|
|
|
|
|
|
|
|
用户审核通过:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
首页看到推荐
|
|
|
|
|
|
↓
|
|
|
|
|
|
看详情
|
|
|
|
|
|
↓
|
|
|
|
|
|
Like
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百六十五章 用户故事四
|
|
|
|
|
|
|
|
|
|
|
|
双方Like:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Mutual Match
|
|
|
|
|
|
↓
|
|
|
|
|
|
Conversation
|
|
|
|
|
|
↓
|
|
|
|
|
|
聊天
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百六十六章 用户故事五
|
|
|
|
|
|
|
|
|
|
|
|
用户觉得不合适:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Unmatch
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
随后:
|
|
|
|
|
|
|
|
|
|
|
|
> 不能继续聊天。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百六十七章 用户故事六
|
|
|
|
|
|
|
|
|
|
|
|
用户遭骚扰:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Block
|
|
|
|
|
|
+
|
|
|
|
|
|
Report
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
立即停止联系。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百六十八章 用户故事七
|
|
|
|
|
|
|
|
|
|
|
|
长期没结果:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
申请红娘
|
|
|
|
|
|
↓
|
|
|
|
|
|
红娘接手
|
|
|
|
|
|
↓
|
|
|
|
|
|
系统候选
|
|
|
|
|
|
↓
|
|
|
|
|
|
人工推荐
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百六十九章 用户故事八
|
|
|
|
|
|
|
|
|
|
|
|
用户参加活动:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
报名
|
|
|
|
|
|
↓
|
|
|
|
|
|
审核
|
|
|
|
|
|
↓
|
|
|
|
|
|
签到
|
|
|
|
|
|
↓
|
|
|
|
|
|
互选
|
|
|
|
|
|
↓
|
|
|
|
|
|
Mutual
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百七十章 用户故事九
|
|
|
|
|
|
|
|
|
|
|
|
风控员:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
处理举报
|
|
|
|
|
|
↓
|
|
|
|
|
|
采取Action
|
|
|
|
|
|
↓
|
|
|
|
|
|
用户立即受限
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百七十一章 用户故事十
|
|
|
|
|
|
|
|
|
|
|
|
双方关系稳定:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
一方发成功请求
|
|
|
|
|
|
↓
|
|
|
|
|
|
另一方确认
|
|
|
|
|
|
↓
|
|
|
|
|
|
成功牵手
|
|
|
|
|
|
↓
|
|
|
|
|
|
停止新推荐
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
# 第二百七十二章 WorkBuddy阶段验收机制
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
每完成Phase:
|
|
|
|
|
|
|
|
|
|
|
|
必须回答:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
完成了什么?
|
|
|
|
|
|
测试了什么?
|
|
|
|
|
|
有哪些已知问题?
|
|
|
|
|
|
有哪些待确认?
|
|
|
|
|
|
是否影响之前功能?
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
# 第二百七十三章 WorkBuddy禁止声明完成的情况
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
如果:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
代码写完
|
|
|
|
|
|
测试没跑
|
|
|
|
|
|
Migration没验证
|
|
|
|
|
|
权限没测
|
|
|
|
|
|
核心E2E没跑
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
不得说:
|
|
|
|
|
|
|
|
|
|
|
|
> 完成。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百七十四章 Regression
|
|
|
|
|
|
|
|
|
|
|
|
每个新模块:
|
|
|
|
|
|
|
|
|
|
|
|
必须确保:
|
|
|
|
|
|
|
|
|
|
|
|
> 不破坏之前通过的核心流程。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百七十五章 优先自动化场景
|
|
|
|
|
|
|
|
|
|
|
|
一定自动化:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Required
|
|
|
|
|
|
Mutual
|
|
|
|
|
|
Block
|
|
|
|
|
|
Chat permission
|
|
|
|
|
|
Activity capacity
|
|
|
|
|
|
RBAC
|
|
|
|
|
|
Data Scope
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百七十六章 Go-Live阻断
|
|
|
|
|
|
|
|
|
|
|
|
上线前以下必须为0:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
P0
|
|
|
|
|
|
未接受P1
|
|
|
|
|
|
严重权限漏洞
|
|
|
|
|
|
敏感数据明文
|
|
|
|
|
|
Match并发错误
|
|
|
|
|
|
Activity超卖
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百七十七章 V1开发路线总览
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Phase 01 基础架构
|
|
|
|
|
|
Phase 02 Auth + Operator
|
|
|
|
|
|
Phase 03 Verification
|
|
|
|
|
|
Phase 04 Profile
|
|
|
|
|
|
Phase 05 Review
|
|
|
|
|
|
Phase 06 Match Engine
|
|
|
|
|
|
Phase 07 Home/Discover
|
|
|
|
|
|
Phase 08 Like/Relationship
|
|
|
|
|
|
Phase 09 Text Chat
|
|
|
|
|
|
Phase 10 Image/Safety Chat
|
|
|
|
|
|
Phase 11 Notification
|
|
|
|
|
|
Phase 12 Relationship Progress
|
|
|
|
|
|
Phase 13 Matchmaker
|
|
|
|
|
|
Phase 14 Activity
|
|
|
|
|
|
Phase 15 Check-in
|
|
|
|
|
|
Phase 16 Activity Mutual Interest
|
|
|
|
|
|
Phase 17 Risk
|
|
|
|
|
|
Phase 18 Appeal
|
|
|
|
|
|
Phase 19 Admin Complete
|
|
|
|
|
|
Phase 20 Analytics
|
|
|
|
|
|
Phase 21 Account Lifecycle
|
|
|
|
|
|
Phase 22 Ops/Deployment
|
|
|
|
|
|
Phase 23 Full Testing
|
|
|
|
|
|
Phase 24 UAT
|
|
|
|
|
|
Phase 25 RC
|
|
|
|
|
|
Phase 26 Production
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
# 第二百七十八章 WorkBuddy每次启动工作时
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
必须先阅读:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
AGENTS.md
|
|
|
|
|
|
docs/STATUS.md
|
|
|
|
|
|
docs/PENDING_DECISIONS.md
|
|
|
|
|
|
本阶段相关设计文档
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
然后再改代码。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
# 第二百七十九章 WorkBuddy发现旧代码与文档冲突
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
优先级:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
用户最新明确指令
|
|
|
|
|
|
>
|
|
|
|
|
|
本总指令
|
|
|
|
|
|
>
|
|
|
|
|
|
已确认专项设计
|
|
|
|
|
|
>
|
|
|
|
|
|
旧代码实现
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
不得因为:
|
|
|
|
|
|
|
|
|
|
|
|
> “现在代码已经这样写了”
|
|
|
|
|
|
|
|
|
|
|
|
就倒逼修改产品规则。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百八十章 文档冲突处理
|
|
|
|
|
|
|
|
|
|
|
|
如果两个旧文档存在不一致:
|
|
|
|
|
|
|
|
|
|
|
|
优先:
|
|
|
|
|
|
|
|
|
|
|
|
> 后续明确修正文档。
|
|
|
|
|
|
|
|
|
|
|
|
例如已明确:
|
|
|
|
|
|
|
|
|
|
|
|
- Privacy默认值未确认
|
|
|
|
|
|
- Recommendation数量未确认
|
|
|
|
|
|
- Pass冷却未确认
|
|
|
|
|
|
|
|
|
|
|
|
不得引用旧示例当最终规则。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百八十一章 已知需要纠正的旧示例
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
WorkBuddy特别注意:
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
以下不是固定产品要求:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
每天6人
|
|
|
|
|
|
60分
|
|
|
|
|
|
照片最多6张
|
|
|
|
|
|
兴趣最多8个
|
|
|
|
|
|
180天Pass
|
|
|
|
|
|
所有Privacy默认true
|
|
|
|
|
|
活动男50女50
|
|
|
|
|
|
活动必须审核
|
|
|
|
|
|
活动互选只能1人
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
都必须配置/待确认。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百八十二章 不重复造轮子原则
|
|
|
|
|
|
|
|
|
|
|
|
使用成熟组件:
|
|
|
|
|
|
|
|
|
|
|
|
- JWT/session库
|
|
|
|
|
|
- PostgreSQL driver
|
|
|
|
|
|
- Redis library
|
|
|
|
|
|
- Validation
|
|
|
|
|
|
- Migration
|
|
|
|
|
|
- WebSocket
|
|
|
|
|
|
- Object Storage SDK
|
|
|
|
|
|
|
|
|
|
|
|
但核心业务规则:
|
|
|
|
|
|
|
|
|
|
|
|
> 自己明确实现。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百八十三章 不引入完整婚恋开源项目替代业务
|
|
|
|
|
|
|
|
|
|
|
|
可以参考开源代码。
|
|
|
|
|
|
|
|
|
|
|
|
但不能为了快:
|
|
|
|
|
|
|
|
|
|
|
|
> 把商业社交项目直接改皮肤。
|
|
|
|
|
|
|
|
|
|
|
|
因为产品逻辑差异很大。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百八十四章 核心开发哲学
|
|
|
|
|
|
|
|
|
|
|
|
本项目真正复杂的地方不是:
|
|
|
|
|
|
|
|
|
|
|
|
> UI页面数量。
|
|
|
|
|
|
|
|
|
|
|
|
而是:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
状态
|
|
|
|
|
|
权限
|
|
|
|
|
|
双向关系
|
|
|
|
|
|
隐私
|
|
|
|
|
|
并发
|
|
|
|
|
|
线下闭环
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
WorkBuddy投入重点必须放在这些地方。
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百八十五章 研发优先级原则
|
|
|
|
|
|
|
|
|
|
|
|
如果时间不够:
|
|
|
|
|
|
|
|
|
|
|
|
先保证:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
正确
|
|
|
|
|
|
安全
|
|
|
|
|
|
完整
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
再做:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
动画
|
|
|
|
|
|
视觉细节
|
|
|
|
|
|
非必要运营功能
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百八十六章 后端优先于高级视觉
|
|
|
|
|
|
|
|
|
|
|
|
推荐流程、权限、活动容量等后端正确前:
|
|
|
|
|
|
|
|
|
|
|
|
> 不要优先花时间做复杂UI动画。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百八十七章 V1不追求“智能感”
|
|
|
|
|
|
|
|
|
|
|
|
匹配系统只需要:
|
|
|
|
|
|
|
|
|
|
|
|
> 准、稳定、解释清楚。
|
|
|
|
|
|
|
|
|
|
|
|
不需要到处写:
|
|
|
|
|
|
|
|
|
|
|
|
> AI智能。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百八十八章 AI使用边界
|
|
|
|
|
|
|
|
|
|
|
|
V1可以未来使用AI:
|
|
|
|
|
|
|
|
|
|
|
|
> 润色自我介绍等辅助。
|
|
|
|
|
|
|
|
|
|
|
|
但不得:
|
|
|
|
|
|
|
|
|
|
|
|
- 自动虚构用户资料
|
|
|
|
|
|
- 自动代聊
|
|
|
|
|
|
- 自动决定Match
|
|
|
|
|
|
- 自动判断婚姻幸福
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百八十九章 对用户尊重
|
|
|
|
|
|
|
|
|
|
|
|
产品文案、标签不得:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
没人喜欢
|
|
|
|
|
|
低匹配用户
|
|
|
|
|
|
难匹配
|
|
|
|
|
|
条件太高
|
|
|
|
|
|
高价值
|
|
|
|
|
|
低质量
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百九十章 空候选文案
|
|
|
|
|
|
|
|
|
|
|
|
使用:
|
|
|
|
|
|
|
|
|
|
|
|
> 暂时没有完全符合你条件的人。
|
|
|
|
|
|
|
|
|
|
|
|
然后提供:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
查看择偶条件
|
|
|
|
|
|
申请公益红娘
|
|
|
|
|
|
参加活动
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百九十一章 数据和用户不是商品
|
|
|
|
|
|
|
|
|
|
|
|
开发界面中不要使用:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
库存用户
|
|
|
|
|
|
优质资源
|
|
|
|
|
|
资源池等级
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
可以使用:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
候选用户
|
|
|
|
|
|
可匹配用户
|
|
|
|
|
|
用户池
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百九十二章 用户自主权最终红线
|
|
|
|
|
|
|
|
|
|
|
|
系统和工作人员不得替用户执行:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Like
|
|
|
|
|
|
确认成功牵手
|
|
|
|
|
|
主动发送私人聊天
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百九十三章 上线前产品验收
|
|
|
|
|
|
|
|
|
|
|
|
必须最终检查:
|
|
|
|
|
|
|
|
|
|
|
|
> 页面是否仍符合公益定位。
|
|
|
|
|
|
|
|
|
|
|
|
如果最终UI变成:
|
|
|
|
|
|
|
|
|
|
|
|
> Tinder/直播/商业婚介风格
|
|
|
|
|
|
|
|
|
|
|
|
即使功能全:
|
|
|
|
|
|
|
|
|
|
|
|
> 也不合格。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百九十四章 上线前技术验收
|
|
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Core E2E Pass
|
|
|
|
|
|
Permission Pass
|
|
|
|
|
|
Security Pass
|
|
|
|
|
|
Concurrency Pass
|
|
|
|
|
|
Backup Restore Pass
|
|
|
|
|
|
Rollback Pass
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百九十五章 上线前运营验收
|
|
|
|
|
|
|
|
|
|
|
|
必须:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
审核员会用
|
|
|
|
|
|
红娘会用
|
|
|
|
|
|
活动管理员会用
|
|
|
|
|
|
志愿者能签到
|
|
|
|
|
|
风控能处理举报
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百九十六章 项目最终交付物
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
WorkBuddy必须至少交付:
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
完整源码
|
|
|
|
|
|
数据库Migration
|
|
|
|
|
|
OpenAPI文档
|
|
|
|
|
|
Docker部署
|
|
|
|
|
|
CI配置
|
|
|
|
|
|
环境变量示例
|
|
|
|
|
|
测试代码
|
|
|
|
|
|
运营后台
|
|
|
|
|
|
微信小程序
|
|
|
|
|
|
数据库说明
|
|
|
|
|
|
部署说明
|
|
|
|
|
|
备份恢复说明
|
|
|
|
|
|
权限矩阵
|
|
|
|
|
|
测试报告
|
|
|
|
|
|
Release Notes
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百九十七章 README
|
|
|
|
|
|
|
|
|
|
|
|
必须写清:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
项目是什么
|
|
|
|
|
|
技术栈
|
|
|
|
|
|
如何本地启动
|
|
|
|
|
|
环境变量
|
|
|
|
|
|
如何Migration
|
|
|
|
|
|
如何运行测试
|
|
|
|
|
|
如何Build
|
|
|
|
|
|
如何Deploy
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百九十八章 一键本地启动
|
|
|
|
|
|
|
|
|
|
|
|
目标:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
docker compose up
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
可以启动必要基础设施。
|
|
|
|
|
|
|
|
|
|
|
|
应用本身根据技术栈一条标准命令运行。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第二百九十九章 新开发人员接手标准
|
|
|
|
|
|
|
|
|
|
|
|
一个新的研发人员:
|
|
|
|
|
|
|
|
|
|
|
|
> 不依赖原作者口头解释。
|
|
|
|
|
|
|
|
|
|
|
|
通过:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
README
|
|
|
|
|
|
AGENTS
|
|
|
|
|
|
Docs
|
|
|
|
|
|
Migration
|
|
|
|
|
|
Tests
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
应能够理解并启动项目。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第三百章 最终完成标准
|
|
|
|
|
|
|
|
|
|
|
|
只有同时满足:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
用户端完整
|
|
|
|
|
|
后台完整
|
|
|
|
|
|
核心业务完整
|
|
|
|
|
|
权限正确
|
|
|
|
|
|
安全正确
|
|
|
|
|
|
测试通过
|
|
|
|
|
|
部署可用
|
|
|
|
|
|
备份恢复可用
|
|
|
|
|
|
文档完整
|
|
|
|
|
|
运营可以执行
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
才允许定义:
|
|
|
|
|
|
|
|
|
|
|
|
> V1.0开发完成。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
# 第三百零一章 WorkBuddy最终执行宣言
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
在整个开发过程中必须始终遵守:
|
|
|
|
|
|
|
|
|
|
|
|
> **不要重新设计已经确认的产品。**
|
|
|
|
|
|
|
|
|
|
|
|
> **不要擅自增加商业化功能。**
|
|
|
|
|
|
|
|
|
|
|
|
> **不要为了开发方便降低安全要求。**
|
|
|
|
|
|
|
|
|
|
|
|
> **不要把技术示例当成已经确认的业务规则。**
|
|
|
|
|
|
|
|
|
|
|
|
> **所有未确认数量参数配置化。**
|
|
|
|
|
|
|
|
|
|
|
|
> **用户Required绝不自动放宽。**
|
|
|
|
|
|
|
|
|
|
|
|
> **没有双向意愿绝不创建聊天。**
|
|
|
|
|
|
|
|
|
|
|
|
> **拉黑必须立即有效。**
|
|
|
|
|
|
|
|
|
|
|
|
> **红娘只能辅助,不能替用户决定。**
|
|
|
|
|
|
|
|
|
|
|
|
> **活动单向意愿必须保密。**
|
|
|
|
|
|
|
|
|
|
|
|
> **后台人员只能看到完成工作必要的数据。**
|
|
|
|
|
|
|
|
|
|
|
|
> **敏感数据默认拒绝访问。**
|
|
|
|
|
|
|
|
|
|
|
|
> **数据库是业务事实源。**
|
|
|
|
|
|
|
|
|
|
|
|
> **关键动作必须幂等、事务安全、可审计。**
|
|
|
|
|
|
|
|
|
|
|
|
> **系统必须可以部署、升级、备份、恢复和回滚。**
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
# 第三百零二章 WorkBuddy项目最终原则
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
整个项目只围绕一件事情设计:
|
|
|
|
|
|
|
|
|
|
|
|
> **让丹阳本地真实单身用户,用最低的学习成本,在一个可信、安全、有公益组织参与的平台中,获得线上精准匹配、人工红娘辅助和线下公益活动服务。**
|
|
|
|
|
|
|
|
|
|
|
|
技术存在的目的不是增加复杂度。
|
|
|
|
|
|
|
|
|
|
|
|
算法存在的目的不是替用户选择。
|
|
|
|
|
|
|
|
|
|
|
|
红娘存在的目的不是替用户决定。
|
|
|
|
|
|
|
|
|
|
|
|
后台存在的目的不是让工作人员无限查看数据。
|
|
|
|
|
|
|
|
|
|
|
|
数据存在的目的不是建立用户价值等级。
|
|
|
|
|
|
|
|
|
|
|
|
因此V1.0最终开发原则可以浓缩为:
|
|
|
|
|
|
|
|
|
|
|
|
> **真实身份是基础。**
|
|
|
|
|
|
|
|
|
|
|
|
> **双向意愿是边界。**
|
|
|
|
|
|
|
|
|
|
|
|
> **隐私安全是底线。**
|
|
|
|
|
|
|
|
|
|
|
|
> **规则匹配是效率工具。**
|
|
|
|
|
|
|
|
|
|
|
|
> **公益红娘是人工补位。**
|
|
|
|
|
|
|
|
|
|
|
|
> **线下活动是服务延伸。**
|
|
|
|
|
|
|
|
|
|
|
|
> **用户本人永远拥有最终决定权。**
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
# 第三百零三章 WorkBuddy收到本文档后的第一条执行指令
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
WorkBuddy不得立即开始无序编码。
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
首先执行:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
1. 创建项目文档目录
|
|
|
|
|
|
2. 创建AGENTS.md
|
|
|
|
|
|
3. 创建STATUS.md
|
|
|
|
|
|
4. 创建PENDING_DECISIONS.md
|
|
|
|
|
|
5. 确认当前仓库是否已有代码
|
|
|
|
|
|
6. 输出当前代码基线审计
|
|
|
|
|
|
7. 确认最终技术栈
|
|
|
|
|
|
8. 建立Phase 01任务清单
|
|
|
|
|
|
9. 建立测试基础设施
|
|
|
|
|
|
10. 再开始Phase 01开发
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
如果仓库已经存在:
|
|
|
|
|
|
|
|
|
|
|
|
> 不得直接推翻重写。
|
|
|
|
|
|
|
|
|
|
|
|
先进行:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
现状分析
|
|
|
|
|
|
↓
|
|
|
|
|
|
与V1规范Gap Analysis
|
|
|
|
|
|
↓
|
|
|
|
|
|
保留可复用代码
|
|
|
|
|
|
↓
|
|
|
|
|
|
渐进重构
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
# 第三百零四章 WorkBuddy首次仓库审计必须输出
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
当前技术栈
|
|
|
|
|
|
目录结构
|
|
|
|
|
|
已有模块
|
|
|
|
|
|
已有数据库
|
|
|
|
|
|
已有API
|
|
|
|
|
|
已有测试
|
|
|
|
|
|
已有部署
|
|
|
|
|
|
和V1需求一致的部分
|
|
|
|
|
|
存在冲突的部分
|
|
|
|
|
|
可复用部分
|
|
|
|
|
|
必须重构部分
|
|
|
|
|
|
风险
|
|
|
|
|
|
Phase 01建议
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第三百零五章 若仓库为空
|
|
|
|
|
|
|
|
|
|
|
|
则严格按照:
|
|
|
|
|
|
|
|
|
|
|
|
> Phase 01 → Phase 26
|
|
|
|
|
|
|
|
|
|
|
|
顺序推进。
|
|
|
|
|
|
|
|
|
|
|
|
禁止:
|
|
|
|
|
|
|
|
|
|
|
|
> Phase 01时顺手把后面所有功能都做一点。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第三百零六章 长期连续开发规则
|
|
|
|
|
|
|
|
|
|
|
|
每次任务结束必须留下:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Current Phase
|
|
|
|
|
|
Completed
|
|
|
|
|
|
Next Task
|
|
|
|
|
|
Known Issues
|
|
|
|
|
|
Pending Decisions
|
|
|
|
|
|
Test Result
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-09-16 14:37:44 +08:00
|
|
|
|
保证下一次WorkBuddy恢复上下文时:
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
> 可以从项目状态继续,而不是重新理解整个项目。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 第三百零七章 最终交付原则
|
|
|
|
|
|
|
|
|
|
|
|
整个V1.0项目最终应呈现为:
|
|
|
|
|
|
|
|
|
|
|
|
> **代码能运行。**
|
|
|
|
|
|
|
|
|
|
|
|
> **文档能接手。**
|
|
|
|
|
|
|
|
|
|
|
|
> **测试能证明。**
|
|
|
|
|
|
|
|
|
|
|
|
> **部署能复现。**
|
|
|
|
|
|
|
|
|
|
|
|
> **数据能恢复。**
|
|
|
|
|
|
|
|
|
|
|
|
> **权限能控制。**
|
|
|
|
|
|
|
|
|
|
|
|
> **业务能闭环。**
|
|
|
|
|
|
|
|
|
|
|
|
> **运营能执行。**
|
|
|
|
|
|
|
|
|
|
|
|
这才是本项目真正意义上的“完成”。
|