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