Files
digital-psychology/.ai/product/feature-spec/star-profile.md
T
jackyu66gitandCursor 89756f65b4 feat(ECR-012–016): 合规、题库、时辰刷新、头像、MBTI OEJTS 与埋点
落地输入合规、探索题库、报告日/时辰刷新、账号头像、OEJTS 量表,并补齐 H5 埋点与 Admin 漏斗;同步 ESS 工件、切至自建 Git、清理 GitHub Actions。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-13 01:27:58 +08:00

7.7 KiB
Raw Blame History

Feature Spec: 星座

Status: Active · Map: 2.6 星座 [P2] · Phase: P2 Complete
规范:../feature-design.md · 队列:P2-BACKLOG.md
竞品对照:测测星座体系(本命排盘 · 运势大全 · 连线合盘)


1. 功能定义

字段 内容
Name 星座(StarProfile+ 合盘(Synastry
Purpose 用生日(可选出生时/出生地)生成本命排盘、相位、日周月年/一生运势、行运速览;双人合盘(比较/组合/时空/马克斯/配对 + 次限推运)与恋爱/友情/婚姻指数
Business Goal P2 探索供给;分享裂变;深度版/会员转化
In Out
圆形本命盘 + 宫位 + 相位预览 占卜/算命恐吓话术
日/周/月/年/一生运势 + 行运速览 医疗疗效承诺
合盘五主盘 + 三推运 + 三指数;附近/邀请 自称「测测」;达人市场/微信关系链拉取
多维 summary + 付费 detail
挂 ProfileGrowthReport star / synastry

2. 用户价值

  1. 为何需要: 用熟悉的星座语言认识自己的节奏、运势与互动偏好。
  2. 完成后获得: 本命轮盘、三大星座、行星/宫位、运势与行运;合盘页看五主盘、次限与三指数。
  3. 为何付费: 完整相位表、年运/一生深析、合盘相处长文、推运深文案与跨盘相位详解。

3. 用户角色

Actor 能力
Visitor 有档案可生成基础报告(轮盘 + 今日运势 + 合盘指数)
DeepAccess / VIP 可见 detail(完整相位、年运/一生深析、合盘深文案)
无档案 Empty → 页内填生日(可选时/地)

4. 用户流程

/explore 或 /star
  ↓
确认 Profilebirth_datebirth_time / birth_place 可选增强)
  ↓
生成 Star 报告 → 星盘轮盘 · 运势 · 行星 · 行运
  ↓
深度版?→ order deep_access / 会员 → detail
  ↓
可选:/synastry 全盘型合盘 · /synastry/invite/:token · /relation · 问答

5. 页面设计

路由 页面 说明
/star StarProfilePage 星盘(轮盘)/ 运势 / 行星
/synastry SynastryPage 五主盘 Tab + 次限 + 附近/邀请 + 深度墙
/synastry/invite/:token SynastryInvitePage 好友接受邀请并生成合盘
/reports/:id ReportPage type=star / synastry 专用展示
/relation RelationPage 人格匹配(行为风格,复用指数)
/explore 入口 排盘 / 合盘
/star
├── Empty(页内生日表单)
├── Loading
├── Normal(轮盘+运势+行运)
├── Locked(深度墙)
└── Error

6. 页面状态规范

状态 UI
Loading 生成中
Empty 页内填生日(可选时/地)
Error 重试
Normal 轮盘 + 运势基础层
Locked 深度版 CTA

7. Business Rules

ID Rule
R1 必须绑定用户可访问的 Profilebirth_date 必填
R2 内容确定性:同档案输入 → 同报告(可版本化 seed)
R3 summary 始终对所有者可读;detail 需 Membership DeepAccess
R4 允许运势分、吉凶分维文案、合盘缘分/匹配指数;禁止占卜/算命恐吓与疗效承诺
R5 太阳/月亮/上升/行星标签须伴随探索免责(非宿命断言恐吓)
R6 与个人画像并存:画像偏行为模式;本模块偏星座星盘语言
R7 文案过 lexicon;UI 主标题「星座」/「合盘」
R8 合盘与人格匹配分流:/synastry 盘型;/relation 行为风格
R9 附近的人默认 geo_visible=false;仅可见已开启位置的 self 档案
R10 合盘星历走 Swiss Ephemeris(默认 Moshier);宫位制 Whole Sign
R11 合盘交叉校验:档案 A 为本账号 Self;档案 B 须为本账号 other 或附近可见他人 Self;拒绝 self×self / 同 id
R12 本命层(轮盘/行星/相位/太阳月亮上升)随生日确定,不因打开时间重算;运势层(日/周/月/年 outlook · 行运)按**自然日(CST)**刷新
R13 GET /reports/latest 与 GET /reports/{id}type=star):若 summary.as_of ≠ 当日则原报告 id 原地更新时效段并落库;同日再读即时返回;禁止为换日运新建报告 id(以免深度权益丢失)
R14 summaryas_ofYYYY-MM-DD)与 valid_until(次日 00:00 CST RFC3339);前端到点静默刷新;不按十二时辰切换

8. 数据模型影响

表/字段 变更
growth_reports.type star · synastry
profiles.birth_time 可选参与上升/宫位
profiles.birth_place 可选;常用城市表解析经纬度
profiles.geo_lat/lng/visible 附近的人
synastry_invites 邀请 token · host/guest · report_id
报告 JSON charts.*(五主盘+推运)· as_of · valid_until · 三指数 · fortune/transits

详见 erd;实现切片同步 OpenAPI。


9. API 需求

Method Path 意图
POST /api/v1/reports/star body: profile_id → GrowthReport
POST /api/v1/reports/synastry body: profile_id_a + profile_id_b + optional as_of
GET /api/v1/synastry/nearby lat/lng/radius_km → 可合盘对象
POST /api/v1/synastry/invites 生成邀请
GET /api/v1/synastry/invites/{token} 邀请元数据
POST /api/v1/synastry/invites/{token}/accept 接受并生成报告
GET /api/v1/reports/{id} 权益裁剪(复用)
POST /api/v1/orders + pay-mock 深度版(复用)

10. 权限设计

能力 Visitor+档案 DeepAccess/VIP
轮盘 / 日运 / 行运 / 合盘三指数 / 各盘缩略
完整相位 / 年运与一生深析 / 合盘相处长文 / 推运深文案

11. 埋点

Event 触发
star_completed 基础结果展示
star_wheel_viewed 点选轮盘行星
synastry_completed 合盘结果展示
synastry_invite_created / synastry_invite_accepted 邀请链路
synastry_nearby_opened 附近面板
deep_access_clicked surface=star / synastry

12. 测试验收标准

Given Self 有生日
When 生成星座报告
Then 展示轮盘、太阳/月亮/上升、相位速览、fortune 日运与行运;无「占卜」「算命」恐吓

Given 两份档案
When POST synastry
Then summary 含三指数与 charts 五主盘 + 三推运 key;detail 无权益时剥离

Given 邀请 token
When accept
Then 生成 synastry 报告

Given 无权益
When 请求 detail
Then Server 剥离

Given 无档案
When 打开 /star
Then 页内生日表单可生成

Given 已有 star 报告且 as_of 为昨日
When GET latest
Then 日运等 outlook 按今日更新;报告 id 不变;响应含当日 as_ofvalid_until

Given 用户停留在 /star 跨自然日
When 到达 valid_until
Then 前端静默刷新运势 Tab 内容


13. AI 开发前检查

  • Spec 齐全
  • lexicon 已登记 StarProfile
  • OpenAPI 切片(synastry
  • §12 可测

14. Implementation Notes

内容
复用 ReportRich · DeepAccess · NatalWheel · Explore
Packages internal/star · ephemeris · natal · fortune · synastry
星历 Swiss EphemerisCGO,默认 Moshier);热带 + Whole Sign
实现 POST /reports/star · POST /reports/synastry · nearby/invites · H5 /star · /synastry · invite