feat: P1 合盘/星座/问答与测测完整设计包及模拟器取证工具

落地 synastry/star/ask API 与 H5 页面,补齐 cece-frontend-re complete-design 证据文档,并加入 Android 模拟器截图抓取脚本。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
jackyu66git
2026-08-03 11:37:53 +08:00
co-authored by Cursor
parent 15a9db374a
commit bd22d9dddd
248 changed files with 26309 additions and 842 deletions
@@ -0,0 +1,250 @@
# 00 · 测测前端总览(L0 IA · 全功能清单)
> Evidence: 以 E1 实测为主 · E2/E3 补充 · E6/E7 标明推断
---
## STEP 1 — 全局页面组成(App Shell
### 1.1 底部导航(五 Tab)✅ E1
| Tab | 视觉权重 | 入口职责 |
|---|---|---|
| 首页 | 标准 | 发现 · 工具宫格 · 信息流 · 建档引导 |
| 消息 | 标准 | AI/达人/社区/系统/商业通知 |
| **问** | **中央突出 + AI 标识** | 战略入口 → 测测 AI(内含真人 1v1 Tab |
| 在线 | 标准 | 达人 Marketplace |
| 我的 | 标准 | 账号 · 档案资产 · 会员订单 |
```text
┌─────────────────────────────┐
│ 页面内容区 │
├──────┬──────┬──────┬────┬───┤
│ 首页 │ 消息 │ 问* │在线│我的│
└──────┴──────┴──▲───┴────┴───┘
│ *中央悬浮突出 + AI 标识
```
### 1.2 全局浮层 / 横切 UI(推导)
| 元素 | 来源 | 说明 |
|---|---|---|
| 登录/绑定弹层 | 🟡 E6 | 游客触达付费/发帖时 |
| 会员购买半屏 | ✅ E1 商业描述 | 首月/包月/季/年 |
| 网络错误 Toast | 🔵 E7 | 全 App |
| 权限(相册/麦克风)系统弹窗 | 🔵 E7 | 沙盘/连麦/OCR |
| 青少年/合规提示 | 🟡 E6 | 泛心理合规 |
| 分享面板(微信/海报) | ✅ E2 裂变叙事 | 测评结果卡 |
| 角标(消息未读) | 🟡 E6 | 消息 Tab |
---
## STEP 2 — 前端功能全清单(Feature Inventory
### A. 导航与账号
| ID | 功能 | 证据 |
|---|---|---|
| NAV-01 | 五 Tab 切换 | ✅ E1 |
| NAV-02 | 「问」战略权重突出 | ✅ E1 |
| ACC-01 | 手机/微信/Apple 登录 | ✅ E1 基础信息 |
| ACC-02 | 游客 → 注册升级 | 🟡 E6 |
| ACC-03 | 账号设置/注销 | 🔵 E7 |
### B. 生命档案(前端核心资产)
| ID | 功能 | 证据 |
|---|---|---|
| PROF-01 | 创建本人档案(生日/时/地/性别) | ✅ E1 |
| PROF-02 | 创建关系档案(伴侣/朋友等) | ✅ E1 |
| PROF-03 | 多档案切换 | ✅ E1(AI 视角选择器) |
| PROF-04 | 首页「输入生日,更加了解 TA」引导 | ✅ E1 |
| PROF-05 | 档案编辑/删除 | 🟡 E6 |
| PROF-06 | 兴趣/状态标签 | 🟡 E4 |
### C. 首页工具宫格(快捷入口)✅ E1
| ID | 入口文案 | 域 |
|---|---|---|
| GRID-01 | I人E人(MBTI | 测评 |
| GRID-02 | 星座 | 星座内容 |
| GRID-03 | 星盘 | 本命/多盘型 |
| GRID-04 | 缘分合盘 | 合盘+指数 |
| GRID-05 | 沙盘 | 3D 心理沙盘 |
| GRID-06 | 陪伴小星 | AI 陪伴子入口 |
| GRID-07 | 商城 | 电商 |
| GRID-08 | 倾诉 | 咨询/AI |
| GRID-09 | AI 玩法广场 | UGC AI 小应用 |
| GRID-10 | 更多 | 收纳扩展 |
「更多」内公开提到(✅ E2):爱情树(依恋类型)、幸运地图、pick 卡等趣味测。
### D. 「问」AI 与双轨
| ID | 功能 | 证据 |
|---|---|---|
| ASK-01 | 测测 AI 对话 | ✅ E1 |
| ASK-02 | 顶栏「测测AI ‖ 真人1v1」 | ✅ E1 |
| ASK-03 | 视角:星盘维度 | ✅ E1 |
| ASK-04 | 对象:自己 / 已建档 TA | ✅ E1 |
| ASK-05 | 深度思考模式开关 | ✅ E1 |
| ASK-06 | 灵魂伴侣子入口(横向滑动) | ✅ E1 |
| ASK-07 | 预置引导问题(星盘向) | ✅ E1 |
| ASK-08 | 下拉历史消息 | ✅ E1 |
| ASK-09 | AI 心情小镇(多虚拟倾诉师) | ✅ E1/E2 |
| ASK-10 | 灵犀/小智(子场景/模式,非并列 Tab) | ✅ E1 纠正 |
### E. 星座 / 星盘 / 合盘 / 运势
| ID | 功能 | 证据 |
|---|---|---|
| AST-01 | 本命星盘展示与档案切换 | ✅ E3 |
| AST-02 | 多盘型(报道称可达约 20 种工具盘) | ✅ E3 |
| AST-03 | 合盘:比较盘/组合盘/时空盘/马克斯盘等 | ✅ E3 |
| AST-04 | 组合推运等推运变体 | ✅ E3 |
| AST-05 | 缘分指数(恋爱等) | ✅ E2 |
| AST-06 | 日/周/月/年运势 | ✅ E3/E4 |
| AST-07 | 附近的人 / 微信好友连线合盘 | 🟡 E3/行业 + 产品常见;【待真机补证】 |
### F. 测评与神秘学工具
| ID | 功能 | 证据 |
|---|---|---|
| TEST-01 | MBTI(修订量表+分享) | ✅ E1/E2 |
| TEST-02 | 双人 MBTI/性格关系 | ✅ E2 |
| TEST-03 | 塔罗抽牌/提问 | ✅ E3 |
| TEST-04 | 八字/紫微/生命数字等 | ✅ E3 |
| TEST-05 | 爱情树/幸运地图/pick 卡 | ✅ E2 |
| TEST-06 | 50+ 心理测试矩阵 | 🟡 E3 口径 |
### G. 沉浸体验
| ID | 功能 | 证据 |
|---|---|---|
| IMM-01 | 3D 心理沙盘 | ✅ E1/E2 |
| IMM-02 | AI 心情小镇(约 6 人设,含「明朗」) | ✅ E1 |
### H. 社区与内容
| ID | 功能 | 证据 |
|---|---|---|
| SOC-01 | 首页信息流(文章/视频/故事/达人) | ✅ E1 |
| SOC-02 | 今日运势/热门测试/专家推荐 | ✅ E4 |
| SOC-03 | AI 玩法广场 UGC 列表(热度/创作者) | ✅ E1 |
| SOC-04 | 赞评关私信 | 🟡 E4 |
### I. 在线达人
| ID | 功能 | 证据 |
|---|---|---|
| EXP-01 | 达人列表/筛选 | ✅ E1 |
| EXP-02 | 文字/语音/连麦咨询 | ✅ E1 |
| EXP-03 | 评价/复购 | 🟡 E6 |
| EXP-04 | 达人约 2.6 万签约口径 | ✅ E1 官方口径 |
### J. 商业化前端
| ID | 功能 | 证据 |
|---|---|---|
| PAY-01 | 会员:首月 9.9 / 续订 25/月;季 58;年 178 | ✅ E1 |
| PAY-02 | 报告解锁 / AI 次数 | ✅ E1 |
| PAY-03 | 咨询下单支付 | ✅ E1 |
| PAY-04 | 商城 | ✅ E1 宫格 |
| PAY-05 | 主动压缩干扰广告 | ✅ E1 |
### K. 增长
| ID | 功能 | 证据 |
|---|---|---|
| GRW-01 | 测评结果分享卡 | ✅ E1/E2 |
| GRW-02 | 邀请好友测 MBTI | ✅ E2 |
| GRW-03 | 签到/积分/勋章 | 🟡 E4 |
---
## STEP 3 — 全局用户流程
### 3.1 新用户冷启动 ✅ E1 场景
```text
打开 App
→(可选登录)首页
→ 点宫格 MBTI / 或看信息流
→ 完成测评 → 结果页 → 分享/付费墙
→ 引导建档(生日)
→ 可进入「问」或合盘
```
### 3.2 关系资产飞轮 ✅ E1
```text
首页「了解 TA」/ AI 对象切换
→ 录入对方生日建关系档案
→ AI 基于 TA 星盘回答 / 合盘
→ 分享结果 → 拉新
```
### 3.3 全局失败路径(必须实现)🔵 E7
| 场景 | 前端表现 |
|---|---|
| 断网/弱网 | 空态 + 重试;消息/AI 发送失败可重发 |
| Token 失效 | 跳登录;草稿保留 |
| 接口超时 | Toast + 重试 |
| 会员限制 | VIPLocked 半屏 |
| 余额不足(咨询) | 充值/支付 |
| 审核失败(UGC) | 说明原因 |
| 数据为空 | Empty 插画 + CTA |
---
## STEP 4 — 全局状态机(App Shell
```mermaid
stateDiagram-v2
[*] --> Init
Init --> Loading: 启动
Loading --> GuestHome: 无登录
Loading --> AuthedHome: 已登录
GuestHome --> LoginRequired: 触达 gated
LoginRequired --> AuthedHome: 登录成功
AuthedHome --> Offline: 断网
Offline --> AuthedHome: 恢复
AuthedHome --> VIPLocked: 点深度权益
VIPLocked --> AuthedHome: 购买或关闭
AuthedHome --> Error: 致命错误
Error --> AuthedHome: 重试
```
页面级状态见各 Tab 文档。
---
## 页面路由树(前端逻辑路由 · 推导)
```text
/ 首页
/message 消息
/ask 问(默认 AI)
/ask?mode=human 真人1v1
/online 在线达人列表
/online/:expertId 达人详情
/consult/:sessionId 咨询会话
/mine 我的
/profile/list 档案列表
/profile/edit/:id 档案编辑
/tools/mbti MBTI
/tools/chart 星盘
/tools/synastry 缘分合盘
/tools/sandbox 沙盘
/tools/plaza AI玩法广场
/tools/plaza/:appId 玩法详情
/tools/tarot 塔罗
/tools/bazi 八字…
/membership 会员
/orders 订单
/shop 商城
/mood-town AI心情小镇
```
路径名为 🔵 工程命名;测测真实 Deep Link 【待真机补证】。
@@ -0,0 +1,118 @@
# 01 · Tab「首页」逆向设计
> Evidence: ✅ E1 实测 · ✅ E2「更多」工具 · 🟡/🔵 补全交互
---
## STEP 1 — UI Analysis
### 区域结构(自上而下)
| # | 区域 | 可见元素 | 证据 |
|---|---|---|---|
| H1 | 顶栏 | 可能含搜索/消息入口;「输入生日,更加了解 TA」引导条 | ✅ E1 |
| H2 | 用户/档案摘要 | 当前本人档案摘要或未建档 CTA | 🟡 E6 |
| H3 | 功能宫格 | I人E人、星座、星盘、缘分合盘、沙盘、陪伴小星、商城、倾诉、AI玩法广场、更多 | ✅ E1 |
| H4 | 运营 Banner | 活动/会员/新品 | 🟡 E6 |
| H5 | 推荐信息流 | 今日运势、热门测试、AI入口、专家推荐、文章/视频/故事/达人内容 | ✅ E1/E4 |
| H6 | 底部 Tab Bar | 全局 | ✅ E1 |
### 宫格 Icon 全集(不得遗漏)✅ E1
1. I人E人(MBTI
2. 星座
3. 星盘
4. 缘分合盘
5. 沙盘
6. 陪伴小星
7. 商城
8. 倾诉
9. AI玩法广场
10. 更多 → 二级页:爱情树、幸运地图、pick卡… ✅ E2
### AI 玩法广场页内元素 ✅ E1
- Slogan:「全民手搓创意——精选应用」
- 列表卡片:应用名、热度(如 SBTI 305.7 万)、创作者名
- 示例:SBTI 测试版、答案之书、三生三世你和 Ta、灵魂伴侣
---
## STEP 2 — Feature Analysis(逐元素)
| 元素 | 作用 | 点击 | 长按/其它 | 权限/VIP | 分享 |
|---|---|---|---|---|---|
| 了解 TA 引导 | 建关系档案 | 进档案创建表 | — | 登录 | 否 |
| MBTI | 拉新测评 | 进量表流程 | — | 部分结果免费 | 结果强分享 |
| 星座 | 内容/运势 | 星座频道 | — | 深度会员 | 文章可分享 |
| 星盘 | 本命排盘 | 星盘页+档案切换 | — | 多盘型/详解会员 | 海报 |
| 缘分合盘 | 双人匹配 | 选 A/B→报告 | — | 指数免费/深文案付费 | 指数卡 |
| 沙盘 | 沉浸投射 | 3D 沙盘 | — | 可能次数限制 | 场景图 |
| 陪伴小星 | AI 陪伴 | 进子场景/问 | — | AI 次数 | 否 |
| 商城 | 电商 | 商品列表 | — | 登录支付 | 商品 |
| 倾诉 | 咨询/AI | 分流问/在线 | — | — | 否 |
| AI玩法广场 | UGC 应用集市 | 列表→应用 | — | 视应用 | 应用结果 |
| 信息流卡片 | 消费/转化 | 详情/达人/测试 | 可能不喜欢 | — | 内容分享 |
| 更多 | 收纳 | 二级宫格 | — | — | — |
---
## STEP 3 — User Flow
### 主流程:测评拉新
```text
首页 → MBTI → 答题 → Loading → 结果
→ 分享 / 解锁完整 / 邀请好友再测
→ 失败:网络错误重试;中途退出保存进度【待真机】
```
### 主流程:建 TA 档案
```text
首页引导 → 填写生日/关系类型 → 保存
→ 可用于合盘 / AI 对象切换
→ 失败:校验生日非法;未登录 → LoginRequired
```
### 主流程:玩法广场
```text
宫格 → 广场列表 → 选应用 → 互动 → 结果 → 热度/分享
→ Empty:无应用;审核中不可见 🔵
```
---
## STEP 4 — 状态机
| 状态 | UI |
|---|---|
| Init/Loading | 骨架屏 |
| Loaded | 宫格+流 |
| EmptyFeed | 流空+推荐宫格 |
| Offline | 顶条提示 |
| LoginRequired | 登录半屏 |
| VIPLocked | 会员半屏 |
| Error | 重试 |
```mermaid
stateDiagram-v2
[*] --> Loading
Loading --> Loaded
Loading --> Error
Loaded --> LoginRequired
Loaded --> VIPLocked
Loaded --> Offline
Offline --> Loaded
Error --> Loading: 重试
```
---
## 页面验收(前端)
- [ ] 宫格 9+更多与 E1 一致(版本差分记日志)
- [ ] 「了解 TA」可达档案创建
- [ ] 玩法广场展示热度与创作者
- [ ] 信息流可下拉刷新 / 分页 🔵
@@ -0,0 +1,55 @@
# 02 · Tab「消息」逆向设计
> Evidence: ✅ E1/E4 分类 · 细交互多为 🟡/🔵(【待真机补证】)
---
## STEP 1 — UI Analysis
| 区域 | 元素 | 证据 |
|---|---|---|
| 顶栏 | 标题「消息」· 可能「一键已读」 | 🟡 E6 |
| 分类 Tab/分组列表 | AI 消息 · 达人消息 · 社区互动 · 系统 · 商业 | ✅ E4 |
| 会话行 | 头像 · 标题 · 摘要 · 时间 · 未读红点 | 🟡 E6 |
| 空态 | 插画 +「去问问 AI」CTA | 🔵 E7 |
| 底栏 | 全局 Tab,消息角标 | 🟡 E6 |
---
## STEP 2 — Feature Analysis
| 类型 | 作用 | 点击 | 删除/免扰 | 登录 |
|---|---|---|---|---|
| AI 消息 | 会话提醒/未读 AI | 进「问」对应线程 | 可删会话 🟡 | 是 |
| 达人消息 | 咨询回复 | 进咨询会话 | 是 | 是 |
| 社区 | 赞评关私信 | 进动态/私信 | 是 | 是 |
| 系统 | 公告/合规 | 详情页 | 通常不可删 | 是 |
| 商业 | 会员到期/订单/活动 | 会员/订单页 | 是 | 是 |
长按:删除会话 / 标记已读 / 免打扰 🟡 E6。
---
## STEP 3 — User Flow
```text
进入消息 → Loading → 列表
→ 点 AI 会话 → /ask 历史
→ 点达人 → 咨询页(可能支付状态校验)
→ 点系统 → H5/原生详情
失败:Token 失效登录;离线缓存只读 🔵
```
---
## STEP 4 — 状态机
Init → Loading → Loaded | Empty | Offline | Error | LoginRequired
未读数:本地角标 ↔ 服务端 sync 🔵。
---
## 后台推导(摘要 · 详见 08)
推送通道、消息模板、免打扰时段、达人回复 SLA 监控 🔵。
@@ -0,0 +1,101 @@
# 03 · Tab「问」逆向设计(测测 AI + 真人 1v1)
> Evidence: ✅ E1 实测最完整 · 核心战略入口
---
## STEP 1 — UI Analysis
### 进入方式
- 底部中央「问」悬浮大按钮 + AI 标识 ✅ E1
### 对话页结构 ✅ E1
| 区域 | 元素 |
|---|---|
| 顶栏 | Tab**测测AI** ‖ **真人1v1** |
| 提示 | 「下拉可浏览历史消息」 |
| 消息区 | 气泡列表 · 引导问题卡片(冷启动) |
| 上下文条(输入框上方) | **星盘**(解读维度)· **对象名**(默认「自己」,可切 TA)· **深度思考** |
| 右侧滑动 | **灵魂伴侣** 子入口 |
| 输入区 | 文本框 · 发送 · 可能语音 🟡 |
| 预置问题示例 | 「什么样的朋友适合我」「下周的财富情况如何」「本月在人际上需要注意什么」等(星盘向) |
### 子场景(非并列 Tab)✅ E1
- 灵魂伴侣:测测 AI 生态内横向入口
- AI 心情小镇:独立沉浸(多从首页/运营进入)· 约 6 位虚拟倾诉师 · OCR/情感识别 · 角色「明朗」等
- 灵犀 / 小智:更接近模式或子场景,**不是**与测测 AI 同级的底部入口
---
## STEP 2 — Feature Analysis
| 元素 | 作用 | 点击后 | VIP/次数 | 其它 |
|---|---|---|---|---|
| 测测AI Tab | 免费/限额 AI | 保持 AI 会话 | AI 次数/会员扩容 | — |
| 真人1v1 Tab | 达人咨询 | 达人列表或推荐咨询 | 付费 | 可从 AI 低摩擦切换 |
| 星盘标签 | 切换解读维度 | 维度面板【待真机】 | — | — |
| 对象名称 | 切换档案 | 档案选择器(自己/TA) | 需已建档 | 长按?【待真机】 |
| 深度思考 | 更高推理模式 | Toggle;可能耗更多额度 | 可能会员 | — |
| 灵魂伴侣 | 子场景 | 进入专项互动 | 视产品 | 可分享 🟡 |
| 引导问题 | 冷启动 | 自动填入并发送 | 计次 | — |
| 发送 | 提交 | Streaming 回复 | 额度不足 → 会员墙 | 防重复点击 🔵 |
| 下拉历史 | 翻旧消息 | 分页加载 | — | ≠ 长期记忆 |
---
## STEP 3 — User Flow
### AI 主路径
```text
点「问」→ Loading 会话
→ 展示引导问题(星盘向)
→ 可选:切换对象为 TA(无档案则引导创建)
→ 可选:开深度思考
→ 发送 → Streaming
→ 可切换「真人1v1」升单
```
### 失败 / 边界
| 场景 | 处理 |
|---|---|
| 无额度 | VIPLocked / 看广告?【待真机】 |
| 敏感内容 | 拒答 + 转介真人/热线 🔵 |
| 超时 | 重试气泡 |
| 对象无星盘数据 | 引导补全出生信息 |
| 中重度心理危机 | 明确边界文案 + 转介 🔵 |
---
## STEP 4 — 状态机
```mermaid
stateDiagram-v2
[*] --> Loading
Loading --> IdleEmpty: 新会话
Loading --> IdleWithHistory: 有历史
IdleEmpty --> Streaming: 发送/点引导
IdleWithHistory --> Streaming
Streaming --> IdleWithHistory: 完成
Streaming --> Failed: 错误
Failed --> Streaming: 重试
IdleWithHistory --> LoginRequired
IdleWithHistory --> VIPLocked: 额度用尽
IdleWithHistory --> HumanRail: 切真人1v1
```
状态枚举:Init · Loading · IdleEmpty · IdleWithHistory · Streaming · Failed · Retrying · Offline · LoginRequired · VIPLocked · HumanRail · PermissionDenied(麦克风)
---
## 差异化要点(产品事实)✅ E1
1. AI **挂星盘档案**,非通用闲聊
2. **对象切换**把「了解自己」扩到「分析关系」
3. AI ‖ 真人 **同页双轨**
已知缺口(公开评价)✅ E1:偏被动触达;跨会话长期记忆不足;引导问题偏运势易被感知为「算命 AI」。
@@ -0,0 +1,57 @@
# 04 · Tab「在线」逆向设计(达人 Marketplace
> Evidence: ✅ E1 双边平台描述 · 列表 UI 细节 🟡【待真机】
---
## STEP 1 — UI Analysis
| 区域 | 元素 | 证据 |
|---|---|---|
| 顶栏 | 搜索达人 · 筛选(领域/价格/好评) | 🟡 E6 |
| 运营位 | 推荐达人 Banner | 🟡 E6 |
| 列表卡片 | 头像 · 昵称 · 领域标签(星座/塔罗/命理/情感)· 评分 · 价格起 · 在线状态 | ✅ E1 类型 + 🟡 UI |
| 详情页 | 简介 · 服务项(文字/语音/连麦)· 评价 · 下单 CTA | ✅ E1 |
| 会话页 | 聊天/通话 UI · 倒计时/计费 | 🟡 E6 |
专家类型 ✅ E1:星座专家 · 塔罗师 · 命理师 · 心理/情感达人。
---
## STEP 2 — Feature Analysis
| 元素 | 点击 | 支付 | 评价 | 举报 |
|---|---|---|---|---|
| 达人卡 | 详情 | — | — | — |
| 文字咨询 | 下单→会话 | 是 | 结束后 | 是 🔵 |
| 语音/连麦 | 权限+下单 | 是 | 是 | 是 🔵 |
| 收藏达人 | Toggle | — | — | — 🟡 |
| 筛选排序 | 刷新列表 | — | — | — |
撮合:推荐排序 · 平台抽成 ✅ E1。
---
## STEP 3 — User Flow
```text
在线 → 浏览/搜索/筛选 → 达人详情
→ 选服务方式 → 创建订单 → 支付
→ 等待接单 → 服务中 → 结束 → 评价 → 复购
失败:支付取消/失败;达人拒单;超时退款;权限拒绝麦克风
```
---
## STEP 4 — 状态机(订单视角)
Created → Paying → Paid → Matched → InService → Completed → Reviewed
旁路:Cancelled · Refunding · Refunded · Dispute
前端页映射:列表 Loaded/Empty · 详情 · Checkout · Waiting · Chatting · Call · Rate。
---
## 达人供给运营(后台推导)🔵
入驻审核 · 培训激励 · 测测达人版工具 · 服务质量监控 · 分佣配置。
@@ -0,0 +1,61 @@
# 05 · Tab「我的」逆向设计
> Evidence: ✅ E1 资产分层 · 菜单项 🟡【待真机补全文案】
---
## STEP 1 — UI Analysis
| 区域 | 元素 | 证据 |
|---|---|---|
| 头部 | 头像 · 昵称 · 会员标识 · 编辑资料 | ✅ E1 账号体系 |
| 资产摘要 | 会员状态 · AI 剩余次数 · 积分/等级 🟡 | ✅ E1 + 🟡 |
| 功能列表 | 生命档案 · 测试/报告库 · AI 对话历史 · 订单 · 会员中心 · 收藏 · 设置 · 客服 | ✅ E1 §5 + 🔵 |
| 其它 | 达人入驻入口? · 关于/协议 | 🟡 E6 |
---
## STEP 2 — Feature Analysis
| 入口 | 作用 | 点击 | 编辑/删除 | VIP |
|---|---|---|---|---|
| 生命档案 | Self/Other 管理 | 列表/编辑 | 是 | — |
| 测试记录 | 历史量表 | 报告详情 | 可能删 | 深度报告 |
| 报告库 | 星盘/合盘/AI 报告 | 打开 | 收藏 | 解锁态 |
| AI 历史 | 会话列表 | 进「问」 | 删会话 | — |
| 会员中心 | 订阅管理 | 购买/管理自动续费 | — | — |
| 订单 | 咨询/商城/解锁 | 详情/退款入口 | — | — |
| 设置 | 账号安全/通知/隐私 | 子页 | 注销 | — |
| 分享邀请 | 裂变 | 邀请码/海报 | — | — 🟡 |
---
## STEP 3 — User Flow
```text
我的 → 点档案 → 编辑生日/关系
我的 → 会员 → 选套餐 → 支付 → 权益生效
我的 → 订单 → 售后/发票【待真机】
失败:登录态丢失;支付中断;注销二次确认
```
---
## STEP 4 — 状态机
GuestMine(引导登录)· Loading · Loaded · VIPActive · VIPExpired · Error
会员角标与首页权益 Tip 联动 🔵。
---
## 会员定价前端展示(必须完整)✅ E1
| 套餐 | 价格 |
|---|---|
| 首月 | ¥9.9 |
| 续订月 | ¥25/月 |
| 连续包季 | ¥58/季(约 ¥19.3/月) |
| 连续包年 | ¥178/年(约 ¥14.8/月) |
权益文案:完整测评报告 · AI 次数扩展 · 专属内容 ·(历史含去广告)✅ E1。
@@ -0,0 +1,104 @@
# 06 · 工具域:星座 · 星盘 · 合盘 · 运势
> Evidence: ✅ E1/E2 入口与合盘指数 · ✅ E3 盘型列表 · 社交合盘 🟡【待真机】
---
## STEP 1 — 页面家族
| 页面 | 主要 UI | 证据 |
|---|---|---|
| 星座频道 | 十二星座列表/今日运势流 | ✅ E4 |
| 本命星盘 | 圆形星盘 · 行星列表 · 宫位 · 档案切换 · 添加档案 | ✅ E3 操作步骤 |
| 盘型选择 | 多盘型工具(报道称对标多软件、约 20 种) | ✅ E3 |
| 运势 | 日/周/月/年(及一生类报告) | ✅ E3 |
| 缘分合盘 | 双人选择 · 指数 · 多盘型 Tab | ✅ E2/E3 |
| 合盘社交 | 附近的人 / 好友连线 | 🟡 E3/行业 |
### 合盘盘型(前端 Tab 级)✅ E3
| 盘型 | 说明(产品侧) |
|---|---|
| 比较盘 | 双盘叠合与跨盘相位 |
| 组合盘 | 中点关系盘 |
| 时空盘 | 时刻/坐标中点再排盘 |
| 马克斯盘(马克思盘) | 时空×本命中点视角 |
| 组合推运等 | 次限/推运变体 |
另:行运盘、三限盘、月亮返照等出现在星盘工具描述中 ✅ E3。
---
## STEP 2 — Feature Analysis
| 元素 | 作用 | 交互 | VIP |
|---|---|---|---|
| 档案切换 | 换本命主体 | 顶栏切换/添加 | — |
| 星盘图 | 可视化 | 点行星看释义 | 详解付费 |
| 相位表 | 关系动力 | 列表/点击 | 完整表会员 |
| 恋爱/友情/婚姻指数 | 缘分量化 | 结果页大数字 | 指数免费/解读付费 🟡 |
| 盘型 Tab | 切换算法视图 | 不重复支付同报告 🟡 | 深文案付费 |
| 推运日期 | 次限 as_of | 日期选择器 | — |
| 分享 | 裂变 | 海报/链接 | — |
| 附近的人 | 匹配合盘对象 | 定位授权 | 隐私开关 🔵 |
---
## STEP 3 — User Flow
### 本命星盘
```text
首页「星盘」→ 默认本人盘
→ 右上切换/添加他人档案(生日等)
→ 返回切换查看
→ 可选盘型/运势/报告解锁
```
### 缘分合盘
```text
首页「缘分合盘」→ 选档案 A/B(或快速建档)
→ 生成指数 + 默认比较盘
→ Tab 切换组合/时空/马克斯/配对/推运
→ 深度解锁 / 分享
```
### 失败
缺出生时 → 上升/宫位降级提示;定位拒绝 → 仅手动选城;支付失败保留摘要。
---
## STEP 4 — 状态机(合盘报告页)
```mermaid
stateDiagram-v2
[*] --> Form
Form --> Computing: 提交
Computing --> SummaryFree: 成功
Computing --> Error
SummaryFree --> DeepLocked
DeepLocked --> DeepOpen: 支付/会员
SummaryFree --> ChartTabSwitch
ChartTabSwitch --> SummaryFree
```
---
## 数据/算法面(前端依赖)
| 输入 | 字段 |
|---|---|
| BirthInfo | date · time · place · lat/lng · tz |
| Chart | planets[] · houses · aspects · asc |
| SynastryReport | indices · charts{} · as_of |
星历与宫位制:生产级需 Swiss Ephemeris 等 🔵;Whole Sign / Placidus 等切换【待真机】。
---
## 愈心谷对齐
已实现方向:`star-profile.md` · Synastry 五主盘+推运 · 附近/邀请。
测测「约 20 种盘」未全部落地处:Spec 中保留完整清单,实现按分期标注「未交付」而非删除。
@@ -0,0 +1,115 @@
# 07 · 工具域:测评 · 塔罗 · 沙盘 · 心情小镇 · 趣味玩法
> Evidence: ✅ E1/E2 · 流程细节 🟡/🔵
---
## A. MBTI / I人E人 ✅ E1/E2
### STEP 12
| UI | 交互 |
|---|---|
| 介绍页 · 开始测 | 进入答题 |
| 题目卡 · 进度条 | 单选;可返回上一题 🟡 |
| 结果页:16 型标签 · 维度图 · 解读 | 分享强引导;邀请好友对照关系类型 ✅ E2 |
| 付费墙 | 完整报告 |
学术背书:心言心理组修订量表、期刊《心理学进展》✅ E1(专业性证据,非 UI)。
### Flow
```text
开始 → N 题 → 提交 → 计分 Loading → 结果 → 分享/解锁/再测/双人对照
```
状态:Answering · Submitting · ResultFree · ResultLocked · ShareSheet。
---
## B. AI 玩法广场 ✅ E1
UGC 小应用集市(非官方智能体矩阵)。
| UI | 说明 |
|---|---|
| 列表 | 名 · 热度 · 创作者 |
| 应用页 | 互动表单/对话 → 结果 |
| 创作入口 | 达人/用户「手搓」【待真机是否 C 端开放】 |
示例应用:SBTI、答案之书、三生三世你和 Ta、灵魂伴侣。
审核:上架前内容审核 🔵;违规下架。
---
## C. 3D 心理沙盘 ✅ E1/E2
| UI | 交互 |
|---|---|
| 3D 场景画布 | 拖放沙具/排序 |
| 主题模板 | 职场焦虑等场景引导 |
| AI 投射分析 | 生成解读 |
| 保存/分享 | 场景快照 |
数据:超 1200 万用户口径 ✅ E1。权限:可能陀螺仪/性能降级 🔵。
---
## D. AI 心情小镇 ✅ E1
| UI | 交互 |
|---|---|
| 角色选择 | ~6 人设(知心姐姐、理性学长、明朗…) |
| 对话/互动 | OCR · 情感识别 |
| 沉浸场景 | 小镇视觉 |
边界:轻度情绪;中重度转真人/专业机构 ✅ E1。
---
## E. 塔罗 ✅ E3
抽牌(单牌/三牌/阵)→ AI/达人解读 → 可提问;可能拍照识牌 🟡。
结果页:牌义 · 组合 · 建议 · 付费扩展。
---
## F. 命理工具箱 ✅ E3
八字(四柱/五行/大运/流年)· 紫微 · 姓名五格 · 二十八宿 · 生命数字。
前端:表单(姓名/生日)→ 盘面/条文 → 解锁。
---
## G. 「更多」趣味测 ✅ E2
| 名称 | 用途 |
|---|---|
| 爱情树 | 依恋类型 |
| 幸运地图 | 幸运/桃花城市等 |
| pick 卡 | 趣味抽取 |
Flow 同轻量测评:介绍 → 互动 → 结果 → 分享。
---
## H. 每日心情 / 打卡 🟡 E1 留存叙述
入口可能在首页或陪伴场景;打卡日历 · 情绪曲线 · 驱动晚间打开(50% 用户 19:00 后 ✅ E1)。
---
## 统一测评状态机
```mermaid
stateDiagram-v2
[*] --> Intro
Intro --> InProgress
InProgress --> Scoring
Scoring --> ResultTeaser
ResultTeaser --> Paywall
Paywall --> ResultFull
ResultTeaser --> Share
Scoring --> Error
```
@@ -0,0 +1,232 @@
# 08 · 横切系统逆向(STEP 518)
> 支撑前端全功能的数据 / API / 后台 / 运营 / 安全推导
> 标记:无公开 UI 的条目多为 🟡/🔵,但**禁止省略整类**
---
## STEP 5 — 数据模型(核心对象)
| 对象 | 关键字段(类型) | 可空 | 默认 | 来源 | 缓存 | 索引 | 证据 |
|---|---|---|---|---|---|---|---|
| User | id UUID PK · phone · wx_openid · status · created_at | 部分 | active | 注册 | Redis session | phone unique | ✅ E1 |
| Profile | id · user_id · relation(self/other) · display_name · birth_date · birth_time · birth_place · geo_* · tags JSON | time/place 可空 | — | 建档 | 本地+服务端 | user_id | ✅ E1 |
| BirthInfo | 可内嵌 Profile | — | tz=CST+8 🟡 | — | — | — | 🟡 |
| AstrologyChart | profile_id · jd · planets JSON · houses JSON · system · version | — | — | 计算服务 | 按 profile+ver | profile_id | 🔵 |
| SynastryReport | id · profile_a · profile_b · indices JSON · charts JSON · as_of | — | — | 合盘 | 报告缓存 | (a,b) | ✅ E3 |
| TestDefinition | slug · title · questions JSON · scoring | — | published | CMS | CDN | slug | ✅ E1 MBTI |
| TestRecord | user_id · test_id · answers · result · share_code | — | — | 提交 | — | user_id | ✅ E2 |
| AIConversation | id · user_id · profile_ctx_id · mode · messages | — | — | 问 | 热数据 | user_id | ✅ E1 |
| AIQuota | user_id · remaining · period | — | 免费额 | 会员 | Redis | user_id | ✅ E1 |
| Expert | id · domains[] · price_text · price_voice · score · online | — | — | 达人平台 | 列表缓存 | domain | ✅ E1 |
| ConsultOrder | id · user_id · expert_id · mode · amount · status | — | created | 下单 | — | status | ✅ E1 |
| Membership | user_id · plan · status · expires_at · auto_renew | — | — | 订阅 | — | expires | ✅ E1 |
| Order | id · kind(membership/unlock/consult/shop) · amount_cents · status | — | — | 支付 | — | user_id | ✅ E1 |
| Notification | id · user_id · channel · type · payload · read_at | — | — | 推送/站内 | — | user_id,read | ✅ E4 |
| PlazaApp | id · creator_id · title · heat · status | — | pending | UGC | 热榜 | heat | ✅ E1 |
| Favorite | user_id · target_type · target_id | — | — | 收藏 | — | uniq | 🟡 |
| Coupon | id · rules JSON | — | — | 运营 | — | — | 🔵 |
| OperationLog | actor · action · meta | — | — | 后台 | 冷存 | time | 🔵 |
| ABAssignment | user_id · exp_key · bucket | — | — | 配置 | Redis | — | 🔵 |
---
## STEP 6 — 数据库设计(表清单)
必表(前端可感知数据):
`users` · `device_identities` · `profiles` · `growth_reports` / `synastry_reports` · `test_definitions` · `test_records` · `ai_conversations` · `ai_messages` · `ai_quotas` · `experts` · `consult_orders` · `memberships` · `orders` · `payments` · `notifications` · `plaza_apps` · `favorites` · `banners` · `feature_flags` · `audit_logs`
每表要求:PK UUID · `created_at`/`updated_at` · 软删 `deleted_at` · 外键 ON DELETE 策略明确 🔵。
合盘邀请示例:`synastry_invites(token unique, host_profile_id, expires_at, report_id)` 🔵(愈心谷已落地相近结构)。
---
## STEP 7 — API Reverse Engineering(可开发级草案)
> Path 为 🔵 工程命名;真实测测 Path【待抓包】
| Method | Path | 权限 | Request | Response 要点 | 错误码 |
|---|---|---|---|---|---|
| POST | /auth/login | 公网 | phone/wx | token · user | 401 |
| GET | /profiles | 登录 | — | items[] | — |
| POST | /profiles | 登录 | birth_* · relation | profile | 400 |
| PATCH | /profiles/:id | 所有者 | patch | profile | 404 |
| POST | /tests/:slug/submit | 登录 | answers | record_teaser · record_id | 429 |
| GET | /reports/:id | 所有者 | — | summary · detail? | 403 detail |
| POST | /astrology/natal | 登录 | profile_id | chart | 400 |
| POST | /astrology/synastry | 登录 | a · b · as_of | report | 400 |
| GET | /astrology/nearby | 登录+geo | lat,lng,r | items | 403 |
| POST | /ai/chat | 登录+额度 | message · profile_ctx · deep | stream SSE | 402 额度 |
| GET | /ai/conversations | 登录 | cursor | list | — |
| GET | /experts | 登录 | filter | list | — |
| POST | /consult/orders | 登录 | expert · mode | order | 402 |
| POST | /consult/orders/:id/pay | 登录 | channel | pay_params | 409 |
| GET | /membership/me | 登录 | — | plan · expires | — |
| POST | /orders | 登录 | kind · plan/report | order_id | — |
| GET | /messages | 登录 | cursor | items · unread | — |
| POST | /messages/:id/read | 登录 | — | ok | — |
| GET | /plaza/apps | 登录 | sort=heat | apps | — |
| POST | /plaza/apps/:id/run | 登录 | input | result | 403 审核 |
RateLimit:AI/支付严格限流;图表计算按用户 QPS 🔵。
Cache:星盘按 profile+ephemeris_ver;广场热榜 Redis ZSETBanner CDN。
Retry:幂等键用于支付与咨询下单。
---
## STEP 8 — 后台运营系统
| 模块 | 能力 | 证据 |
|---|---|---|
| Banner/运营位 | 首页头图、弹窗、闪屏 | 🔵 |
| 推荐位 | 达人/测试/文章排序 | 🟡 |
| 内容审核 | 广场 UGC、社区帖、达人资质 | 🔵 |
| 用户管理 | 封禁、注销、投诉 | 🔵 |
| 订单/退款 | 咨询与会员 | ✅ E1 商业 |
| 会员配置 | 价格、权益、首月优惠 | ✅ E1 |
| 活动配置 | 裂变、优惠券 | 🟡 |
| 推送 | 模板、人群包 | 🔵 |
| 统计看板 | DAU、转化漏斗、AI 次数 | 🔵 |
| AB / 配置中心 | 引导问题文案、价格实验 | 🔵 |
| 达人运营 | 入驻审核、分佣、培训 | ✅ E1 达人版 |
---
## STEP 9 — 权限矩阵
| 角色 | 能 | 不能 |
|---|---|---|
| 游客 | 浏览部分首页、部分测评 | AI 深度、咨询、发帖 |
| 登录用户 | 档案、基础 AI 次数、下单 | 未购深度 detail |
| VIP/会员 | 扩容 AI、完整报告、专属内容 | 后台 |
| SVIP | 🟡 若存在更高等级 | — |
| 达人 | 接单、达人工具 | 改平台分佣 |
| 运营 | CMS、活动、推荐 | 直接改支付流水 |
| 审核员 | 通过/驳回 UGC/达人 | 财务 |
| 客服 | 工单、补发权益 | 删库 |
| 管理员 | 配置与账号 | — |
| 超管 | 全量 | — |
前端:`LoginRequired` · `VIPLocked` · `PermissionDenied`
---
## STEP 10 — 支付系统
状态:Created → Paying → Paid / Failed / Cancelled →(退款)Refunding → Refunded
场景:重复支付防重 · 补单对账 · 咨询未接单自动退 · 风控限额 · 发票 🔵
渠道:IAP / 微信 / 支付宝 🟡【待真机】
前端:收银台 · 结果页 · 订单详情入口(我的)。
---
## STEP 11 — 消息系统
| 通道 | 用途 |
|---|---|
| Push | 达人回复、会员到期 |
| 站内信 | 消息 Tab |
| 短信 | 登录验证码 |
| 邮件 | 可选账单 🔵 |
| 角标 | Tab 未读聚合 |
策略:免打扰时段 · 营销推送开关 · AI 主动触达(公开称尚未强做)✅ E1。
---
## STEP 12 — 埋点
| 事件 | 触发 |
|---|---|
| page_view | 各 Tab/工具 |
| home_grid_click | 宫格 |
| test_start / test_complete / test_share | 测评 |
| ask_send / ask_deep_toggle / ask_switch_profile | 问 |
| ask_switch_human | 转真人 |
| synastry_complete / chart_tab_switch | 合盘 |
| expert_view / consult_pay | 在线 |
| membership_pay | 会员 |
| plaza_app_open | 广场 |
| error_api | 异常 |
漏斗:曝光 → 建档 → AI → 会员 → 咨询。停留时长、次日留存 🔵。
---
## STEP 13 — 配置系统
| 项 | 后台可配 | 写死 | 远程/灰度/AB |
|---|---|---|---|
| 宫格顺序/显隐 | ✓ | — | 灰度 |
| AI 引导问题 | ✓ | — | 按来源 AB ✅ E1 建议 |
| 会员价格 | ✓ | — | AB |
| 星历版本 | — | 逻辑 | 远程 flag |
| 审核词库 | ✓ | — | — |
| 功能开关(沙盘) | ✓ | — | 灰度 |
---
## STEP 14 — 缓存策略
| 层 | 内容 |
|---|---|
| 本地 | 档案草稿、会话草稿、最近报告摘要 |
| Redis | Session、AI 额度、热榜、限流 |
| CDN | 图片、静态运营配置 |
| 计算缓存 | 同档案星盘 TTL |
| 分页 | 信息流 cursor |
---
## STEP 15 — 异常处理(前端必达)
断网 · 弱网 · 超时 · 重复点击(按钮 loading)· Token 失效 · 本地数据损坏清缓存 · 强制升级 · 审核失败文案 · 404 资源 · 支付结果未知查单 · SSE 中断续传 🔵。
---
## STEP 16 — 日志
用户行为(隐私脱敏)· 前端错误 JS · API access · 支付 · 审核 · 运营操作 · 安全(登录失败/风控)🔵。
保留与销毁策略合规 🔵。
---
## STEP 17 — 安全
| 项 | 要求 |
|---|---|
| 权限 | 服务端强制 detail 剥离(不仅藏 UI) |
| 注入/XSS | 内容安全渲染 |
| CSRF/重放 | 支付与关键写接口 |
| 验证码 | 登录/敏感操作 |
| 风控 | 刷单、恶意咨询 |
| 设备 | device_key / 绑定 |
| 隐私 | geo 默认不可见;档案分享最小化 |
| 心理边界 | 危机话术与转介 |
遵守应用商店与网信/心理相关合规 🔵。
---
## STEP 18 — 可扩展性
| 方向 | 策略 |
|---|---|
| 新盘型 | charts 插件注册,API 加 mode |
| 新测评 | TestDefinition 配置化 |
| 新 AI 子场景 | Ask 内 slot,避免新 Tab |
| 多端 | 同一 BFF;小程序裁剪 Marketplace |
| API 兼容 | summary schema version 字段 |
| 模块解耦 | 计算服务与业务 API 分离 |
| 硬件(巴布) | 独立产品线,账号体系统一 ✅ E1 |
---
## Completeness 自检(STEP 518
- [x] 数据模型 / 库表 / API 草案
- [x] 后台 / 权限 / 支付 / 消息 / 埋点
- [x] 配置 / 缓存 / 异常 / 日志 / 安全 / 扩展
- [ ] 真实抓包字段级对齐【待补证】
@@ -0,0 +1,90 @@
# 测测 App 前端逆向工程设计文档(V1.0)
> Status: `Active` · Method: [reverse-engineering-spec.md](../../../design/reverse-engineering-spec.md)
> Scope: **前端可见能力 + 为支撑前端所必需的后台/数据/运营推导**
> 目标:Production / Enterprise / Feature Complete 级设计输入(非 Demo
---
## 0. 任务声明
| 项 | 内容 |
|---|---|
| 身份 | Senior Reverse Engineering Architect |
| 目标 App | 测测(CeCe / 测测星盘,心言集团) |
| 方法 | 逆向工程,非「设计一个类似 App」 |
| 禁止 | Demo · MVP 终态 · 「略 / TODO / 以后再做」糊弄 |
**落地到愈心谷时**:能力可完整对标;用户可见命名与禁词服从 [`lexicon.md`](../../lexicon.md);禁止自称「测测」、照搬商标视觉。
---
## 1. 证据来源总表(Evidence First
| ID | 来源 | 类型 | 日期/版本线索 |
|---|---|---|---|
| E1 | [人人都是产品经理 · 测测深度体验报告](https://www.woshipm.com/evaluating/6391148.html) | ✅ UI/行为证据(含实测截图描述) | 2026-05-09 |
| E2 | [中华网 · 测测功能图谱](https://tech.china.com/articles/20250417/202504171661508.html) | ✅ 行为/产品证据 + 🟡 运营口径 | 2025-04 |
| E3 | 应用商店/下载站功能介绍(星盘工具列表等) | ✅ 功能列表证据(版本可能滞后) | ~10.x 描述 |
| E4 | 本仓 [`cece-feature-map.md`](../../cece-feature-map.md) | 🟡 既有归纳 | 持续 |
| E5 | 本仓 [`apps/docs/analysis/cece-teardown.md`](../../../../apps/docs/analysis/cece-teardown.md) | 🟡 映射分析 | 历史 |
| E6 | 行业惯例 / 同类 App | 🟡 推断 | — |
| E7 | 工程完整性补充 | 🔵 工程建议 | — |
| E8 | 安卓模拟器 AVD `YuXinGu_API34` + APK 10.50.0 截图/UI dump | ✅ 真机 UI 证据 | 2026-08-03 |
> **局限**:无未公开 DAU/后台;HTTPS 抓包未做。E8 明细见 [complete-design/evidence-20260803.md](complete-design/evidence-20260803.md)。
---
## 2. 文档地图
| 文档 | 内容 | Workflow 覆盖 |
|---|---|---|
| [00-overview.md](00-overview.md) | L0 IA · 全功能清单 · 全局状态 · 导航 | STEP 1–4 全局 |
| [01-tab-home.md](01-tab-home.md) | 首页(宫格/信息流/建档/玩法广场) | STEP 14 |
| [02-tab-message.md](02-tab-message.md) | 消息 | STEP 14 |
| [03-tab-ask.md](03-tab-ask.md) | 「问」测测 AI + 真人 1v1 | STEP 14 |
| [04-tab-online.md](04-tab-online.md) | 在线(达人 Marketplace | STEP 14 |
| [05-tab-mine.md](05-tab-mine.md) | 我的 | STEP 14 |
| [06-tools-astrology.md](06-tools-astrology.md) | 星座 · 星盘 · 合盘 · 运势 | STEP 1–4 + 算法面 |
| [07-tools-tests-psych.md](07-tools-tests-psych.md) | MBTI · 塔罗 · 沙盘 · 心情小镇 · 趣味测 | STEP 1–4 |
| [08-systems.md](08-systems.md) | 数据/库/API/后台/权限/支付/消息/埋点/配置/缓存/异常/日志/安全/扩展 | STEP 518 |
| **[complete-design/](complete-design/README.md)** | **完整产品设计包(Design Complete** — 实现与模拟器校验前的唯一前端设计输入 | 定稿升格 |
---
## 3. Completeness Checklist(套件级)
- [x] 五 Tab 页面拆解
- [x] 首页宫格与「更多」工具域
- [x] AI / 达人双轨
- [x] 星盘与合盘工具面
- [x] 测评 / 沉浸体验
- [x] 横切系统 STEP 518
- [ ] 【待真机补证】逐按钮热区坐标与最新版 UI 差分
- [ ] 【待抓包补证】真实 API Path / 字段级 Response
套件可结束条件:上表「真机/抓包」两项未完成时,仍可作为 **Feature Complete 设计底稿**;实现前须补证据或接受 🟡/🔵 风险。
**完整设计定稿:** [complete-design/](complete-design/README.md) 已将 🟡/🔵 升格为设计定稿(D);真机/模拟器差分按 [99-emulator-validation.md](complete-design/99-emulator-validation.md) 回填。
---
## 4. 愈心谷映射入口
| 测测前端域 | 愈心谷当前落地 | Spec |
|---|---|---|
| 档案 / 了解 TA | Profile | `profile.md` |
| 问 / AI | Ask | `ask.md` |
| 星座 / 星盘 / 合盘 | Star + Synastry | `star-profile.md` |
| 测评 | Explore / Scale | `explore-test.md` |
| 会员 | Membership | `membership.md` |
| 消息 / 在线达人 | 分期后置 | feature-map `[P3]/`/`[No]` |
---
## 5. 维护
- 版本变更:在各文档顶部追加「差分日志」
- 真机补证:把 ✅ 行从 E1 升级为「真机 YYYY-MM-DD + 版本号」
- 与 [`cece-feature-map.md`](../../cece-feature-map.md) 保持 L0 一致;冲突时以本套件 + 更新证据为准
@@ -0,0 +1,150 @@
# 00 · 设计圣经(全局)
> Design ID: `CECE-FE-BIBLE-V1` · 定稿 · 待模拟器校验项见文末
---
## 1. 产品一句话
以趣味测评与星盘档案为入口,以「问」Tab 级 AI(挂档案)为战略核心,以达人咨询为高客单转化,以会员订阅为主营收的泛心理情感陪伴 App。
---
## 2. 信息架构(冻结)
### 2.1 底部五 TabD 定稿)
| 序 | Tab | 路由 key | 视觉(✅ E8 10.50.0 | 战略 |
|---|---|---|---|---|
| 1 | 首页 | `home` | 标准 | 发现与工具分发 |
| 2 | 消息 | `message` | 标准 + 未读数字角标 | 触达与会话入口 |
| 3 | **问** | `ask` | **中央大圆突出 + AI 角标** | 唯一 Tab 级官方 AI |
| 4 | 在线 | `online` | 标准 + 运营角标「限免」(可配) | 达人 Marketplace |
| 5 | 我的 | `mine` | 标准;游客文案「未登录」 | 资产与商业 |
规则:
- 禁止再增加第 6 个主 Tab。
- 灵犀/小智/灵魂伴侣/心情小镇 **不得**升为底部 Tab;一律挂「问」或首页宫格。
- 「问」内顶栏固定双轨:`测测AI` | `真人1v1`
### 2.2 全局导航栈
```text
RootTabNavigator
├── HomeStack
├── MessageStack
├── AskStack ← 中央按钮切到此栈
├── OnlineStack
└── MineStack
Modal 层:Login · MembershipPaywall · ShareSheet · SystemPermission · ForceUpdate
```
---
## 3. 全局组件目录(前端必须实现)
| 组件 | 职责 | 出现位置 |
|---|---|---|
| `AppTabBar` | 五 Tab;问中间凸起 | 全局 |
| `ProfileSwitcher` | 自己/TA 档案切换 | 问、星盘、合盘 |
| `BirthArchiveForm` | 生日/时/地/关系类型 | 建档、了解TA |
| `PaywallSheet` | 会员/单次解锁 | 报告、AI 额度 |
| `SharePosterSheet` | 结果卡分享 | 测评、合盘、星盘 |
| `NetworkBanner` | 离线/弱网 | 全局 |
| `EmptyState` | 空列表 CTA | 消息、订单、档案 |
| `ErrorRetry` | 失败重试 | 全局 |
| `StreamingBubble` | AI 流式回复 | 问 |
| `ExpertCard` | 达人列表项 | 在线 |
| `ChartWheel` | 圆形星盘 | 星盘/合盘 |
| `IndexScoreRow` | 恋爱/友情/婚姻指数 | 合盘 |
| `GridIcon` | 首页宫格 | 首页 |
| `FeedCard` | 信息流卡片 | 首页 |
| `PlazaAppCard` | 玩法广场项 | 广场 |
| `UnreadBadge` | 角标 | 消息 Tab |
---
## 4. 全局状态机(App
```mermaid
stateDiagram-v2
[*] --> ColdStart
ColdStart --> Bootstrap
Bootstrap --> GuestSession
Bootstrap --> AuthedSession
GuestSession --> AuthModal: gated action
AuthModal --> AuthedSession: success
AuthedSession --> Offline
Offline --> AuthedSession
AuthedSession --> ForceUpdate: version low
AuthedSession --> Paywall: vip gate
Paywall --> AuthedSession
```
全局枚举:`ColdStart` · `Bootstrap` · `GuestSession` · `AuthedSession` · `AuthModal` · `Offline` · `ForceUpdate` · `Paywall` · `FatalError`
---
## 5. 设计令牌(结构约定 · 非抄视觉品牌)
> 模拟器采集后可替换为实测色值;此处只定 **语义角色**。
| Token | 角色 |
|---|---|
| `--color-brand` | 主操作/问 Tab 强调 |
| `--color-ai` | AI 标识色 |
| `--color-vip` | 会员金色系 |
| `--color-danger` | 错误/删除 |
| `--color-surface` | 卡片底 |
| `--color-feed-bg` | 信息流底 |
| `--radius-card` | 1216 |
| `--tab-ask-size` | 中央按钮直径 > 其它 Tab |
动效:Tab 切换 200ms;AI 流式打字;宫格按下缩放 0.96。
---
## 6. 档案为中心的产品定律(D 定稿)
1. 所有深度解读默认绑定 **当前 Profile**
2. 「问」必须支持切换到 **关系档案 TA**
3. 首页持续引导「了解 TA」建档。
4. 合盘/匹配最少需要 2 份档案(可快速创建)。
5. 无出生时:上升/宫位降级提示,不阻断太阳解读。
---
## 7. 商业门禁(前端表现)
| 能力 | 游客 | 登录免费 | 会员/深购 |
|---|---|---|---|
| 浏览首页/部分测评 | ✓ | ✓ | ✓ |
| 完整测评报告 | teaser | teaser | ✓ |
| AI 对话 | 登录后有限次 | 有限次 | 扩容 |
| 合盘指数 | — | ✓ | ✓ |
| 合盘完整相位/推运文案 | — | teaser | ✓ |
| 达人咨询 | — | 可下单 | 可下单 |
| 玩法广场基础 | ✓ | ✓ | 视应用 |
价格文案(展示用,采集后校验):首月 ¥9.9 · 月 ¥25 · 季 ¥58 · 年 ¥178。
---
## 8. 文案与合规(前端)
- 危机内容:拒答模板 + 热线/转真人。
- 免责:探索/娱乐向声明(具体措辞模拟器采集竞品后对齐,愈心谷落地另走 lexicon)。
- 未成年人:系统账号年龄门 + 功能裁剪(D:咨询与付费加强校验)。
---
## 9. 待模拟器校验清单(圣经级)
| ID | 校验项 |
|---|---|
| V-B01 | 五 Tab 文案与「问」视觉权重 |
| V-B02 | 全局弹层种类(登录/会员/分享) |
| V-B03 | 会员价与权益文案 |
| V-B04 | 主色/AI 色实测 |
| V-B05 | 游客可点范围 |
@@ -0,0 +1,199 @@
# 10 · 首页完整设计
> Route: `/home` · Tab: 首页 · Design Complete
---
## 1. 页面目标
1. 分发工具(宫格)
2. 推动建档(了解 TA
3. 消费信息流 / 转化测评与会员
4. 承接 UGC 玩法广场
---
## 2. UI 完整清单(分区)
### 2.1 顶区 `HomeHeader`(✅ E8
| 元素 ID | 类型 | 文案/内容 | 行为 |
|---|---|---|---|
| H-HDR-CHECKIN | IconBtn | 签到 | → 签到/每日福利 |
| H-HDR-SEARCH | Search | 运营占位轮播(例「锐评十二星座」) | → 全局搜索 |
| H-HDR-PLUS | IconBtn | `+` | → 发布/快捷创建(待子页核对) |
| H-BANNER-TA | 条 | 「输入生日,更加了解TA」 | → 建档 other |
### 2.2 自己卡片 `HomeSelfCard`(✅ E8 · 原「档案条」升格)
| 元素 | 行为 |
|---|---|
| 标题「自己」+「更多」 | 更多 → 档案/运势详情 |
| 今日心情分数 + 短解读 | 点卡片进入心情/运势 |
| 五维条:爱情 / 财富 / 事业 / 学习 / 人际 | 展示型;点击进详情(待核) |
### 2.3 宫格 `HomeToolGrid`(✅ E8 真机 10.50.0 定稿)
横向两行可滑宫格(非 3×3):
| 行 | 序 | key | 标题 | 备注 |
|---|---|---|---|---|
| 1 | 1 | mbti | I人E人 | |
| 1 | 2 | star_sign | 星座 | |
| 1 | 3 | natal | 星盘 | |
| 1 | 4 | bazi | 生辰 | |
| 1 | 5 | synastry | 缘分合盘 | |
| 1 | 6 | ziwei | 紫微 | 滑出可见 |
| 2 | 7 | companion_star | 陪伴小星 | |
| 2 | 8 | confide | 倾诉 | |
| 2 | 9 | wisdom_card | 智慧卡 | |
| 2 | 10 | natal_report | 星盘报告 | 角标 New |
| 2 | 11 | bazi_cal | 生辰历 | |
| 2 | 12 | soulmate | 灵魂伴侣 | 滑出可见 |
宫格下方运营双卡(非第十格):
| key | 标题 | 说明 |
|---|---|---|
| plaza | AI玩法广场 | 大卡 + 运营副文案 |
| shop_promo | 商城运营卡 | 例:水晶手串 |
| ai_disclaimer | 脚注 | 「部分标题由AI生成,仅供参考」 |
「更多」入口:在「自己」卡片标题旁 / 工具二级页(见 `free2/tools/更多.png`);沙盘等未进首屏宫格的工具收入更多页。
### 2.3.1 「更多」页条目(✅ E8 `free2/tools/更多.labels.txt`
分组实机可见(不完全等于 UI 分区文案):
| 类 | 条目 |
|---|---|
| 内容/玩法 | 推荐 · 测试 · 心情小镇 · 幸运地图 · 爱情树 · 聊天分析 · 关系网 · 解读 · 沙盘 · 星骰 · 智慧卡 · 日历 |
| 命理工具 | 星盘 · 星盘报告 · 缘分合盘 · 星座 · 生辰 · 生辰历 · 紫微 · 紫微历 · 星宿 · 政余 · 政余历 · 灵数 · 生肖 · 玛雅图腾 · 人类图 |
| 社交/商业 | 倾诉 · 灵魂伴侣 · 商城 |
### 2.4 运营位 `HomePromo`
- 最多 1 个大 Banner(可关闭,24h 不再展示,本地记录)
- 配置来自后台 `banners`
### 2.5 信息流 `HomeFeed`
| 卡片类型 | 字段 | 点击 |
|---|---|---|
| fortune_today | 标题、摘要、分数 | 运势详情 |
| hot_test | 封面、标题、人数 | 测评 |
| expert | 达人卡 | 达人详情 |
| article | 封面、标题 | 文章 |
| video | 封面 | 播放 |
| plaza_hot | 应用名、热度 | 广场应用 |
| ai_entry | 文案 | → 问 |
交互:下拉刷新 · 上拉分页(cursor)· 负反馈「不感兴趣」(可选)。
### 2.6 「更多」二级页 `ToolsMorePage`
固定收录(可后台排序):爱情树、幸运地图、pick卡、塔罗、八字、紫微、生命数字、姓名分析…
每项:Icon · 标题 · 副标题 · 角标(热/新)。
### 2.7 AI 玩法广场 `PlazaPage`
| 元素 | 说明 |
|---|---|
| 标题区 | Slogan:「全民手搓创意——精选应用」 |
| 排序 | 热度 / 最新 |
| AppCard | 名、热度、创作者、封面 |
| 点击 | → `PlazaAppRuntime` |
| 空态 | 「暂无应用」 |
| 审核中 | 创作者端可见,C 端不可见 |
---
## 3. 交互细则
| 手势 | 对象 | 结果 |
|---|---|---|
| Tap | 宫格 | 路由跳转,埋点 `home_grid_click` |
| Tap | 了解 TA | 打开建档;未登录先 Auth |
| LongPress | 宫格 | D)无菜单,防误触 |
| Pull | Feed | 刷新 |
| Tap | Feed 负反馈 | 减少同类(需登录) |
倾诉点击:弹出 ActionSheet「和 AI 聊」/「找达人」→ ask / online。
---
## 4. 状态机
| 状态 | UI |
|---|---|
| Loading | Header 骨架 + 宫格骨架 + Feed 骨架 |
| Ready | 全量 |
| FeedEmpty | 宫格在,Feed EmptyState |
| Offline | NetworkBanner,缓存宫格可点 |
| Error | 全页 Retry |
| AuthRequired | AuthModal |
```mermaid
stateDiagram-v2
[*] --> Loading
Loading --> Ready
Loading --> Error
Ready --> AuthRequired
Ready --> Offline
Offline --> Ready
Error --> Loading
```
---
## 5. 接口契约(本页)
| 调用时机 | API |
|---|---|
| 进入 | `GET /v1/home/bootstrap` → grid_config · banners · profile_summary |
| Feed | `GET /v1/home/feed?cursor=` |
| 负反馈 | `POST /v1/home/feed/{id}/dismiss` |
| 广场 | `GET /v1/plaza/apps?sort=heat` |
`home/bootstrap` Response(定稿):
```json
{
"profile_summary": {"id":"","name":"","sun_sign":"","has_birth_time":false},
"grid": [{"key":"mbti","title":"I人E人","badge":null,"enabled":true}],
"banners": [{"id":"","image_url":"","link":"","closable":true}],
"ta_guide_visible": true
}
```
---
## 6. 异常
| 场景 | 处理 |
|---|---|
| bootstrap 失败 | 使用本地默认宫格(写死上表 10 项)+ Error toast |
| feed 失败 | 保留宫格,Feed 区 Retry |
| 配置缺宫格 | 合并默认,不丢星盘/合盘/问相关入口 |
---
## 7. 埋点
`home_expose` · `home_grid_click{key}` · `home_ta_guide_click` · `home_feed_click{type}` · `home_feed_refresh` · `plaza_open` · `plaza_app_click`
---
## 8. 模拟器校验 ID
| ID | 项 | 状态 |
|---|---|---|
| V-H01 | 宫格文案与顺序 | ✅ E8 已按上表改稿 |
| V-H02 | 了解TA 文案 | ✅ 「输入生日,更加了解TA」 |
| V-H03 | 广场形态 | ✅ 首页双大卡而非 slogan 条 |
| V-H04 | Feed / 达人卡 | 🟡 采集中 `free/home/*` |
| V-H05 | 更多页条目 | 🟡 采集中 `free/tools/更多*` |
| V-H06 | 自己卡片五维 | ✅ 爱情财富事业学习人际 |
| V-H07 | 门禁弹层 | ✅ 未成年 / 每日领取 |
差分总表:[evidence-20260803.md](evidence-20260803.md)
@@ -0,0 +1,117 @@
# 11 · 消息完整设计
> Route: `/message` · Design Complete
---
## 1. 目标
聚合 AI / 达人 / 社区 / 系统 / 商业通知;驱动回到「问」或咨询会话。
---
## 2. UI 清单
### 2.1 顶栏(✅ E8
| ID | 元素 | 行为 |
|---|---|---|
| M-TITLE | 「消息」 | — |
| M-SEARCH | 搜索图标 | 搜会话/通知 |
| M-CLEAR | 扫帚图标 | 清理/标记已读(无「全部已读」文案) |
### 2.2 列表形态(✅ E8 · 无顶部分段)
**无** `全部|AI|达人|互动|系统` Segment;为**分组会话列表**
| 行类型 | 示例 | 角标 |
|---|---|---|
| 系统通知 | 「检测到新的登录行为…」 | 未读数字 |
| AI 助手 | 「小星」+ AI 角标 | 未读数字 |
| (登录后)达人/互动 | 待更多账号补证 | — |
底部可出系统通知引导条:「开启系统通知…」+「去开启」+ 关闭。
### 2.3 会话行 `MessageRow`
| 字段 | 说明 |
|---|---|
| avatar | 系统铃铛 / 小星 IP / 达人头像 |
| title | 会话名 |
| preview | 最后一条摘要 |
| time | 相对时间(今天时刻 / 昨天) |
| badge | 未读数 |
### 2.4 系统通知详情(✅ E8)
路由级页「系统通知」:时间分隔 + 卡片列表(纯文本 / 链接「点击查看」/ 运营富媒体)。
### 2.5 空态
插画 + 引导回「问」(未在本版截到空态)。
---
## 3. 交互
| 操作 | 结果 |
|---|---|
| Tap 行 | AI→Ask 线程;达人→ConsultSession;互动→动态/私信;系统→详情 H5;商业→会员/订单 |
| LongPress | 置顶 / 免打扰 / 删除 |
| 左滑 | 删除(iOS 风格);Android 长按菜单 |
| 下拉 | 刷新 |
---
## 4. 状态机
`Loading` · `Ready` · `Empty` · `Offline` · `Error` · `AuthRequired`
未读角标:`GET /v1/messages/unread_count` 与 TabBar 同步;前台 30s 轮询或 WS 推送(D:优先 WS,降级轮询)。
---
## 5. API
| API | 说明 |
|---|---|
| `GET /v1/messages?type=&cursor=` | 列表 |
| `POST /v1/messages/{id}/read` | 已读 |
| `POST /v1/messages/read_all` | 全读 |
| `DELETE /v1/messages/{id}` | 删会话 |
| `POST /v1/messages/{id}/mute` | 免打扰 |
| `GET /v1/messages/unread_count` | 角标 |
Message DTO
```json
{
"id": "uuid",
"type": "ai|expert|social|system|commerce",
"title": "",
"preview": "",
"avatar_url": "",
"unread": 0,
"muted": false,
"ref": {"kind":"conversation|consult|url","id":""},
"updated_at": "ISO8601"
}
```
---
## 6. 异常
推送权限拒绝:仅站内;首次提示去设置。
Token 失效:清列表进 Auth。
删除失败:Toast 回滚 UI。
---
## 7. 埋点
`message_tab_expose` · `message_open{type}` · `message_read_all` · `message_delete` · `message_mute`
## 8. 校验 ID
`V-M01` 分类形态 · `V-M02` 行字段 · `V-M03` 长按菜单项 · `V-M04` 角标规则
@@ -0,0 +1,154 @@
# 12 ·「问」完整设计(测测 AI + 真人 1v1)
> Route: `/ask` · Design Complete · 战略核心页
---
## 1. 目标
1. 以星盘档案为底座的垂直 AI 对话
2. 同页低摩擦切换真人咨询
3. 对象切换(自己/TA)扩展关系场景
4. 深度思考与子场景(灵魂伴侣等)承载差异化
---
## 2. UI 完整清单
### 2.1 顶栏 `AskTopBar`(✅ E8
| ID | 元素 | 行为 |
|---|---|---|
| A-BACK | 返回 | 回上一页/首页 |
| A-TAB-AI | 「测测AI」 | 默认选中 |
| A-TAB-HUMAN | 「真人1v1」 | 角标「新客半价」(运营可配) |
| A-MENU | 汉堡菜单 | 历史/设置;可带红点 |
### 2.2 AI 轨首屏(✅ E8 · 非纯聊天空态)
冷启动为**引导页 + 转化区**,而非空白线程:
| 区块 | 内容 |
|---|---|
| 人设问候 | 猫头鹰 IP +「Hi~我是测测AI / 最近有什么事…」 |
| 引导问题 ×4 | 整行按钮(非小芯片) |
| 真人咨询导流 | 「也可以选择真人咨询…」+「228位测测达人在线」+「去提问」 |
| 达人数量卡 | 1/3/8/15 位;「新客6折」等角标 |
| 底栏快捷 | **工具** · **语音通话** · **深度解读** · **灵魂伴侣** |
| 输入框 | placeholder「让我来解答你的问题吧」 |
| 免责声明 | 「内容由AI生成,仅供娱乐…」 |
**实测引导问题(✅ 替换原草稿)**
1. 有哪些适合我的财富建议?
2. 这份工作有发展吗?
3. 我有什么性格弱点吗?
4. 我和Ta会复合吗?
### 2.3 上下文/能力入口(✅ E8 落在底栏快捷)
| ID | 元素 | 行为 |
|---|---|---|
| A-TOOLS | 「工具」 | Sheet:星盘等工具入口 |
| A-VOICE | 「语音通话」 | 语音;可红点 |
| A-DEEP | 「深度解读」 | 深度能力(可能付费) |
| A-SOUL | 「灵魂伴侣」 | 子场景 |
对象切换/星盘维度:在工具 Sheet 或对话上下文中(待 `ask/tools-sheet` 截图补全)。
### 2.4 输入区 `AskComposer`
| 元素 | 行为 |
|---|---|
| 文本框 | placeholder 见上 |
| 发送 | 输入后出现 |
| 语音 | 底栏「语音通话」独立入口 |
### 2.5 真人轨 `AskHumanRail`
顶栏切「真人1v1」(角标「新客半价」);同页亦嵌入 AI 轨中部的达人导流卡。
### 2.6 子页
- `/ask/soulmate` 灵魂伴侣
- `/ask/history` 会话历史
- Profile 创建嵌入式 Modal
---
## 3. 交互与业务规则
| 规则 ID | 规则 |
|---|---|
| R-ASK-01 | 每条用户消息消耗 1 次额度;深度思考 ×2 |
| R-ASK-02 | 额度=0 → PaywallSheet(会员优先) |
| R-ASK-03 | 切换对象后下一条消息带新 `profile_ctx_id` |
| R-ASK-04 | 对象无档案 → 强制建档流,不可发送 |
| R-ASK-05 | 流式中再次发送:排队或禁用(D:禁用) |
| R-ASK-06 | 敏感意图 → 危机卡片,不计成功陪伴文案 |
| R-ASK-07 | 切「真人1v1」不清除 AI 历史 |
| R-ASK-08 | 下拉加载更早消息,page_size=20 |
---
## 4. 状态机
```mermaid
stateDiagram-v2
[*] --> Boot
Boot --> IdleFresh: 无历史
Boot --> IdleHistory: 有历史
IdleFresh --> Streaming: send/chip
IdleHistory --> Streaming
Streaming --> IdleHistory: done
Streaming --> StreamError: fail
StreamError --> Streaming: retry
IdleFresh --> NeedProfile: 选TA无档
NeedProfile --> IdleFresh: 建档完成
IdleHistory --> QuotaEmpty
QuotaEmpty --> Paywall
IdleHistory --> HumanRail: tab
HumanRail --> IdleHistory: tab AI
```
全量状态:`Boot` · `IdleFresh` · `IdleHistory` · `Streaming` · `StreamError` · `NeedProfile` · `QuotaEmpty` · `Paywall` · `HumanRail` · `Offline` · `AuthRequired` · `DeepOn`(正交 flag)。
---
## 5. API
| API | 说明 |
|---|---|
| `GET /v1/ai/bootstrap` | 额度、默认 profile、引导问题、deep 是否可用 |
| `GET /v1/ai/conversations` | 列表 |
| `GET /v1/ai/conversations/{id}/messages?cursor=` | 历史 |
| `POST /v1/ai/chat` | body: `{conversation_id?, content, profile_ctx_id, dimension, deep}`**SSE** |
| `POST /v1/ai/conversations` | 新建 |
| `GET /v1/ai/quota` | remaining |
SSE 事件:`meta` · `delta` · `suggest` · `usage` · `error` · `done`
---
## 6. 异常矩阵
| 场景 | UI |
|---|---|
| SSE 中断 | 气泡「已中断」+ 重试 |
| 402 额度 | Paywall |
| 400 无档案 | NeedProfile |
| 403 内容安全 | 固定拒答 |
| 超时 30s | StreamError |
| 离线 | 禁用发送 |
---
## 7. 埋点
`ask_open` · `ask_send` · `ask_chip_click` · `ask_deep_toggle` · `ask_profile_switch` · `ask_dimension_change` · `ask_soulmate_open` · `ask_human_tab` · `ask_paywall_show` · `ask_stream_error`
---
## 8. 校验 ID
`V-A01` 顶栏双 Tab · `V-A02` 上下文三控件+灵魂伴侣 · `V-A03` 引导问题原文 · `V-A04` 下拉历史 Tip · `V-A05` 深度思考是否耗额度 · `V-A06` 流式表现
@@ -0,0 +1,75 @@
# 13 · 在线完整设计(达人 Marketplace
> Route: `/online` · Design Complete
---
## 1. 目标
达人发现 → 下单 → 文字/语音/连麦服务 → 评价 → 复购。
---
## 2. UI 清单
### 2.1 列表页(✅ E8 部分 · 与「问·真人1v1」同构)
底栏「在线」带运营角标 **「限免」**;新客链路易**直达「向TA提问」收银页**(券弹层「我知道了」),列表本体与问-真人轨共用筛选:
| 区 | 元素 |
|---|---|
| 顶栏双轨残留 | 若从问切入可仍见「测测AI / 真人1v1」 |
| 筛选 | 综合排序 · 全部工具 · 筛选 · 新客半价 |
| ExpertCard | 头像、活跃、好评率、测友推荐、价格/次 |
| 限免漏斗 | 点进 → 向TA提问(文字/语音/合盘/星盘…)+ 测测币/卡券/VIP 折扣 |
### 2.2 详情页 `/online/experts/{id}`
简介 · 资质标 · 服务 SKU(文字/语音/连麦+单价+时长)· 评价列表 · 底部「立即咨询」· 收藏。
### 2.3 下单确认 Sheet
SKU · 优惠券 · 协议勾选 · 应付金额 · 去支付。
### 2.4 会话页 `/consult/{orderId}`
| 模式 | UI |
|---|---|
| 文字 | 聊天 + 剩余时长/条数 |
| 语音 | 语音条 |
| 连麦 | 通话 UI + 权限 |
结束:评价 1–5 星 + 标签 + 文字。
---
## 3. 订单状态机(前端必须渲染)
`Created``Paying``Paid``WaitingAccept``InService``Completed``Reviewed`
旁路:`Cancelled` · `Rejected` · `Refunding` · `Refunded` · `Expired`
超时:Paid 后 N 分钟未接单自动退款(N 后台配,默认 15)。
---
## 4. API
`GET /v1/experts` · `GET /v1/experts/{id}` · `POST /v1/consult/orders` · `POST /v1/consult/orders/{id}/pay` · `GET /v1/consult/orders/{id}` · `POST /v1/consult/orders/{id}/cancel` · `POST /v1/consult/orders/{id}/review` · 消息走 IM 通道(WS)。
---
## 5. 权限与安全
麦克风/相机权限拒绝 → 引导设置,降级文字。
举报入口:会话内 · 详情页。
未成年人:禁止连麦(D)。
---
## 6. 埋点
`online_expose` · `expert_click` · `consult_sku_select` · `consult_pay_success` · `consult_review_submit`
## 7. 校验 ID
`V-O01` 筛选维度 · `V-O02` SKU 种类 · `V-O03` 价格展示 · `V-O04` 评价表单
@@ -0,0 +1,90 @@
# 14 · 我的完整设计
> Route: `/mine` · Design Complete
---
## 1. UI 清单
### 1.1 头部 `MineHeader`
头像(可换)· 昵称 · 会员徽章(非会员显示「开通会员」)· 编辑资料箭头。
### 1.2 资产条 `MineAssets`
| 格 | 内容 | 点击 |
|---|---|---|
| 会员 | 到期日/未开通 | `/membership` |
| AI 次数 | remaining | `/ask` 或 Paywall |
| 优惠券 | 张数 | `/coupons` |
| 积分 | 余额(若无则隐藏整格 · 模拟器校验) | `/points` |
### 1.3 功能列表(分组定稿)
**档案与内容**
1. 生命档案 → `/profile`
2. 我的测试 → `/mine/tests`
3. 我的报告 → `/mine/reports`
4. AI 对话记录 → `/ask/history`
5. 我的收藏 → `/mine/favorites`
**订单与商业**
6. 会员中心 → `/membership`
7. 我的订单 → `/mine/orders`
8. 咨询订单 → `/mine/consult-orders`
9. 商城订单 → `/shop/orders`
**其它**
10. 邀请好友 → 分享
11. 消息通知设置 → `/settings/notifications`
12. 账号与安全 → `/settings/account`
13. 客服与帮助 → `/help`
14. 关于 → `/about`(协议/隐私/注销入口)
---
## 2. 子页要点
| 页 | 关键交互 |
|---|---|
| 生命档案列表 | Self 置顶;Other 按更新;新建;滑动删除 |
| 报告库 | 类型筛选:星盘/合盘/测评/AI;锁态角标 |
| 订单 | 状态 Tab;详情;申请退款 |
| 会员中心 | 套餐卡:9.9/25/58/178;权益表;自动续费管理 |
| 注销 | 二次确认 + 冷却期说明 |
---
## 3. 状态
`Guest`(显示登录大按钮)· `Loading` · `Ready` · `VipActive` · `VipExpired` · `Error`
---
## 4. API
`GET /v1/me` · `GET /v1/membership/me` · `GET /v1/ai/quota` · `GET /v1/orders` · `POST /v1/auth/logout` · `POST /v1/account/delete`
`GET /v1/me`
```json
{
"user": {"id":"","nickname":"","avatar_url":""},
"membership": {"active":false,"plan":null,"expires_at":null},
"quota": {"ai_remaining":0},
"counts": {"coupons":0,"favorites":0,"reports":0}
}
```
---
## 5. 埋点
`mine_expose` · `mine_item_click{key}` · `membership_open` · `invite_click`
## 6. 校验 ID
`V-U01` 列表项集合 · `V-U02` 会员价展示 · `V-U03` 资产条格子 · `V-U04` 注销路径
@@ -0,0 +1,126 @@
# 20 · 星座工具完整设计(星盘 / 合盘 / 运势)
> Design Complete · 愈心谷落地时命名走 STRATEGY / 词表
---
## 1. 信息架构
```
工具入口(首页/广场)
├── 星盘(本命)
│ ├── 档案选择 / 新建
│ ├── 概览(太阳/月亮/上升 + 象限)
│ ├── 行星列表
│ ├── 宫位列表
│ ├── 相位表
│ ├── 深度解读(付费锁)
│ └── 分享卡片
├── 合盘
│ ├── 双档案选择
│ ├── 关系类型(恋爱/友情/亲子…)
│ ├── 五图 + 推运(as_of)
│ ├── 维度评分
│ ├── 深度报告(付费)
│ ├── 邀请合盘(token)
│ └── 附近的人(geo
└── 今日运势
├── 日运卡片
├── 周/月切换
└── 推送订阅
```
---
## 2. 星盘页 `NatalChartPage`
### 2.1 Route
`/tools/natal` · query: `profile_id?`
### 2.2 UI
| 区块 | 说明 |
|---|---|
| `ProfilePicker` | Self 默认;可切 Other |
| `ChartWheel` | 外圈宫位 + 行星 glyph;可缩放旋转(定稿:双指缩放) |
| `BigThree` | 日/月/升 三卡 |
| `Tabs` | 概览 / 行星 / 宫位 / 相位 / 解读 |
| `PaywallBanner` | 深度解读锁态 |
### 2.3 状态
`NeedProfile``Computing``Ready``Paywalled` / `Unlocked` · `Error`
### 2.4 API
- `GET /v1/profiles` · `POST /v1/profiles`
- `POST /v1/reports/natal` body: `{ "profile_id": "" }`
- 响应:`summary`(免费)+ `detail`(锁字段)+ `charts.natal`
### 2.5 校验
`V-N01` 轮盘交互 · `V-N02` 深度锁点 · `V-N03` 分享卡片字段
---
## 3. 合盘页 `SynastryPage`(对齐已实现能力)
### 3.1 Route
`/tools/synastry` · `/synastry/invite/:token`
### 3.2 UI 定稿
| 区块 | 说明 |
|---|---|
| 双人档案条 | A/B 头像昵称 + 换人 |
| 关系类型 Chip | 恋爱默认 |
| 五图 Tab | 比较盘/组合盘/组合中点/时空中点/组合星座 — 与 API `charts` 对齐 |
| 推运 | `as_of` 日期选择;Progressed 说明文案 |
| 维度雷达/条 | 吸引/沟通/信任/长期… |
| 深度报告 CTA | 会员或单次解锁 |
| 社交 | 「邀请合盘」「附近的人」 |
### 3.3 附近的人
- 需用户显式打开 `geo_visible`
- 列表:距离档位 + 合盘入口
- 隐私:不暴露精确坐标给对方客户端
### 3.4 API(已有契约优先)
- `POST /v1/reports/synastry` `{ profile_id_a, profile_id_b, as_of? }`
- `GET /v1/synastry/nearby`
- `POST /v1/synastry/invites` · `GET /v1/synastry/invites/:token` · `POST .../accept`
### 3.5 校验
`V-S01` 五图 Tab 文案与顺序 · `V-S02` 邀请链路 · `V-S03` 附近隐私开关默认
---
## 4. 今日运势 `DailyFortunePage`
### 4.1 UI
日期头 · 综合分 · 爱情/事业/财运/健康四格 · 短建议 ·「查看完整」(会员)
### 4.2 API
`GET /v1/fortune/daily?profile_id=&date=`
### 4.3 校验
`V-F01` 分数字段 · `V-F02` 完整内容锁点
---
## 5. 埋点统一
`tool_open{tool}` · `chart_tab{name}` · `synastry_generate` · `synastry_unlock` · `fortune_expose` · `invite_share` · `nearby_open`
## 6. 愈心谷落地备注
- UI 禁用「占卜/算命」;可用运势/合盘/匹配/解读
- 星历计算依赖与 AGPL 风险见 API README;设计层不绑定具体库
@@ -0,0 +1,119 @@
# 21 · 测评与沉浸式玩法完整设计
> Design Complete · MBTI / 广场 / 沙盘 / 心情小镇 / 塔罗
---
## 1. 测评中心 `TestsHub`
### 1.1 Route
`/tests` · `/tests/:slug`
### 1.2 UI
- 分类 Chip:人格 / 情感 / 压力 / 趣味
- 卡片:封面 · 标题 · 题量 · 预计时长 · 热度 · 免费/付费角标
- 搜索(可选,二期)
### 1.3 答题流 `TestPlayer`
| 步骤 | 说明 |
|---|---|
| Intro | 说明用途、隐私、预计时长、开始 |
| Question | 单选为主;进度条;可上一题 |
| Submit | Loading → 结果 |
| Result | 类型码/分数 + 摘要 + 分享 +「深度报告」锁 |
状态:`Intro` · `Answering` · `Submitting` · `ResultFree` · `ResultPaywalled` · `Error`
API
- `GET /v1/tests` · `GET /v1/tests/:slug`
- `POST /v1/tests/:slug/sessions``session_id`
- `POST /v1/tests/sessions/:id/answer`
- `POST /v1/tests/sessions/:id/submit`
- `GET /v1/tests/sessions/:id/report`
校验:`V-T01` 进度可回退 · `V-T02` 结果锁点 · `V-T03` 历史入库「我的测试」
---
## 2. 心理广场 `PsychPlaza`
Route: `/plaza`
| 区块 | 设计定稿 |
|---|---|
| Feed | 图文/话题卡;点赞评论 |
| Topic | 官方话题置顶 |
| Publish | 发帖(需登录);敏感词过滤 |
| Detail | 评论树一级 + 楼中楼 |
API`GET /v1/plaza/feed` · `POST /v1/plaza/posts` · `POST .../like`
注意:UGC 审核队列进运营后台(见 40)。
校验:`V-P01` Feed 排序 · `V-P02` 发帖门槛
---
## 3. 沙盘 `Sandbox`
Route: `/sandbox`
定稿流程:
1. 空场景 + 道具架(人物/物品/自然)
2. 拖拽摆放;缩放旋转
3. 完成 → 生成解读摘要(AI 或模板)
4. 保存作品到「我的」;可分享静态图
状态:`Editing` · `Generating` · `Saved` · `Paywalled`(深度解读)
API`POST /v1/sandbox/sessions` · `POST .../complete` · `GET .../report`
校验:`V-B01` 道具集 · `V-B02` 解读是否 AI
---
## 4. 心情小镇 `MoodTown`
Route: `/mood-town`
定稿:
- 地图节点:今日心情打卡 · 小任务 · 收集物
- 打卡:情绪滑杆 + 可选日记
- 连续打卡奖励(积分/优惠券,与会员解耦)
API`POST /v1/mood/checkin` · `GET /v1/mood/calendar` · `GET /v1/mood/town-state`
校验:`V-M01` 节点集合 · `V-M02` 奖励规则
---
## 5. 塔罗 `Tarot`
Route: `/tarot`
定稿(合规表述:牌阵洞察 / 自我反思,非「算命」):
| 模式 | 说明 |
|---|---|
| 单牌 | 日签 |
| 三牌 | 过去/现在/未来(表述可改为 课题/现状/行动) |
| 牌阵库 | 恋爱/决策等模板 |
流程:选牌阵 → 洗牌动画 → 抽牌 → 正逆位 → 牌义摘要 → 深度(付费)
API`POST /v1/tarot/draw` `{ spread, seed? }` · `GET /v1/tarot/history`
校验:`V-R01` 牌阵列表 · `V-R02` 深度锁 · `V-R03` 文案是否触发词表禁词(实现闸)
---
## 6. 统一商业与埋点
- 深度结果统一走 `PaywallSheet`(会员优先 / 单次次之)
- 埋点:`test_start` · `test_complete` · `plaza_post` · `sandbox_complete` · `mood_checkin` · `tarot_draw` · `immersive_unlock`
@@ -0,0 +1,179 @@
# 30 · 完整数据模型 · API · 错误 · 缓存
> Design Complete · 路径前缀统一 `/api/v1`(下文简称 `/v1`
---
## 1. 领域实体(逻辑模型)
```
User ──< Profile (self|other)
User ── Membership
User ── AiQuota
User ──< Order ── OrderItem
User ──< Coupon
User ── DevicePush
User ──< Conversation ──< Message
User ──< ConsultOrder ── Consultant
User ──< TestSession ── TestReport
User ──< NatalReport / SynastryReport
User ──< TarotDraw / SandboxWork / MoodCheckin
User ── GeoPref (geo_visible, lat, lng, updated_at)
SynastryInvite (token, host_user, guest?, status)
PlazaPost ──< Comment
```
### 1.1 关键字段定稿
| 实体 | 必填字段 |
|---|---|
| Profile | id, user_id, kind, name, gender?, birth_date, birth_time?, birth_place, lat, lng, tz |
| Membership | user_id, plan(enum), status, starts_at, expires_at, auto_renew |
| Order | id, user_id, channel, amount_fen, status, product_type, product_ref |
| Conversation | id, user_id, mode(ai\|human), status, consultant_id? |
| SynastryReport | id, profile_a, profile_b, as_of?, summary_json, detail_json, unlocked |
| AiQuota | user_id, remaining, reset_at, source |
计划枚举:`trial_9_9` · `month_25` · `season_58` · `year_178`(展示价,分单位存储另表)
---
## 2. API 目录(完整设计表)
### 2.1 账号
| Method | Path | 说明 |
|---|---|---|
| POST | `/v1/auth/sms/send` | 发码 |
| POST | `/v1/auth/sms/login` | 登录/注册 |
| POST | `/v1/auth/logout` | 登出 |
| GET | `/v1/me` | 我的聚合 |
| PATCH | `/v1/me` | 改昵称头像 |
| POST | `/v1/account/delete` | 注销申请 |
### 2.2 档案
| Method | Path | 说明 |
|---|---|---|
| GET/POST | `/v1/profiles` | 列表/创建 |
| PATCH/DELETE | `/v1/profiles/:id` | 更新/删 |
| PATCH | `/v1/me/geo` | `{visible,lat?,lng?}` |
### 2.3 内容与报告
| Method | Path | 说明 |
|---|---|---|
| POST | `/v1/reports/natal` | 本命 |
| POST | `/v1/reports/synastry` | 合盘 |
| GET | `/v1/fortune/daily` | 日运 |
| GET | `/v1/reports` | 我的报告库 |
| GET | `/v1/reports/:id` | 单份(含锁态) |
### 2.4 合盘社交
| Method | Path | 说明 |
|---|---|---|
| POST | `/v1/synastry/invites` | 创建邀请 |
| GET | `/v1/synastry/invites/:token` | 预览(无 host_profile_id 泄露) |
| POST | `/v1/synastry/invites/:token/accept` | 接受 |
| GET | `/v1/synastry/nearby` | 附近 |
### 2.5 AI / 咨询
| Method | Path | 说明 |
|---|---|---|
| GET | `/v1/ai/quota` | 余量 |
| POST | `/v1/ask/conversations` | 开聊 |
| GET | `/v1/ask/conversations` | 历史 |
| POST | `/v1/ask/conversations/:id/messages` | 发消息(流式可选 SSE |
| GET | `/v1/consultants` | 达人列表 |
| POST | `/v1/consult/orders` | 下咨询单 |
| POST | `/v1/consult/orders/:id/cancel` | 取消 |
### 2.6 测评与沉浸
| Method | Path | 说明 |
|---|---|---|
| GET | `/v1/tests` | 列表 |
| * | `/v1/tests/...` | 见 21 |
| * | `/v1/plaza/...` | 见 21 |
| * | `/v1/sandbox/...` | 见 21 |
| * | `/v1/mood/...` | 见 21 |
| * | `/v1/tarot/...` | 见 21 |
### 2.7 商业
| Method | Path | 说明 |
|---|---|---|
| GET | `/v1/membership/plans` | 套餐 |
| POST | `/v1/pay/orders` | 创建支付单 |
| POST | `/v1/pay/mock/confirm` | 仅开发 mock |
| GET | `/v1/orders` | 订单列表 |
| GET | `/v1/coupons` | 优惠券 |
| POST | `/v1/pay/orders/:id/refund` | 申请退款 |
### 2.8 消息与配置
| Method | Path | 说明 |
|---|---|---|
| GET | `/v1/inbox` | 站内信聚合 |
| POST | `/v1/inbox/:id/read` | 已读 |
| GET | `/v1/home/feed` | 首页聚合 |
| GET | `/v1/config/app` | 开关/词表版本/审核模式 |
---
## 3. 统一响应与错误
### 3.1 成功包络
```json
{
"code": 0,
"message": "ok",
"data": {},
"request_id": "..."
}
```
### 3.2 错误码定稿
| code | HTTP | 含义 | 客户端 |
|---|---|---|---|
| 0 | 200 | 成功 | — |
| 40101 | 401 | 未登录 | 跳登录 |
| 40301 | 403 | 无权限/未解锁 | Paywall |
| 40302 | 403 | 会员权益不足 | Membership |
| 40401 | 404 | 资源不存在 | Toast |
| 40901 | 409 | 冲突(重复提交) | 忽略/提示 |
| 42201 | 422 | 参数错误 | 字段红字 |
| 42901 | 429 | 限流 | 稍后重试 |
| 40201 | 402/403 | 配额用尽 | 次数 Paywall |
| 50000 | 500 | 内部错误 | 通用错误页 |
锁态内容:**不**靠藏路由;返回 `unlocked:false` + `teaser`,完整 `detail` 仅解锁后下发(或同接口按 entitlement 裁剪)。
---
## 4. 缓存与一致性
| 数据 | 策略 |
|---|---|
| 首页 feed | CDN/边缘 60s;登录个性化部分 API 直出 |
| 日运 | 按 `profile_id+date` 缓存 1h |
| 本命/合盘计算结果 | 按档案哈希 + as_of 缓存;档案变更失效 |
| 我的聚合 `/me` | 客户端短缓存 30s;支付成功强制失效 |
| Inbox 未读 | 推送 + 轮询 60s(前台) |
| 词表/开关 | `/config/app` ETag;启动拉取 |
离线:仅缓存已解锁报告摘要;敏感档案不同步到未加密存储。
---
## 5. 分页约定
`?cursor=&limit=20` · 响应 `{ items, next_cursor }`
## 6. 与模拟器校验的关系
抓包对照本章路径与字段;差异记入 `99-emulator-validation.md` 的 Diff 表,再回写 OpenAPI。
@@ -0,0 +1,109 @@
# 40 · 运营 · 商业 · 推送 · 埋点 · 安全
> Design Complete
---
## 1. 运营后台模块(信息架构)
```
Admin
├── 内容:首页运营位 / 工具配置 / 测评上下架 / 话题
├── UGC:广场审核队列 / 举报处理
├── 达人:入驻审核 / 排班 / 分成配置
├── 商业:套餐 / 优惠券 / 订单 / 退款
├── 用户:检索 / 封禁 / 注销工单
├── 消息:站内信模板 / 推送任务
└── 系统:开关 / 词表版本 / 审计日志
```
权限:超级管理员 · 运营 · 审核 · 客服(只读订单+工单)
---
## 2. 支付与会员
### 2.1 商品类型
| product_type | 说明 | 履约 |
|---|---|---|
| `membership` | 会员套餐 | 写 Membership + 可能赠 AI 次 |
| `ai_pack` | AI 次包 | AiQuota += n |
| `report_unlock` | 单次报告 | report.unlocked=true |
| `consult` | 咨询时长/次 | ConsultOrder paid |
| `shop` | 实物/虚拟商品 | 履约状态机 |
### 2.2 支付状态机
`created``paying``paid` → (`refunding``refunded`) · `closed`
客户端:统一 `PaySheet`(渠道:微信/支付宝/IAP 占位;开发 `pay-mock`)。
### 2.3 价格展示(✅ E8 `free2/mine/会员.png`
| 档 | 展示价 | 划线/备注 |
|---|---|---|
| 连续包月(首月) | ¥9.9 | 后续 ¥25 自动续费 |
| 连续包月 | ¥25 | |
| 连续包季 | ¥58 | 划线例 ¥90 |
| 连续包年 | ¥178 | 划线例 ¥360 |
| 12个月套餐 | ¥368 | 年卡x水晶等运营 SKU |
自动续费:会员中心「记录」可关;文案含解除说明。
---
## 3. 推送
| 场景 | 通道 | 触发 |
|---|---|---|
| 日运提醒 | Push | 用户订阅 + 本地时区早晨 |
| 咨询回复 | Push + Inbox | 达人新消息 |
| 系统通知 | Inbox | 运营任务 |
| 支付成功 | Inbox | 履约完成 |
| 合盘邀请被接受 | Push | AcceptInvite |
开关:`/settings/notifications` 分项;系统级权限引导一次。
---
## 4. 埋点字典(核心)
| event | 必填属性 |
|---|---|
| `app_open` | cold/warm, app_ver |
| `tab_view` | tab |
| `tool_open` | tool |
| `paywall_expose` | scene, product_hint |
| `pay_click` | product_type, amount_fen |
| `pay_success` | order_id, product_type |
| `ask_send` | mode, conversation_id |
| `synastry_generate` | relation_type |
| `test_complete` | slug |
| `membership_open` | from |
实现:客户端 SDK 批量上报;`request_id` 可关联 API 日志。
---
## 5. 安全与合规
| 项 | 定稿 |
|---|---|
| 词表 | 硬禁「占卜」「算命」等;启动拉 `/config/app` |
| 未成年 | 支付与深度内容年龄门(策略开关) |
| 隐私 | 协议版本强更;geo 默认关;注销冷却 |
| 鉴权 | Bearer;刷新策略另开;后台操作审计 |
| 限流 | 登录/发帖/AI 分桶 |
| 支付 | 验签;幂等 `out_trade_no`mock 仅非生产 |
---
## 6. 客服与工单
入口:我的 → 帮助;订单详情 → 申请退款。
工单状态:`open` · `processing` · `resolved` · `rejected`
## 7. 校验 ID
`V-O01` 套餐价 · `V-O02` 支付渠道集合 · `V-O03` 推送分项 · `V-O04` 审核后台字段(无 App 内证,后台自建)
@@ -0,0 +1,131 @@
# 99 · 安卓模拟器采集验证协议
> 设计已定稿;本文件规定**如何用模拟器把 🟡/待证项变成 ✅ 或 Diff 回写**。
---
## 1. 目标
1. 对照 `complete-design` 各页的 **校验 IDV-\*** 采集证据。
2. 差异写入 Diff 表 → 回写对应设计文档 / OpenAPI。
3. 不阻塞当前 Feature Complete:未验证项保持「设计定稿 (D) + 待模拟器」。
---
## 2. 环境准备
| 项 | 建议 |
|---|---|
| 模拟器 | Android Emulator API 33+,安装官方测测 APK(或应用商店包) |
| 代理 | mitmproxy / Charles;模拟器 WiFi 代理指向宿主机 |
| HTTPS | 安装 user CA;若 SSL Pinning 失败则改用 UI 录屏 + 布局层次(uiautomator |
| 账号 | 新号 + 会员号各一;记录手机号不入库文档 |
| 录制 | 每条 V-\* 至少:截图 1 +(可选)HAR 片段 + 操作步骤 |
### 2.1 本机已装(2026-08
| 项 | 路径 / 名称 |
|---|---|
| SDK | `ANDROID_HOME=/opt/homebrew/share/android-commandlinetools` |
| AVD | `YuXinGu_API34`Pixel 7 / API 34 / google_apis / arm64 |
| Agent Skill | `/Users/jack/tools/android-adb-skill``./tools/android` + `~/.claude/skills/android-*` |
| Cursor Rule | `.cursor/rules/android-adb.mdc` |
| 冒烟截图 | `.tmp/cece-validation/smoke/screen.png` |
启动与截图:
```bash
emulator -avd YuXinGu_API34 -no-audio -gpu auto &
adb wait-for-device
./tools/android screenshot --out .tmp/cece-validation/smoke/screen.png --json
```
> 测测 APK 仍需另行安装后,才能跑 Batch A–D。
证据目录建议(本地,勿强求进 git):
```
.tmp/cece-validation/
YYYYMMDD/
V-H01/
steps.md
screen.png
traffic.har # 可选
```
---
## 3. 采集步骤(单条 V-\*
1. 打开设计文档中的校验 ID 定义(预期 UI/文案/API)。
2. 冷启动 App → 按步骤复现到目标屏。
3. 截图;若可抓包,过滤 host,保存相关 request/response。
4. 填写结果:`PASS` / `DIFF` / `BLOCKED`(如 pinning、地区限制)。
5. `DIFF` 必须写:期望(设计)vs 实际 + 建议改设计或改实现。
---
## 4. 优先级批次
### Batch A — 五 Tab 骨架(先做)
| ID | 主题 | 文档 |
|---|---|---|
| V-H01~ | 首页楼层顺序与运营位 | `10-page-home` |
| V-G01~ | 消息分类与未读 | `11-page-message` |
| V-A01 | 问一问 AI/人工切换 | `12-page-ask` |
| V-L01 | 连麦/在线列表 | `13-page-online` |
| V-U01~ | 我的列表与资产条 | `14-page-mine` |
### Batch B — 星座与合盘
| ID | 主题 | 文档 |
|---|---|---|
| V-N01~ | 本命轮盘与锁点 | `20-module-astrology` |
| V-S01~ | 五图顺序、邀请、附近默认 | 同上 |
| V-F01 | 日运字段 | 同上 |
### Batch C — 测评与沉浸
| ID | 主题 | 文档 |
|---|---|---|
| V-T01~ | 测评进度与结果锁 | `21-module-tests-immersive` |
| V-P01 | 广场 | 同上 |
| V-B01 / V-M01 / V-R01 | 沙盘/小镇/塔罗 | 同上 |
### Batch D — 商业与系统
| ID | 主题 | 文档 |
|---|---|---|
| V-O01 | 会员价与支付 | `40-ops-commerce` |
| 路径对照 | API 与 30 章一致性 | `30-data-api` |
---
## 5. Diff 登记表(模板)
复制到当次验证笔记:
| ID | 结果 | 期望(设计) | 实际(模拟器) | 处置 | 回写文件 |
|---|---|---|---|---|---|
| V-S01 | DIFF | 五图顺序 A-B-C… | 顺序为… | 改设计 / 改实现 | `20-module-astrology.md` |
处置约定:
- **改设计**:以竞品真机为准,更新 complete-design,证据链加 E\*。
- **改实现**:愈心谷已按设计开发则排期对齐。
- **忽略**:明确合规/品牌差异(词表),在文档标「刻意差异」。
---
## 6. 与 Evidence First 的衔接
- 模拟器截图/HAR → 记入 `cece-frontend-re/README.md` 证据表新行(E8+)。
- 原 🟡 项验证通过后改为 ✅,去掉「仅设计定稿」标注。
- 完整设计包门禁:**不**因未跑模拟器而撤销 Design Complete。
---
## 7. 愈心谷侧注意
验证测测时允许看到其原生产物用词;**落地愈心谷 UI 时仍走词表**,Diff 中单独列「合规替换」列,避免把禁词写进产品文案。
@@ -0,0 +1,64 @@
# 测测前端 · 完整产品设计包(Design Complete V1.0
> Status: **Design Complete(设计定稿)** · 实现与模拟器校验前的唯一前端设计输入
> 上游逆向底稿:[../README.md](../README.md)
> 方法:[reverse-engineering-spec.md](../../../../design/reverse-engineering-spec.md)
> 校验计划:安卓模拟器采集验证(见 [99-emulator-validation.md](99-emulator-validation.md)
---
## 0. 本包定位
| 项 | 说明 |
|---|---|
| 是什么 | 基于公开实测 + 逆向推导的 **Feature Complete 设计说明书** |
| 不是什么 | 不是 Demo;不是「以后再补」的大纲 |
| 证据策略 | ✅ 已证实写死;🟡/🔵 在本包中升格为 **设计定稿(D**,并列入模拟器校验清单 |
| 品牌 | 本文用「测测」指称竞品对象;愈心谷落地时过 lexicon,禁止自称测测 |
**冻结规则**:未经验证通过前,工程实现以本包为准;模拟器发现差分时,先改本包再改代码。
---
## 1. 文档地图
| 文档 | 内容 |
|---|---|
| [00-design-bible.md](00-design-bible.md) | 产品目标 · IA · 全局组件 · 全局状态 · 设计令牌约定 |
| [10-page-home.md](10-page-home.md) | 首页完整设计 |
| [11-page-message.md](11-page-message.md) | 消息完整设计 |
| [12-page-ask.md](12-page-ask.md) | 「问」完整设计 |
| [13-page-online.md](13-page-online.md) | 在线完整设计 |
| [14-page-mine.md](14-page-mine.md) | 我的完整设计 |
| [20-module-astrology.md](20-module-astrology.md) | 星座/星盘/合盘/运势完整设计 |
| [21-module-tests-immersive.md](21-module-tests-immersive.md) | 测评/广场/沙盘/心情小镇/塔罗 |
| [30-data-api.md](30-data-api.md) | 数据模型 · 表 · API · 错误码 · 缓存 |
| [40-ops-commerce.md](40-ops-commerce.md) | 后台 · 权限 · 支付 · 消息 · 埋点 · 配置 · 安全 |
| [99-emulator-validation.md](99-emulator-validation.md) | 安卓模拟器采集与差分回填协议 |
| [evidence-20260803.md](evidence-20260803.md) | **E8 真机 Diff**10.50.0 模拟器) |
| [STATUS-overnight.md](STATUS-overnight.md) | 夜间采集结果摘要(起床看) |
---
## 2. 设计完成度门禁
| 门禁 | 标准 |
|---|---|
| Design Complete | 本包各文档无「略/TODO」;每页含 UI 清单、交互、状态机、接口、异常、埋点 |
| Validation Ready | `99-emulator-validation.md` 用例可执行 |
| Impl Ready | `30-data-api` + 页面契约可直接开工 |
| Parity Verified | 模拟器采集后差分关闭(后续) |
当前:**Design Complete + Validation Ready**。Parity Verified = 待模拟器。
---
## 3. 与逆向底稿关系
```text
../0008 逆向分析(Evidence First
↓ 升格定稿
complete-design/* 完整设计(本包)
↓ 模拟器采集
差分回填 → 修订本包 → 再实现/再验
```
@@ -0,0 +1,41 @@
# 夜间采集状态(给你起床看)
> 时间:2026-08-03 凌晨 · APK 10.50.0 · 已登录账号
## 结论
**免付费主路径大部分已截到**,设计 Diff 已写入 `evidence-20260803.md` + 首页/消息/问文档。
工具宫格与「更多」清单已采;「我的」子页与部分在线列表曾被 SVIP/向TA提问 收银页干扰,需醒来后补一轮。
## 截图目录(本地)
| 目录 | 内容 |
|---|---|
| `.tmp/cece-validation/20260803/free2/` | **主成果**(包名校验后) |
| `free2/01-home.png``0x-tab-*.png` | 五 Tab / 问双轨 |
| `free2/tools/*.png` | 宫格落地:星座/星盘/合盘/紫微/陪伴小星/倾诉/智慧卡/报告/生辰历/灵魂伴侣/广场/更多… |
| `free2/tools/more/*.png` | 更多页子项 |
| `free2/manifest.json` | 清单(脚本结束后生成) |
## 已回写设计
- `00-design-bible.md` 底栏角标
- `10-page-home.md` 宫格顺序 / 自己卡片五维
- `11-page-message.md` 列表形态
- `12-page-ask.md` AI 引导题与底栏快捷
- `evidence-20260803.md` E8
## 「更多」实机条目(✅ labels)
推荐 · 星盘报告 · 测试 · 倾诉 · 心情小镇 · 幸运地图 · 星宿 · 爱情树 · 灵魂伴侣 · 聊天分析 · 关系网 · 商城 · 解读 · 沙盘 · 缘分合盘 · 星座 · 生辰 · 紫微 · 政余 · 灵数 · 生肖 · 玛雅图腾 · 人类图 · 星盘 · 生辰历 · 紫微历 · 政余历 · 星骰 · 智慧卡 · 日历
## 醒来建议(可选 10 分钟)
1. 确认模拟器还在:`adb devices`
2. 打开测测,关掉任何 SVIP/向TA提问弹层
3. 说「继续补我的和在线列表」——我只补这两块
## 脚本
- `tools/cece_capture_free.py`(初版)
- 夜间实际用的是内联 package-guard 流程;稳定版可再收束进脚本
@@ -0,0 +1,92 @@
# 真机证据 Diff · 2026-08-03(模拟器 · 测测 10.50.0
> Evidence ID: **E8** · AVD `YuXinGu_API34` · package `com.xxwolo.cc5` · APK `bird-xxdoc-android-release-xxwolo-10.50.0`
> 截图根目录:`.tmp/cece-validation/20260803/`(本地,未入库)
> 主成果:`free2/`34 张)· 说明:[STATUS-overnight.md](STATUS-overnight.md)
---
## 1. 冷启动 / 门禁
| 屏 | 证据 | 定稿结论 |
|---|---|---|
| 温馨提示 | `onboarding/10-start.png` | 同意 / 不同意→游客;披露位置·麦克风·设备信息 |
| 游客首页 | `V-H01/home.png` | 底栏右端为「未登录」;中间「问」+ AI 角标 |
| 登录页 | 点「同意」后 | 手机号+验证码 / 密码登录 / 其他方式;协议勾选 |
| 未成年人模式 | `logged/00-current.png` | 开启未成年人模式 / **不再提醒** |
| 每日登录领好礼 | 遮罩态截图 | 回归福利七日;立即领取;下方 X 关闭 |
| 隐私政策更新 | 登录后偶发 | 同意 / 不同意并退出 |
---
## 2. 底栏五 Tab(已登录 · ✅)
| 序 | 文案 | 角标/形态 | Diff vs 原设计 |
|---|---|---|---|
| 1 | 首页 | 选中态房子图标 | 一致 |
| 2 | 消息 | 红点数字 | 一致 |
| 3 | **问** | **中央大圆 + AI 角标** | 一致;无障碍树常无「问」文本 |
| 4 | 在线 | 红标「限免」 | **新增运营角标**;易直达向TA提问 |
| 5 | 我的 | 红点 | 游客态文案为「未登录」 |
---
## 3. 首页结构(已登录 · ✅ V-H01)
### 3.1 顶区
签到 · 搜索运营占位轮播 · `+` · 「输入生日,更加了解TA」
### 3.2 自己卡片
今日心情分 + 五维:**爱情 / 财富 / 事业 / 学习 / 人际**
### 3.3 宫格
**第一行:** I人E人 · 星座 · 星盘 · 生辰 · 缘分合盘 · 紫微
**第二行:** 陪伴小星 · 倾诉 · 智慧卡 · 星盘报告(New) · 生辰历 · 灵魂伴侣
宫格下:AI玩法广场大卡 + 商城运营卡;脚注「部分标题由AI生成,仅供参考」。
### 3.4 更多页条目(✅)
`10-page-home.md` §2.3.1;含沙盘/心情小镇/幸运地图/爱情树/人类图等。
---
## 4. 截图清单(`free2/`
| 路径 | 说明 |
|---|---|
| `01-home` · `02-tab-home` | 首页 |
| `03-tab-message` | 消息 |
| `04-tab-ask*` | 问 · AI / 真人1v1 |
| `05-tab-online` | 在线(注意限免漏斗) |
| `06-tab-mine*` | 我的 |
| `tools/*` | 宫格落地免付费页 |
| `tools/more/*` | 更多子项 |
| `mine/{root,会员,档案,测试,报告}` | 我的子页;会员价 ✅ |
| `manifest.json` | 34 张索引 |
---
## 5. 「问」轨 Diff(✅)
- 顶栏:`测测AI` | `真人1v1`(「新客半价」)
- 引导题:财富建议 / 工作发展 / 性格弱点 / 复合(及变体)
- 底栏:工具 · 语音通话 · 深度解读 · 灵魂伴侣
- 免责声明固定底
---
## 6. 会员价(✅)
连续包月首月 ¥9.9 → ¥25;季 ¥58;年 ¥178(见 `40-ops-commerce.md`)。
---
## 7. 愈心谷落地注意
- 竞品文案含「测测」;落地过 lexicon。
- 游客 / 未成年人 / 每日领取 / 隐私更新 为必做门禁。
- 「向TA提问」为高意图收银,列表浏览需可退回。