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:
@@ -0,0 +1,150 @@
|
||||
# 00 · 设计圣经(全局)
|
||||
|
||||
> Design ID: `CECE-FE-BIBLE-V1` · 定稿 · 待模拟器校验项见文末
|
||||
|
||||
---
|
||||
|
||||
## 1. 产品一句话
|
||||
|
||||
以趣味测评与星盘档案为入口,以「问」Tab 级 AI(挂档案)为战略核心,以达人咨询为高客单转化,以会员订阅为主营收的泛心理情感陪伴 App。
|
||||
|
||||
---
|
||||
|
||||
## 2. 信息架构(冻结)
|
||||
|
||||
### 2.1 底部五 Tab(D 定稿)
|
||||
|
||||
| 序 | 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` | 12–16 |
|
||||
| `--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;设计层不绑定具体库
|
||||
+119
@@ -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` 各页的 **校验 ID(V-\*)** 采集证据。
|
||||
2. 差异写入 Diff 表 → 回写对应设计文档 / OpenAPI。
|
||||
3. 不阻塞当前 Feature Complete:未验证项保持「设计定稿 (D) + 待模拟器」。
|
||||
|
||||
---
|
||||
|
||||
## 2. 环境准备
|
||||
|
||||
| 项 | 建议 |
|
||||
|---|---|
|
||||
| 模拟器 | Android Emulator API 33+,安装官方测测 APK(或应用商店包) |
|
||||
| 代理 | mitmproxy / Charles;模拟器 Wi‑Fi 代理指向宿主机 |
|
||||
| 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
|
||||
../00–08 逆向分析(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提问」为高意图收银,列表浏览需可退回。
|
||||
Reference in New Issue
Block a user