docs: freeze YuXinGu lexicon, journey, and P1 engineering sources
Establish product language contract, user journey with dual growth engines, ERD/OpenAPI/Go boundaries, and H5 routes (/profile, /portrait, /relation, /membership) before P1 implementation. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+1
-1
@@ -10,7 +10,7 @@ MUST read:
|
||||
2. `.ai/architecture.md`
|
||||
3. `.ai/domain.md` (+ `domain/domain-map.md` when touching models/API)
|
||||
4. `.ai/coding.md`
|
||||
5. Task-relevant: `api.md` / `database.md` / `ui.md` / `security.md` / `product/feature-map.md`
|
||||
5. Task-relevant: `api.md` / `database.md` / `ui.md` / `security.md` / `product/lexicon.md` + `product/feature-map.md`
|
||||
6. UI tasks: `design/design-system.md` + `design/component-catalog.md` + `design/platform/*`
|
||||
7. Relevant ADR under `.ai/adr/` if changing stack or style
|
||||
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# Architecture
|
||||
|
||||
Go 包边界(冻结):[architecture/go-services.md](architecture/go-services.md)
|
||||
Domain / ERD:[domain/domain-map.md](domain/domain-map.md) · [domain/erd.md](domain/erd.md)
|
||||
|
||||
## Allowed call graph
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# Go 服务边界(冻结)
|
||||
|
||||
单二进制 `apps/api`;按包拆分,**禁止**跨层:Handler → Service → Repository。
|
||||
详见 [../architecture.md](../architecture.md)。
|
||||
|
||||
---
|
||||
|
||||
## Packages under `internal/service/`
|
||||
|
||||
| Package | 职责 | P1 |
|
||||
|---|---|---|
|
||||
| `user` | 注册/游客升级/Session | Yes |
|
||||
| `profile` | 个人档案 CRUD、切换 | Yes |
|
||||
| `portrait` | 生成个人画像 → GrowthReport | Yes |
|
||||
| `scale` | 探索测试定义与计分 | Yes |
|
||||
| `relation` | RelationInsight | Yes **必做** |
|
||||
| `report` | GrowthReport 读取 + **权益裁剪** | Yes |
|
||||
| `ask` | Thread/Message;规则或薄 LLM | Skeleton |
|
||||
| `companion` | SolarTerm 读、Mood 写 | Shell |
|
||||
| `membership` | 成长会员状态与额度 | Yes |
|
||||
| `order` | Order + pay-mock + DeepAccess 发放 | Yes |
|
||||
|
||||
`internal/handler/`:每域一组 handler,只做 bind/validate/调用 service。
|
||||
`internal/repository/`:SQL;无 business unlock 规则(规则在 service/report + membership)。
|
||||
|
||||
---
|
||||
|
||||
## 跨域规则
|
||||
|
||||
- **权益判定**只在 `report` / `ask` / `membership` service,不在 handler、不在 H5。
|
||||
- `portrait` 与 `relation` 写 `growth_reports`;读一律走 `report.Get`(带裁剪)。
|
||||
- `ask` 强制校验 `profile` 归属当前 user。
|
||||
|
||||
---
|
||||
|
||||
## 禁止
|
||||
|
||||
- 新建 `decode` / `match` / `unlock` / `fortune` 包名
|
||||
- Handler 直连 DB
|
||||
- 在 JSON 字段名使用 `luck` / `fortune` / `ji_xiong`
|
||||
@@ -118,11 +118,11 @@ Surface white, `--radius-lg`, `--shadow-card`. No random card skins.
|
||||
|
||||
Status: **required** — Explore entry (icon + title + one line).
|
||||
|
||||
### ReportCard
|
||||
### ReportCard(成长报告卡)
|
||||
|
||||
Status: **required**
|
||||
|
||||
Decode / Match summary. Shows free conclusion; locked sections use PaywallLock. Footer disclaimer slot.
|
||||
Portrait / RelationInsight summary. Free base conclusion; locked sections use PaywallLock(文案用「深度版」). Footer disclaimer.
|
||||
|
||||
### MoodCard
|
||||
|
||||
@@ -138,9 +138,9 @@ Status: **required**
|
||||
|
||||
Membership plans. Clear price · period · benefits. **MUST NOT** fake countdown / dark patterns. CTA = Primary Button.
|
||||
|
||||
### UnlockCard
|
||||
### DeepAccessCard
|
||||
|
||||
Status: **required** — single Report / Match Unlock alternative to VIP.
|
||||
Status: **required** — 单次深度版成长报告 / 关系理解完整建议(替代 VIP 订阅)。
|
||||
|
||||
---
|
||||
|
||||
@@ -180,7 +180,7 @@ Status: **required** — Self / Other list; “帮 TA 测” entry.
|
||||
|
||||
### ShareCard
|
||||
|
||||
Status: **required** — Decode / ScaleResult share visual; brand + one conclusion line; no medical claims.
|
||||
Status: **required** — 探索结果 / 画像关键词分享;品牌 + 一句结论;无医疗与占卜声称。
|
||||
|
||||
### ScaleQuestion / ScaleResultView
|
||||
|
||||
|
||||
@@ -248,7 +248,8 @@ Contrast for body text; touch ≥ 44px; no hover-only essentials; label interact
|
||||
## 13. Brand Voice
|
||||
|
||||
温和、清晰、尊重。禁止恐吓 / 道德绑架 / 虚假倒计时.
|
||||
Report/Ask: lifestyle disclaimer(非医疗、非算命). Labels follow `.ai/domain.md`.
|
||||
成长报告 / 问答:生活建议向免责声明(非医疗、非占卜).
|
||||
**中文命名强制:** `.ai/product/lexicon.md`(无「解码/运势/合盘/解锁」等禁用主文案).
|
||||
|
||||
---
|
||||
|
||||
|
||||
+34
-52
@@ -1,65 +1,47 @@
|
||||
# Domain Language — Ubiquitous Terms
|
||||
|
||||
Use ONLY these words in code, API, UI copy (Chinese labels noted).
|
||||
Do not invent synonyms (Customer / Client / Account) unless added here via ADR.
|
||||
Use ONLY these words in code and API.
|
||||
**User-facing Chinese:** [product/lexicon.md](product/lexicon.md)
|
||||
**Feature tree:** [product/feature-map.md](product/feature-map.md)
|
||||
**Contexts / ER:** [domain/domain-map.md](domain/domain-map.md) · [domain/erd.md](domain/erd.md)
|
||||
|
||||
**Bounded contexts / aggregates / ER:** [domain/domain-map.md](domain/domain-map.md)
|
||||
**Product feature tree:** [product/feature-map.md](product/feature-map.md)
|
||||
---
|
||||
|
||||
## Identity & access
|
||||
## Tech → User (frozen)
|
||||
|
||||
| Term | Meaning | Not |
|
||||
|---|---|---|
|
||||
| **Visitor** | 未登录访客;可有匿名 device id | Guest(勿混用) |
|
||||
| **User** | 已注册主体(有 user id) | Customer / Client |
|
||||
| **Member** | 同 User:已注册用户的业务称呼;代码字段优先 `user` | — |
|
||||
| **VIP** | 付费会员期内的 User(membership active) | Member(勿把所有注册用户叫 VIP) |
|
||||
| **Session** | 登录态 / token 会话 | — |
|
||||
| Tech | User CN |
|
||||
|---|---|
|
||||
| Profile | 个人档案 |
|
||||
| Portrait | 个人画像 |
|
||||
| Scale | 探索测试 |
|
||||
| ScaleResult / Result | 探索结果 |
|
||||
| GrowthReport | 成长报告 |
|
||||
| RelationInsight | 关系理解 |
|
||||
| Ask | AI成长助手(Tab:问答) |
|
||||
| Memory | 成长记录 |
|
||||
| Mood | 心情记录 |
|
||||
| SolarTerm | 节气生活 |
|
||||
| Membership | 成长会员 |
|
||||
| DeepAccess | 深度版 |
|
||||
| Constitution | 身心探索 |
|
||||
|
||||
## Commerce
|
||||
Deprecated aliases: Decode→Portrait · Match→RelationInsight · Unlock→DeepAccess
|
||||
|
||||
---
|
||||
|
||||
## Identity
|
||||
|
||||
| Term | Meaning |
|
||||
|---|---|
|
||||
| **Subscription** | 会员订阅计划(月/季/年) |
|
||||
| **Membership** | 用户当前会员权益状态(是否 VIP、到期时间、额度) |
|
||||
| **Order** | 支付订单(报告解锁或订阅) |
|
||||
| **Payment** | 一笔支付尝试 / 渠道回调结果 |
|
||||
| **Refund** | 退款记录 |
|
||||
| **Unlock** | 对某 Report 的购买解锁(非 VIP 也可单次解锁) |
|
||||
| **Visitor** | 匿名访客 + device id |
|
||||
| **User** | 注册主体 |
|
||||
| **VIP** | Membership active |
|
||||
| **Session** | token 会话 |
|
||||
|
||||
## Profile & content
|
||||
---
|
||||
|
||||
| Term | Meaning |
|
||||
|---|---|
|
||||
| **Profile** | 档案:自己或 TA 的生日等输入 |
|
||||
| **Self Profile** | relation = self |
|
||||
| **Other Profile** | relation = other(TA) |
|
||||
| **Decode** | 愈心解码报告(数字性格 + 体质建议) |
|
||||
| **Report** | 统称:Decode / Match / 尊享报告等可交付物 |
|
||||
| **Match** | 双人/家庭契合度报告 |
|
||||
| **Scale** | 心理量表 |
|
||||
| **ScaleResult** | 量表作答与计分结果 |
|
||||
## Core aggregates (names for packages/tables)
|
||||
|
||||
## Retention & AI
|
||||
`user` · `profile` · `portrait` · `scale` · `scale_result` · `growth_report` · `relation_insight` · `ask_thread` · `ask_message` · `mood` · `memory_item` · `subscription` · `membership` · `order` · `payment` · `deep_access`
|
||||
|
||||
| Term | Meaning |
|
||||
|---|---|
|
||||
| **Companion** | 陪伴域:节气、心情 |
|
||||
| **SolarTerm** | 二十四节气内容单元 |
|
||||
| **Mood** | 每日心情打卡 |
|
||||
| **Ask** | 「问」能力:基于 Profile 的解读对话 |
|
||||
| **Consult** | 真人顾问咨询(后置) |
|
||||
|
||||
## Platform
|
||||
|
||||
| Term | Meaning |
|
||||
|---|---|
|
||||
| **user-h5** | 用户 H5 客户端 |
|
||||
| **mini-program** | 微信小程序客户端 |
|
||||
| **api** | Go 后端唯一服务 |
|
||||
| **Legacy** | 根目录旧静态原型,只读 |
|
||||
|
||||
## Naming in code
|
||||
|
||||
- Go packages / JSON: `user`, `profile`, `report`, `order`, `membership`, `scale`
|
||||
- Never: `customer`, `client` (except HTTP client), `account` (unless wallet later + ADR)
|
||||
Never invent: `customer`, `decode`, `horoscope_luck`, `tarot` packages for P1.
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Domain docs
|
||||
# Domain
|
||||
|
||||
| File | Purpose |
|
||||
|---|---|
|
||||
| [../domain.md](../domain.md) | Ubiquitous language — terms only |
|
||||
| [domain-map.md](domain-map.md) | Bounded contexts, aggregates, ER sketch |
|
||||
| [../domain.md](../domain.md) | Tech ↔ 用户名 |
|
||||
| [domain-map.md](domain-map.md) | Bounded contexts(冻结) |
|
||||
| [erd.md](erd.md) | P1 表结构草案(冻结) |
|
||||
|
||||
+31
-172
@@ -1,183 +1,42 @@
|
||||
# Domain Map — 愈心谷(DDD 视角)
|
||||
# Domain Map — 冻结(P1 工程真源)
|
||||
|
||||
给后端 / DB / OpenAPI / SDK 用的**能力域与实体图**。
|
||||
词汇以 [../domain.md](../domain.md) 为准;产品范围以 [../product/feature-map.md](../product/feature-map.md) 为准。
|
||||
竞品能力对照:[../product/cece-feature-map.md](../product/cece-feature-map.md)。
|
||||
|
||||
AI 生成表结构或 API 时:先落本图中的 Context / Aggregate,再写 migration;禁止发明未列出的聚合根名。
|
||||
变更本文件或 ERD 需简短 ADR。词汇:[../domain.md](../domain.md) · ERD:[erd.md](erd.md) · API:`proto/openapi.yaml` · Go 边界:[../architecture/go-services.md](../architecture/go-services.md)
|
||||
|
||||
---
|
||||
|
||||
## 1. Bounded Contexts
|
||||
## Bounded Contexts
|
||||
|
||||
| Context | Aggregates | P1 | Owner package |
|
||||
|---|---|---|---|
|
||||
| Identity | User, Session, DeviceIdentity | Yes | `internal/service/user` |
|
||||
| Profile | Profile | Yes | `internal/service/profile` |
|
||||
| Discovery | Portrait, Scale, ScaleResult, GrowthReport | Yes | `portrait`, `scale`, `report` |
|
||||
| Relation | RelationInsight | Yes **必做** | `relation` |
|
||||
| Ask | AskThread, AskMessage, AskQuota | Skeleton | `ask` |
|
||||
| Companion | Mood, SolarTerm | Shell | `companion` |
|
||||
| Memory | MemoryItem | P2/P3 | `memory` |
|
||||
| Commerce | Subscription, Membership, Order, Payment, DeepAccess | Yes mock | `order`, `membership` |
|
||||
| Consult | — | P3 | — |
|
||||
|
||||
---
|
||||
|
||||
## Context diagram
|
||||
|
||||
```
|
||||
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
|
||||
│ Identity │──▶│ Profile │──▶│ Discovery │
|
||||
│ (User) │ │ Life Archive│ │ Decode/Scale│
|
||||
└─────────────┘ └──────┬───────┘ └──────┬──────┘
|
||||
│ │
|
||||
▼ ▼
|
||||
┌──────────────┐ ┌─────────────┐
|
||||
│ Relationship │ │ Ask │
|
||||
│ Match │ │ Companion │
|
||||
└──────┬───────┘ └──────┬──────┘
|
||||
│ │
|
||||
▼ ▼
|
||||
┌─────────────────────────────────┐
|
||||
│ Commerce │
|
||||
│ Subscription / Order / Unlock │
|
||||
└─────────────────────────────────┘
|
||||
│
|
||||
┌──────────────┼──────────────┐
|
||||
▼ ▼ ▼
|
||||
ContentFeed GrowthShare Consult(*)
|
||||
(* later)
|
||||
Identity → Profile → Discovery(Portrait/Scale/GrowthReport)
|
||||
↘ RelationInsight ← P1 双引擎
|
||||
↘ Ask (+ Memory later)
|
||||
↘ Companion
|
||||
↓
|
||||
Commerce(DeepAccess/Membership)
|
||||
```
|
||||
|
||||
| Context | 职责 | MVP |
|
||||
|---|---|---|
|
||||
| **Identity** | Visitor/User/Session | Yes |
|
||||
| **Profile** | Self/Other 生命档案 | Yes |
|
||||
| **Discovery** | Decode、Scale、Report 生成 | Yes |
|
||||
| **Relationship** | Match | Yes |
|
||||
| **Ask** | 档案上下文对话、额度 | Skeleton |
|
||||
| **Companion** | SolarTerm、Mood | Skeleton |
|
||||
| **Commerce** | Subscription、Membership、Order、Unlock、Payment | Yes (mock) |
|
||||
| **Content** | Feed 配置 | Static OK |
|
||||
| **Growth** | Share 卡片元数据 | Minimal |
|
||||
| **Consult** | 真人顾问 Marketplace | No |
|
||||
| **Recommendation** | 推荐 | V1 rules |
|
||||
|
||||
---
|
||||
|
||||
## 2. Aggregates & Entities(命名强制)
|
||||
## Invariants
|
||||
|
||||
### Identity
|
||||
|
||||
| Type | Name | Notes |
|
||||
|---|---|---|
|
||||
| Aggregate | **User** | 注册主体 |
|
||||
| Entity | Session | token 会话 |
|
||||
| Entity | DeviceIdentity | Visitor 匿名 |
|
||||
|
||||
### Profile(生命档案)
|
||||
|
||||
| Type | Name | Notes |
|
||||
|---|---|---|
|
||||
| Aggregate | **Profile** | `relation`: self \| other |
|
||||
| VO | BirthInput | date;time/place optional later |
|
||||
| VO | RelationType | partner/family/friend/… |
|
||||
|
||||
### Discovery
|
||||
|
||||
| Type | Name | Notes |
|
||||
|---|---|---|
|
||||
| Aggregate | **Report** | type: decode \| match \| … |
|
||||
| Domain Svc | DecodeEngine | 可复算;结果入 Report |
|
||||
| Aggregate | **Scale** | 量表定义 |
|
||||
| Entity | ScaleQuestion | |
|
||||
| Aggregate | **ScaleResult** | 作答 + 计分 |
|
||||
|
||||
### Relationship
|
||||
|
||||
| Type | Name | Notes |
|
||||
|---|---|---|
|
||||
| Aggregate | **Match** | 引用两个 Profile;产出 Report 或嵌入 |
|
||||
|
||||
### Ask / Companion
|
||||
|
||||
| Type | Name | Notes |
|
||||
|---|---|---|
|
||||
| Aggregate | **AskThread** | 挂 profile_id |
|
||||
| Entity | AskMessage | role user/assistant |
|
||||
| Entity | AskQuota | 与 Membership 联动 |
|
||||
| Aggregate | **Mood** | 日维度打卡 |
|
||||
| Read Model | **SolarTerm** | 日历内容;可配置表 |
|
||||
|
||||
### Commerce
|
||||
|
||||
| Type | Name | Notes |
|
||||
|---|---|---|
|
||||
| Aggregate | **Subscription** | 计划 SKU |
|
||||
| Aggregate | **Membership** | 用户权益状态 |
|
||||
| Aggregate | **Order** | 订阅或 Unlock |
|
||||
| Entity | Payment | mock / 渠道 |
|
||||
| Entity | Unlock | order → report 解锁 |
|
||||
|
||||
### Content / Growth(薄)
|
||||
|
||||
| Type | Name | Notes |
|
||||
|---|---|---|
|
||||
| Entity | FeedItem | 运营配置 |
|
||||
| VO | SharePayload | 分享卡字段 |
|
||||
|
||||
### Consult(Later)
|
||||
|
||||
| Type | Name | Notes |
|
||||
|---|---|---|
|
||||
| Aggregate | Consultant | |
|
||||
| Aggregate | ConsultOrder | |
|
||||
| Entity | ConsultSession | |
|
||||
|
||||
---
|
||||
|
||||
## 3. 关键关系(ER 草图)
|
||||
|
||||
```
|
||||
User 1──* Profile
|
||||
Profile 1──* Report
|
||||
Profile 1──* AskThread
|
||||
User 1──* ScaleResult
|
||||
User 1──0..1 Membership
|
||||
User 1──* Order
|
||||
Order 0..1── Unlock ──▶ Report
|
||||
Profile ── Match ── Profile
|
||||
User 1──* Mood
|
||||
```
|
||||
|
||||
权益规则:**Membership / Unlock 只由服务端判定**;客户端不可信任。
|
||||
|
||||
---
|
||||
|
||||
## 4. Context → 代码落点
|
||||
|
||||
| Context | Go | H5 |
|
||||
|---|---|---|
|
||||
| Identity | `internal/service/user` | login / mine |
|
||||
| Profile | `service/profile` | decode form, mine |
|
||||
| Discovery | `service/report`, `service/scale` | decode, explore, report |
|
||||
| Relationship | `service/match` | match |
|
||||
| Ask | `service/ask` | ask tab |
|
||||
| Companion | `service/companion` | companion tab |
|
||||
| Commerce | `service/order`, `membership` | paywall, mine |
|
||||
|
||||
包名只用 `domain.md` 词汇:`user` `profile` `report` `order` `membership` `scale` `ask` `mood`。
|
||||
|
||||
---
|
||||
|
||||
## 5. 测测域 → 愈心谷域 映射
|
||||
|
||||
| 测测概念 | 愈心谷 |
|
||||
|---|---|
|
||||
| 星盘档案 | **Profile**(生日+体质相关输入) |
|
||||
| 测测 AI | **Ask** |
|
||||
| 真人 1v1 | **Consult**(后置) |
|
||||
| MBTI 等 | **Scale** |
|
||||
| 缘分合盘 | **Match**(合规叙事) |
|
||||
| 今日运势 | **SolarTerm** + 生活建议(替换) |
|
||||
| 会员 | **Subscription / Membership** |
|
||||
| AI 玩法广场 | **[No] MVP** |
|
||||
| 心情打卡 | **Mood** |
|
||||
| 沙盘/心情小镇 | **[No]** |
|
||||
|
||||
---
|
||||
|
||||
## 6. 生成顺序(给 AI)
|
||||
|
||||
1. 改范围 → 更新 `product/feature-map.md` MVP 标记
|
||||
2. 新实体 → 本文件 + `domain.md` 词条(若新词)
|
||||
3. migration → `playbooks/new-table.md`
|
||||
4. API → `playbooks/add-api.md` + OpenAPI
|
||||
5. 页面 → `playbooks/new-page.md` + design contract
|
||||
|
||||
下一步可选:单独 `apps/docs/erd.md` 或 migrations 初稿(本任务不强制)。
|
||||
1. GrowthReport 完整字段仅当 Membership active **或** DeepAccess 存在。
|
||||
2. Ask 必须绑定 `profile_id`(Self 或 Other)。
|
||||
3. RelationInsight 引用两个 Profile;禁止无档案的「合婚」式空算。
|
||||
4. 客户端不可信任本地「已深度版」标志。
|
||||
5. 禁止吉凶/运势类字段名进入 schema(如 `luck_score`)。
|
||||
|
||||
@@ -0,0 +1,172 @@
|
||||
# ERD — P1 Schema(冻结草案)
|
||||
|
||||
实现时用 migration 落地;列名可微调但**表/聚合关系不得偏离**。
|
||||
类型:Postgres。敏感:生日等属 Profile,需可删账号级联。
|
||||
|
||||
---
|
||||
|
||||
## Tables
|
||||
|
||||
### users
|
||||
| column | type | notes |
|
||||
|---|---|---|
|
||||
| id | uuid PK | |
|
||||
| created_at | timestamptz | |
|
||||
| status | text | active/deleted |
|
||||
|
||||
### device_identities
|
||||
| column | type | notes |
|
||||
|---|---|---|
|
||||
| id | uuid PK | |
|
||||
| device_key | text unique | Visitor |
|
||||
| user_id | uuid null FK→users | 升级后绑定 |
|
||||
|
||||
### profiles
|
||||
| column | type | notes |
|
||||
|---|---|---|
|
||||
| id | uuid PK | |
|
||||
| user_id | uuid FK→users | |
|
||||
| relation | text | self \| other |
|
||||
| display_name | text | |
|
||||
| birth_date | date | required P1 |
|
||||
| birth_time | time null | optional |
|
||||
| birth_place | text null | optional |
|
||||
| gender | text null | |
|
||||
| relation_type | text null | partner/family/friend… when other |
|
||||
| created_at | timestamptz | |
|
||||
|
||||
### scales
|
||||
| column | type | notes |
|
||||
|---|---|---|
|
||||
| id | uuid PK | |
|
||||
| slug | text unique | |
|
||||
| title | text | 探索测试标题 |
|
||||
| status | text | published/draft |
|
||||
|
||||
### scale_questions
|
||||
| column | type | notes |
|
||||
|---|---|---|
|
||||
| id | uuid PK | |
|
||||
| scale_id | uuid FK | |
|
||||
| sort | int | |
|
||||
| body | jsonb | 题干与选项 |
|
||||
|
||||
### scale_results
|
||||
| column | type | notes |
|
||||
|---|---|---|
|
||||
| id | uuid PK | |
|
||||
| user_id | uuid FK | |
|
||||
| scale_id | uuid FK | |
|
||||
| profile_id | uuid FK | |
|
||||
| answers | jsonb | |
|
||||
| result | jsonb | 探索结果摘要(可公开字段) |
|
||||
| created_at | timestamptz | |
|
||||
|
||||
### growth_reports
|
||||
| column | type | notes |
|
||||
|---|---|---|
|
||||
| id | uuid PK | |
|
||||
| user_id | uuid FK | |
|
||||
| profile_id | uuid FK | |
|
||||
| type | text | portrait \| relation \| … |
|
||||
| summary | jsonb | **基础版**,始终可按规则返回 |
|
||||
| detail | jsonb | **深度版**,服务端按权益剥离 |
|
||||
| created_at | timestamptz | |
|
||||
|
||||
### relation_insights
|
||||
| column | type | notes |
|
||||
|---|---|---|
|
||||
| id | uuid PK | |
|
||||
| user_id | uuid FK | |
|
||||
| profile_a_id | uuid FK | usually self |
|
||||
| profile_b_id | uuid FK | other |
|
||||
| summary | jsonb | 对比标签等基础 |
|
||||
| report_id | uuid null FK→growth_reports | 深度建议所在报告 |
|
||||
| created_at | timestamptz | |
|
||||
|
||||
### ask_threads
|
||||
| column | type | notes |
|
||||
|---|---|---|
|
||||
| id | uuid PK | |
|
||||
| user_id | uuid FK | |
|
||||
| profile_id | uuid FK | 当前解读对象 |
|
||||
| created_at | timestamptz | |
|
||||
|
||||
### ask_messages
|
||||
| column | type | notes |
|
||||
|---|---|---|
|
||||
| id | uuid PK | |
|
||||
| thread_id | uuid FK | |
|
||||
| role | text | user \| assistant |
|
||||
| content | text | |
|
||||
| created_at | timestamptz | |
|
||||
|
||||
### memberships
|
||||
| column | type | notes |
|
||||
|---|---|---|
|
||||
| user_id | uuid PK FK→users | |
|
||||
| plan | text | month/quarter/year |
|
||||
| status | text | active/expired |
|
||||
| expires_at | timestamptz | |
|
||||
| ask_quota_left | int | |
|
||||
|
||||
### orders
|
||||
| column | type | notes |
|
||||
|---|---|---|
|
||||
| id | uuid PK | |
|
||||
| user_id | uuid FK | |
|
||||
| kind | text | membership \| deep_access |
|
||||
| amount_cents | int | |
|
||||
| status | text | created/paid/failed |
|
||||
| created_at | timestamptz | |
|
||||
|
||||
### payments
|
||||
| column | type | notes |
|
||||
|---|---|---|
|
||||
| id | uuid PK | |
|
||||
| order_id | uuid FK | |
|
||||
| channel | text | mock \| wechat… |
|
||||
| status | text | |
|
||||
| raw | jsonb null | |
|
||||
|
||||
### deep_accesses
|
||||
| column | type | notes |
|
||||
|---|---|---|
|
||||
| id | uuid PK | |
|
||||
| user_id | uuid FK | |
|
||||
| report_id | uuid FK→growth_reports | |
|
||||
| order_id | uuid FK | |
|
||||
| created_at | timestamptz | |
|
||||
|
||||
### moods(P2 可先建表空用)
|
||||
| column | type | notes |
|
||||
|---|---|---|
|
||||
| id | uuid PK | |
|
||||
| user_id | uuid FK | |
|
||||
| day | date | |
|
||||
| score | int null | |
|
||||
| note | text null | |
|
||||
|
||||
### memory_items(P3)
|
||||
| column | type | notes |
|
||||
|---|---|---|
|
||||
| id | uuid PK | |
|
||||
| user_id | uuid FK | |
|
||||
| kind | text | |
|
||||
| payload | jsonb | |
|
||||
| created_at | timestamptz | |
|
||||
|
||||
---
|
||||
|
||||
## Relationship sketch
|
||||
|
||||
```
|
||||
users 1──* profiles
|
||||
users 1──* scale_results
|
||||
users 1──* growth_reports
|
||||
users 1──0..1 memberships
|
||||
users 1──* orders 1──* payments
|
||||
growth_reports 1──* deep_accesses
|
||||
profiles ── relation_insights ── profiles
|
||||
users 1──* ask_threads 1──* ask_messages
|
||||
```
|
||||
+8
-4
@@ -58,10 +58,14 @@ Rules, ADR, patterns, examples, playbooks, checklists. Not runtime code.
|
||||
|
||||
| Path | Owns |
|
||||
|---|---|
|
||||
| `product/feature-map.md` | 愈心谷 L0/L1/L2 + MVP 标记 |
|
||||
| `product/cece-feature-map.md` | 测测竞品合并 Feature Tree |
|
||||
| `domain/domain-map.md` | Bounded contexts / aggregates / ER |
|
||||
| `domain.md` | Ubiquitous terms only |
|
||||
| `product/lexicon.md` | 产品中文语言契约(最高优先级) |
|
||||
| `product/user-journey.md` | 转化路径 |
|
||||
| `product/page-tree.md` | H5 路由冻结 |
|
||||
| `product/feature-map.md` | 能力树 · 五 Tab 冻结 |
|
||||
| `product/ENGINEERING-FREEZE.md` | P1 真源索引 |
|
||||
| `domain/domain-map.md` + `erd.md` | Contexts + 表结构 |
|
||||
| `architecture/go-services.md` | Go 包边界 |
|
||||
| `domain.md` | Tech ↔ 用户名 |
|
||||
|
||||
### .ai/design/
|
||||
|
||||
|
||||
+12
-11
@@ -5,14 +5,15 @@ Use when: “新增页面”
|
||||
## Steps
|
||||
|
||||
1. Confirm IA tab vs secondary page (`.ai/ui.md`)
|
||||
2. Read `.ai/design/design-system.md` + `component-catalog.md` + `design/platform/h5.md`
|
||||
3. Reuse catalog components; update catalog if adding a new one
|
||||
4. Add route in `apps/user-h5/src/router`
|
||||
5. Add `pages/XxxPage.vue` (PascalCase); tokens only (no raw brand hex)
|
||||
6. Extract components if file approaches 300–400 lines
|
||||
7. Data via `src/api` → `@yuxingu/sdk` only
|
||||
8. Use domain words from `.ai/domain.md`
|
||||
9. Loading / empty / error states
|
||||
10. Compliance copy if report-like
|
||||
11. `npm run build:h5`
|
||||
12. Review + checklist/feature.md
|
||||
2. Read `.ai/product/lexicon.md` + `feature-map.md`(文案禁用词)
|
||||
3. Read `.ai/design/design-system.md` + `component-catalog.md` + `design/platform/h5.md`
|
||||
4. Reuse catalog components; update catalog if adding a new one
|
||||
5. Add route in `apps/user-h5/src/router`
|
||||
6. Add `pages/XxxPage.vue` (PascalCase); tokens only (no raw brand hex)
|
||||
7. Extract components if file approaches 300–400 lines
|
||||
8. Data via `src/api` → `@yuxingu/sdk` only
|
||||
9. Domain terms from `.ai/domain.md`;UI 中文从 lexicon
|
||||
10. Loading / empty / error states
|
||||
11. Compliance copy if 成长报告-like
|
||||
12. `npm run build:h5`
|
||||
13. Review + checklist/feature.md
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# Engineering Freeze — 进入 P1 开发前真源
|
||||
|
||||
以下文件为 **P1 冻结输入**;改动需 ADR 或产品确认。
|
||||
|
||||
| # | 真源 | 路径 |
|
||||
|---|---|---|
|
||||
| 1 | 产品语言 | `product/lexicon.md` |
|
||||
| 2 | 能力树 + 冻结 IA | `product/feature-map.md` |
|
||||
| 3 | 用户旅程 | `product/user-journey.md` |
|
||||
| 4 | H5 页面树 | `product/page-tree.md` |
|
||||
| 5 | 域词 | `domain.md` |
|
||||
| 6 | Domain Map | `domain/domain-map.md` |
|
||||
| 7 | ERD | `domain/erd.md` |
|
||||
| 8 | API Contract | `proto/openapi.yaml` |
|
||||
| 9 | Go 服务边界 | `architecture/go-services.md` |
|
||||
| 10 | Design System | `design/design-system.md` |
|
||||
|
||||
下一步:**按 P1 竖切实现**(Profile → Portrait → RelationInsight → Scale → Commerce mock → Ask 壳),不再横向加功能。
|
||||
|
||||
## Review 清单(合并前必过)
|
||||
|
||||
1. 用户可见文本是否仅来自 lexicon?有无旧产品词/玄学预测?
|
||||
2. 路由是否落在 page-tree?
|
||||
3. Domain / 表名是否符合 domain.md(无 decode/luck 等)?
|
||||
4. 权益是否只在服务端裁剪?
|
||||
5. 关系理解是否仍在 P1 路径中(双引擎)?
|
||||
6. 数据模型是否留有 Memory / Consult 扩展位(不阻塞 P1)?
|
||||
+11
-10
@@ -1,12 +1,13 @@
|
||||
# Product docs for AI agents
|
||||
# Product docs(AI 真源)
|
||||
|
||||
| File | Audience | Purpose |
|
||||
|---|---|---|
|
||||
| [STRATEGY.md](STRATEGY.md) | All agents | **执行优先级**:先测测 parity,Vision v1 已封存 |
|
||||
| [feature-map.md](feature-map.md) | PRD / H5 / API | 愈心谷差异化能力树(Design Vision v1) |
|
||||
| [cece-feature-map.md](cece-feature-map.md) | Competitor / parity | 测测 Feature Tree — 下一版对齐主参考 |
|
||||
| [../domain/domain-map.md](../domain/domain-map.md) | Backend / DB / OpenAPI | Bounded contexts & entities |
|
||||
| [../domain.md](../domain.md) | All code | Ubiquitous language (terms only) |
|
||||
| File | Purpose |
|
||||
|---|---|
|
||||
| [ENGINEERING-FREEZE.md](ENGINEERING-FREEZE.md) | **P1 冻结清单** |
|
||||
| [lexicon.md](lexicon.md) | 产品语言契约(最高优先级) |
|
||||
| [feature-map.md](feature-map.md) | 能力树 · 五 Tab 冻结 |
|
||||
| [user-journey.md](user-journey.md) | 转化路径(含关系分享引擎) |
|
||||
| [page-tree.md](page-tree.md) | H5 路由树 |
|
||||
| [STRATEGY.md](STRATEGY.md) | 参考模型 ≠ 复制品牌 |
|
||||
| [cece-feature-map.md](cece-feature-map.md) | 竞品对照(勿抄 UI) |
|
||||
|
||||
Product narrative docs (human PRD): `apps/docs/`.
|
||||
**冲突时:** `STRATEGY.md` 的 parity 执行 > Vision v1 创新项。
|
||||
冲突:`lexicon` > `feature-map` / `user-journey` > 历史文档。
|
||||
|
||||
+16
-22
@@ -1,32 +1,26 @@
|
||||
# Product Strategy Snapshot
|
||||
# Product Strategy
|
||||
|
||||
## Sealed design (this repo state)
|
||||
## 原则
|
||||
|
||||
Documented vision: **愈心谷差异化** — 数字性格 + 中医体质 + 关系档案 + 节气,学测测飞轮但替换运势主叙事。
|
||||
| 参考竞品 | 愈心谷自己的 |
|
||||
|---|---|
|
||||
| 功能模型 | 品牌语言(见 [lexicon.md](lexicon.md)) |
|
||||
| 用户路径 | 功能命名 |
|
||||
| 商业模型(测评→档案→AI→会员→咨询) | 叙事:成长 / 认识自己 / 理解他人 |
|
||||
|
||||
Canonical docs at seal time:
|
||||
**不是**竞品复制品。UI/PRD/Ask **禁止**出现:测测(自称)、解码、运势、塔罗、吉凶、命理预测;星盘不作核心叙事。
|
||||
|
||||
- `product/feature-map.md` — 愈心谷能力树(含 MVP 标记)
|
||||
- `product/cece-feature-map.md` — 测测竞品树
|
||||
- `domain/domain-map.md` — 领域模型
|
||||
- `apps/docs/prd-mvp.md` · `business-model.md` · `product-roadmap.md`
|
||||
- `.ai/design/*` — Design System Contract
|
||||
|
||||
Treat the above as **Design Vision v1(已封存)** — 可对照、可回退,不作为下一迭代的强制做完清单。
|
||||
封存的差异化长文设计见 git tag `design-vision-v1`(历史参考)。
|
||||
|
||||
---
|
||||
|
||||
## Next build direction(执行优先)
|
||||
## 执行分期(与 feature-map 对齐)
|
||||
|
||||
**先出一版和测测结构类似的产品,不要一上来就创新。**
|
||||
1. **P1** — 档案 · 性格探索/画像 · 人格测评 · 关系理解 · 问答 · 深度版 · 会员
|
||||
2. **P2** — 身心探索 · 节气陪伴 · 心情记录 · 成长计划
|
||||
3. **P3** — 长期记忆 · 成长数据库 · 真人顾问
|
||||
|
||||
| 原则 | 含义 |
|
||||
|---|---|
|
||||
| IA 对齐测测 | 首页发现 · 问(AI)· 在线/咨询位 · 消息或可后置 · 我的 |
|
||||
| 能力对齐测测漏斗 | 测评拉新 → 档案 → AI 问 → 会员 → 咨询占位 |
|
||||
| 叙事可先「泛心理 + 星座/性格」 | 体质/节气差异化后置,不阻塞首版 |
|
||||
| 不做冷启动重资产 | 不做达人双边冷启动、不做硬件、不做 UGC 玩法广场首版 |
|
||||
冲突时:**lexicon + feature-map > 历史 Vision 文档中的旧命名(解码/Unlock 等)**。
|
||||
|
||||
差异化 Vision v1 在首版跑通测测式漏斗后再渐进引入(Decode 体质、节气陪伴等)。
|
||||
|
||||
执行时以即将撰写的 **Cece-parity PRD / feature-map-v0** 为准;冲突时:**parity 执行 > Vision v1 创新项**。
|
||||
工程冻结清单:[ENGINEERING-FREEZE.md](ENGINEERING-FREEZE.md)。
|
||||
P1 双引擎:个人画像 **与** 关系理解,不可只做「我是谁」。
|
||||
|
||||
+185
-187
@@ -1,212 +1,210 @@
|
||||
# 愈心谷 — Product Feature Map
|
||||
|
||||
**权威产品能力树**(PRD / 路由 / 竖切范围以此为准)。
|
||||
竞品原文树:[cece-feature-map.md](cece-feature-map.md)
|
||||
领域实体:[../domain/domain-map.md](../domain/domain-map.md)
|
||||
词汇:[../domain.md](../domain.md) · PRD:`apps/docs/prd-mvp.md`
|
||||
**权威产品能力树。** 语言以 [lexicon.md](lexicon.md) 为准。
|
||||
参考测测的是:**功能模型 · 用户路径 · 商业模型**;品牌叙事与命名必须是愈心谷自己的。
|
||||
领域实体:[../domain/domain-map.md](../domain/domain-map.md) · 词汇:[../domain.md](../domain.md)
|
||||
竞品对照(可含竞品原名):[cece-feature-map.md](cece-feature-map.md)
|
||||
策略:[STRATEGY.md](STRATEGY.md)
|
||||
|
||||
标记:`[MVP]` `[V1]` `[Later]` `[No]`
|
||||
标记:`[P1]` 第一阶段 · `[P2]` 第二阶段 · `[P3]` 第三阶段 · `[No]`
|
||||
|
||||
---
|
||||
|
||||
## L0 — App 信息架构
|
||||
## 定位
|
||||
|
||||
愈心谷 = 通过数字性格、身心特征、关系理解与 AI 陪伴,帮助用户更好地认识自己、理解他人的个人成长平台。
|
||||
|
||||
### 核心飞轮
|
||||
|
||||
```
|
||||
探索自己 → 建立个人档案 → 获得个性化分析
|
||||
→ AI 持续陪伴 → 会员深入体验 → 长期成长记录
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## L0 信息架构(冻结)
|
||||
|
||||
```
|
||||
愈心谷
|
||||
├── 首页 HomeWash:品牌 + Decode + Feed
|
||||
├── 探索 Scale / Decode / 轻工具
|
||||
├── 问 Ask(战略中心 Tab)
|
||||
├── 陪伴 SolarTerm + Mood
|
||||
├── 我的 Life Profile 资产
|
||||
├── 增长运营(横切)
|
||||
└── 平台生态(横切 · 后置)
|
||||
├── 首页 发现与入口中心
|
||||
├── 探索 核心功能中心
|
||||
├── 问答 AI 成长助手(战略中心 Tab)
|
||||
├── 陪伴 日常留存
|
||||
└── 我的 档案 / 成长报告 / 成长会员
|
||||
```
|
||||
|
||||
路径:`发现 → 建档/测评 → 问/陪伴留存 → 会员·解锁 →(后)Consult`
|
||||
**五 Tab 名称与顺序冻结,未经 ADR 不得改。**
|
||||
路径见 [user-journey.md](user-journey.md)。
|
||||
P1 双引擎:**个人画像 + 关系理解**(不可弱化关系侧)。
|
||||
|
||||
---
|
||||
|
||||
## L1 — 产品能力树(合并 IA × Domain)
|
||||
## 1. 首页(发现与入口中心)
|
||||
|
||||
```
|
||||
愈心谷 Feature Tree
|
||||
├── 1. Identity & 生命档案
|
||||
├── 2. Self Discovery(自我探索)
|
||||
├── 3. Relationship(关系)
|
||||
├── 4. AI Companion(问)
|
||||
├── 5. Companion Rhythm(陪伴节奏)
|
||||
├── 6. Human Expert(真人 · 后置)
|
||||
├── 7. Content & Feed
|
||||
├── 8. Growth
|
||||
├── 9. Commerce
|
||||
└── 10. Data & Recommendation(平台能力)
|
||||
```
|
||||
### 1.1 创建个人档案 `[P1]`
|
||||
|
||||
| 三级 | 内容 |
|
||||
|---|---|
|
||||
| 1.1.1 我的信息 | 出生日期;出生时间/地点(可后置);性别 |
|
||||
| 1.1.2 关系对象 | 伴侣 · 家人 · 朋友 |
|
||||
| 1.1.3 档案管理 | 编辑 · 删除 · 切换 |
|
||||
|
||||
### 1.2 快捷功能入口(九宫格)
|
||||
|
||||
性格探索 · 人格测试 · 关系分析 · 个人画像 · AI问答 · 身心探索 · 节气陪伴 · 会员中心 · 更多
|
||||
|
||||
(身心探索 / 节气:`[P1]` 可轻入口,深做在 `[P2]`)
|
||||
|
||||
### 1.3 推荐内容 `[P1]` 静态/运营即可
|
||||
|
||||
今日推荐 · 热门探索 · 成长文章 · 用户故事 · 精选成长报告
|
||||
|
||||
---
|
||||
|
||||
### 1. Identity & 生命档案
|
||||
## 2. 探索(核心功能中心)
|
||||
|
||||
| 二级 | 三级 | 范围 |
|
||||
### 2.1 性格探索 `[P1]`
|
||||
|
||||
帮助用户了解行为模式。
|
||||
|
||||
| 三级 | 内容 |
|
||||
|---|---|
|
||||
| 2.1.1 性格测试 | 人格类型 · 行为偏好 · 思维方式 |
|
||||
| 2.1.2 成长报告 | 免费:基础画像;会员/深度版:完整分析 |
|
||||
| 2.1.3 分享卡片 | 关键词 · 性格标签 |
|
||||
|
||||
### 2.2 人格测评 `[P1]`
|
||||
|
||||
MBTI 类 · 沟通方式 · 情感模式 · 成长倾向(首版 ≥1 个热门)
|
||||
|
||||
### 2.3 个人画像(成长画像) `[P1]`
|
||||
|
||||
替代竞品「星盘档案」叙事。内容:性格特点 · 兴趣倾向 · 行为模式 · 关系特点 · 生活建议
|
||||
|
||||
### 2.4 关系理解 `[P1 · 双引擎之一,不可砍]`
|
||||
|
||||
| 三级 | 内容 |
|
||||
|---|---|
|
||||
| 2.4.1 创建关系 | 添加 TA |
|
||||
| 2.4.2 双人分析 | 了解双方差异(沟通/行为标签对比) |
|
||||
| 2.4.3 相处建议 | 沟通方式 · 互动模式 · 关系维护(深度版) |
|
||||
| 2.4.4 分享卡 | 「我的方式 vs TA 的方式 → 查看关系理解」 |
|
||||
|
||||
禁止宿命/恐吓文案。增长价值不低于个人画像。
|
||||
|
||||
### 2.5 身心探索 `[P2]`(差异化,首版可弱入口)
|
||||
|
||||
| 三级 | 内容 |
|
||||
|---|---|
|
||||
| 2.5.1 体质倾向 | 了解身体特点 |
|
||||
| 2.5.2 生活习惯建议 | 饮食 · 作息 · 运动 |
|
||||
| 2.5.3 节气提醒 | 季节变化 · 生活调整 |
|
||||
|
||||
禁止:治疗、改善疾病、疗效承诺。
|
||||
|
||||
---
|
||||
|
||||
## 3. 问答(AI 核心)
|
||||
|
||||
### 3.1 AI 成长助手 `[P1]`
|
||||
|
||||
定位:了解你的智能伙伴。不是占卜,不是预测。
|
||||
|
||||
| 三级 | 内容 |
|
||||
|---|---|
|
||||
| 3.1.1 自我提问 | 性格 · 关系 · 成长 |
|
||||
| 3.1.2 档案关联回答 | 结合个人档案与探索结果 |
|
||||
| 3.1.3 深度分析 | 会员 / 深度版 |
|
||||
|
||||
### 3.2 AI 场景入口 `[P1]`
|
||||
|
||||
认识自己 · 理解关系 · 职业探索 · 情绪整理 · 生活建议
|
||||
|
||||
顶栏:切换「我的档案 / TA 的档案」。可并列「顾问预约」占位(履约 `[P3]`)。
|
||||
|
||||
---
|
||||
|
||||
## 4. 陪伴(日常留存)`[P2]` 主做;`[P1]` 可占位壳
|
||||
|
||||
### 4.1 今日状态
|
||||
|
||||
心情记录 · 今日感受 · 成长记录
|
||||
|
||||
### 4.2 节气生活
|
||||
|
||||
今日节气 · 季节变化 · 日常建议(生活建议,非运势)
|
||||
|
||||
---
|
||||
|
||||
## 5. 我的(个人中心)`[P1]`
|
||||
|
||||
| 二级 | 内容 |
|
||||
|---|---|
|
||||
| 5.1 我的档案 | 个人资料 · 探索记录 · 关系记录 |
|
||||
| 5.2 我的成长报告 | 已完成探索 · 已购深度版 · 收藏 |
|
||||
| 5.3 会员中心 | 完整分析 · 高级成长报告 · AI 更多次数 · 专属内容 |
|
||||
|
||||
---
|
||||
|
||||
## 6. 商业体系(模型参考成熟产品,话术用愈心谷)
|
||||
|
||||
### 6.1 深度版成长报告 `[P1]`
|
||||
|
||||
- 免费:基础结果 / 基础画像
|
||||
- 付费:完整分析 · 行为模式 · 关系建议 · 成长方向
|
||||
|
||||
### 6.2 会员订阅 `[P1]`
|
||||
|
||||
月会员 · 季度会员 · 年度会员(支付可先 mock)
|
||||
|
||||
### 6.3 `[No]` 首版
|
||||
|
||||
干扰广告 · 塔罗商城主路径 · 达人双边冷启动 · 硬件
|
||||
|
||||
---
|
||||
|
||||
## 分期范围
|
||||
|
||||
### 第一阶段 `[P1]` — 必须
|
||||
|
||||
用户档案 · 性格探索 · 个人画像 · 关系理解 · AI 问答 · 成长报告深度版 · 会员系统
|
||||
|
||||
### 第二阶段 `[P2]`
|
||||
|
||||
体质/身心探索 · 节气陪伴 · 心情记录 · 成长计划
|
||||
|
||||
### 第三阶段 `[P3]`
|
||||
|
||||
长期 AI 记忆 · 个人成长数据库 · 真人咨询 · 专家服务
|
||||
|
||||
---
|
||||
|
||||
## L2 路由(冻结 · user-h5)
|
||||
|
||||
| 路径 | 页面 | 说明 |
|
||||
|---|---|---|
|
||||
| 1.1 注册登录 | 手机 / 微信 / 游客 device / 升级 User | [MVP] 游客+升级;微信 [V1] |
|
||||
| 1.2 Self Profile | 生日(必填);时辰/地点(可选后置) | [MVP] 生日 |
|
||||
| 1.3 Other Profile | 伴侣/家人/朋友等关系对象 | [MVP] 基础 Other |
|
||||
| 1.4 档案管理 | 编辑 · 删除 · 多档案切换 · Ask 关联 | [MVP] |
|
||||
| 1.5 兴趣标签 | 性格/关系/养生等(非运势标签) | [V1] |
|
||||
| 1.6 行为资产 | 浏览 · Decode · Scale · Ask · Order 记录 | [MVP] 服务端最小集 |
|
||||
| `/` | 首页 | 发现入口 |
|
||||
| `/explore` | 探索 | 探索测试列表等 |
|
||||
| `/ask` | 问答 | AI成长助手 |
|
||||
| `/companion` | 陪伴 | 节气/心情 |
|
||||
| `/mine` | 我的 | 资产总览 |
|
||||
| `/profile` | 个人档案 | 创建/编辑/切换 Self·Other |
|
||||
| `/portrait` | 个人画像 | 性格探索结果 |
|
||||
| `/relation` | 关系理解 | 双人分析 |
|
||||
| `/membership` | 成长会员 | 套餐与权益 |
|
||||
| `/scales/:slug` | 探索测试作答 | |
|
||||
| `/reports/:id` | 成长报告详情 | |
|
||||
|
||||
**[No]** 出生地理风水必填、吉凶标签画像。
|
||||
兼容重定向:`/decode` → `/portrait`(仅技术兼容,UI 不出现 decode 文案)。
|
||||
|
||||
---
|
||||
|
||||
### 2. Self Discovery(获客工具层)
|
||||
## 护城河(愈心谷)
|
||||
|
||||
| 二级 | 三级 | 范围 |
|
||||
|---|---|---|
|
||||
| 2.1 Decode | 数字性格 + 体质倾向;简版结论 / 完整原因+方案 | **[MVP] 核心** |
|
||||
| 2.2 Scale 性格 | MBTI 等热门量表 · 结果页 · 分享 | [MVP] ≥1 热门 |
|
||||
| 2.3 Scale 情感/心理 | 恋爱人格、情绪压力等 | [V1] |
|
||||
| 2.4 趣味 Scale | 轻传播向 | [V1] 克制 |
|
||||
| 2.5 五行/八卦轻解读 | 挂在 Decode 或探索,非运势主叙事 | [V1] |
|
||||
| 2.6 中医体质系统 | 体质倾向 · 生活建议 · 节气联动 | [MVP] 在 Decode 内;深化 [V1] |
|
||||
|
||||
**[No]** 塔罗默认入口、紫微/抽签主路径、今日运势主 Feed。
|
||||
**[Later]** 易经决策系统(合规评审后)。
|
||||
|
||||
---
|
||||
|
||||
### 3. Relationship
|
||||
|
||||
| 二级 | 三级 | 范围 |
|
||||
|---|---|---|
|
||||
| 3.1 Match | 双人契合分预览 · 解读锁定 | [MVP] |
|
||||
| 3.2 相处建议 | 基于性格×体质,非合婚吉凶 | [MVP] 简版;[V1] 完整 |
|
||||
| 3.3 关系管理 | 重要日期、关系笔记 | [Later] |
|
||||
|
||||
**[No]** 八字合婚吉凶、缘分指数恐吓文案。
|
||||
|
||||
---
|
||||
|
||||
### 4. AI Companion(问 = AI Life Assistant)
|
||||
|
||||
| 二级 | 三级 | 范围 |
|
||||
|---|---|---|
|
||||
| 4.1 Ask 对话 | 性格 / 关系 / 养生路径引导;非运势默认 | [MVP] 规则模板或薄 LLM |
|
||||
| 4.2 上下文 | 当前 Profile(Self/Other)挂载 | **[MVP]** |
|
||||
| 4.3 视角切换 | Ask 顶栏显式切换档案 | [MVP] |
|
||||
| 4.4 结构化回答 | 短答 · 要点 · 免责声明 | [MVP] |
|
||||
| 4.5 长期记忆 | 跨会话情绪/事件记忆 | [V1+] |
|
||||
| 4.6 报告生成 | 从 Ask/Decode 生成可 Unlock Report | [V1] |
|
||||
| 4.7 双轨入口 | Ask ‖ Consult 占位切换 | [MVP] 占位;履约 [Later] |
|
||||
|
||||
**[No]** 多智能体并列品牌(灵犀/小智式)、算命引导语、AI 心情小镇级 3D。
|
||||
|
||||
人格模式(产品语义,非多 App):陪伴模式 / 解读模式 — [V1]。
|
||||
|
||||
---
|
||||
|
||||
### 5. Companion Rhythm(陪伴 Tab)
|
||||
|
||||
| 二级 | 三级 | 范围 |
|
||||
|---|---|---|
|
||||
| 5.1 SolarTerm | 今日节气 · 生活方式建议 | [MVP] 可静态 |
|
||||
| 5.2 Mood | 打卡 · 简史 | [MVP] 最小写 |
|
||||
| 5.3 情绪分析/练习 | 安抚话术、放松练习 | [V1] |
|
||||
| 5.4 成长计划 | 目标 · 打卡 · 成长报告 | [Later] |
|
||||
|
||||
**[No]** 运势日历作为陪伴主轴。
|
||||
|
||||
---
|
||||
|
||||
### 6. Human Expert(Consult)
|
||||
|
||||
| 二级 | 三级 | 范围 |
|
||||
|---|---|---|
|
||||
| 6.1 顾问类型 | 养生顾问 / 关系顾问(合规资质) | [Later] |
|
||||
| 6.2 流程 | 列表 · 预约 · 支付 · 会话 · 评价 | [Later] |
|
||||
| 6.3 Marketplace | 达人入驻 · 分佣 | [Later] 非冷启动优先 |
|
||||
|
||||
**[MVP]** 仅「顾问预约」表单占位,不履约。
|
||||
|
||||
---
|
||||
|
||||
### 7. Content & Feed
|
||||
|
||||
| 二级 | 三级 | 范围 |
|
||||
|---|---|---|
|
||||
| 7.1 首页 Feed | 官方卡片:热门 Scale、Decode、节气 | [MVP] 运营配置/静态 |
|
||||
| 7.2 文章 | 性格 / 关系 / 养生知识 | [V1] |
|
||||
| 7.3 社区 UGC | 发帖赞评关注 | **[No] MVP**;[Later] 审慎 |
|
||||
| 7.4 AI 玩法广场 | UGC Prompt 集市 | **[No] MVP**;[Later] |
|
||||
|
||||
---
|
||||
|
||||
### 8. Growth
|
||||
|
||||
| 二级 | 三级 | 范围 |
|
||||
|---|---|---|
|
||||
| 8.1 分享卡 | Decode / ScaleResult / Match 预览 | [MVP] |
|
||||
| 8.2 裂变 | 分享 → 建档 → 再测 | [V1] |
|
||||
| 8.3 激励 | 签到积分勋章 | [Later] |
|
||||
| 8.4 SEO/内容获客 | Web 落地 | [Later] website |
|
||||
|
||||
**[No]** 干扰广告、虚假紧迫倒计时。
|
||||
|
||||
---
|
||||
|
||||
### 9. Commerce
|
||||
|
||||
| 二级 | 三级 | 范围 |
|
||||
|---|---|---|
|
||||
| 9.1 Subscription | 月/季/年 | [MVP] mock 支付 |
|
||||
| 9.2 Membership 权益 | 完整 Decode、Ask 次数、深度节气等 | [MVP] |
|
||||
| 9.3 Unlock | 单次报告 / Match 解读 | [MVP] |
|
||||
| 9.4 Order / Payment | 下单 · pay-mock ·(真支付) | [MVP] mock;真支付 [V1] |
|
||||
| 9.5 课程/商城 | — | [Later] / 低优 |
|
||||
|
||||
---
|
||||
|
||||
### 10. Data & Recommendation(平台)
|
||||
|
||||
| 二级 | 三级 | 范围 |
|
||||
|---|---|---|
|
||||
| 10.1 用户数据 | 行为 · Mood · Scale · Ask(最小化、可删) | [MVP] 基础 |
|
||||
| 10.2 推荐 | Feed / Scale 推荐 | [V1] 规则即可 |
|
||||
| 10.3 专家/商品推荐 | — | [Later] |
|
||||
|
||||
---
|
||||
|
||||
## L2 — 页面 / 路由映射(user-h5)
|
||||
|
||||
| L0 | 路由建议 | 主要能力 |
|
||||
|---|---|---|
|
||||
| 首页 | `/` | Decode 入口、Feed |
|
||||
| 探索 | `/explore` | Scale 列表、工具 |
|
||||
| 问 | `/ask` | Ask + Consult 占位 |
|
||||
| 陪伴 | `/companion` | SolarTerm、Mood |
|
||||
| 我的 | `/mine` | Profiles、Membership、Orders |
|
||||
| 二级 | `/decode` `/scales/:slug` `/match` `/report/:id` | Discovery / Relationship / Commerce |
|
||||
|
||||
实现约束:`.ai/design/*` · playbook `new-page` / `add-api`。
|
||||
|
||||
---
|
||||
|
||||
## 护城河优先级(愈心谷)
|
||||
|
||||
| 梯队 | 能力 | 说明 |
|
||||
|---|---|---|
|
||||
| ★★★★★ | 生命档案 Profile · Ask 挂档案 · Relationship Match · Decode(性格×体质) | Memory + 差异化叙事 |
|
||||
| ★★★★ | Scale · SolarTerm/Mood · Membership/Unlock | 获客与留存与变现 |
|
||||
| ★★ | Feed 运营 · 分享裂变 | 增长 |
|
||||
| ★ / No | UGC 广场 · 达人市场 · 硬件 · 塔罗主路径 | 明确后置或不做 |
|
||||
|
||||
---
|
||||
|
||||
## 竖切顺序(与 roadmap 对齐)
|
||||
|
||||
1. **Phase A** — Identity + Decode + Commerce mock
|
||||
2. **Phase B** — Scale + Match + Share
|
||||
3. **Phase C** — Ask 骨架 + Companion
|
||||
4. **Phase D** — 真支付 · 小程序 · Consult 试点
|
||||
|
||||
详见 `apps/docs/product-roadmap.md`。
|
||||
| 梯队 | 能力 |
|
||||
|---|---|
|
||||
| ★★★★★ | 个人档案 · 问答挂档案 · 关系理解 · 个人画像(性格×身心) |
|
||||
| ★★★★ | 人格测评 · 会员/深度版 · 陪伴节奏 |
|
||||
| ★★ | 推荐 Feed · 分享裂变 |
|
||||
| 后置/不做 | UGC 玩法广场 · 达人市场冷启动 · 塔罗主路径 · 运势主 Feed |
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
# 愈心谷产品语言契约(Mandatory)
|
||||
|
||||
所有 PRD、UI 文案、运营文案、Ask 引导语、错误提示必须遵守。
|
||||
竞品分析(`cece-feature-map.md`)可保留竞品原名;**用户可见文本不得出现禁用词。**
|
||||
|
||||
---
|
||||
|
||||
## Product Lexicon Rules
|
||||
|
||||
1. **所有用户可见文本必须来自本文件的推荐词或「核心命名」表。**
|
||||
2. AI 生成文案前必须先读本文件;不得按公开竞品习惯自动套词。
|
||||
3. 数据库注释、OpenAPI `summary`/`description`(对外)、H5/小程序文案同规则。
|
||||
4. 代码标识符用英文域词(见下表);中文 UI 用「用户名」列。
|
||||
5. 不确定时:**ASK**,不要发明近义词(如「开运」「解盘」)。
|
||||
|
||||
### 禁止(含近义)
|
||||
|
||||
- 运势 / 今日运势 / 开运
|
||||
- 吉凶 / 祸福 / 命中注定
|
||||
- 预测未来 / 预知 / 改命
|
||||
- 算命 / 解盘 / 合婚(恐吓或宿命叙事)
|
||||
- 命盘(作核心产品名)/ 合盘 / 缘分合盘
|
||||
- 解码 / 愈心解码(产品主文案)
|
||||
- 解锁(付费墙主按钮文案;技术日志可用 deep_access)
|
||||
- 治疗 / 改善疾病 / 疗效承诺
|
||||
- 塔罗(主路径入口)
|
||||
- 以「测测」自称或对用户说「像某某 App」
|
||||
|
||||
### 推荐
|
||||
|
||||
- 了解 · 探索 · 分析 · 建议
|
||||
- 关系理解 · 成长方向 · 成长报告 · 深度版
|
||||
- 个人档案 · 个人画像 · 探索测试 · 探索结果
|
||||
- AI 成长助手 · 心情记录 · 成长记录 · 成长会员
|
||||
- 生活建议 / 今日建议(替代运势)
|
||||
|
||||
---
|
||||
|
||||
## 定位一句话
|
||||
|
||||
愈心谷 = 通过数字性格、身心特征、关系理解与 AI 陪伴,帮助用户更好地认识自己、理解他人的个人成长平台。
|
||||
|
||||
---
|
||||
|
||||
## 技术名 → 用户名(冻结)
|
||||
|
||||
| 技术名 | 用户名 | 说明 |
|
||||
|---|---|---|
|
||||
| Profile | 个人档案 | Self / Other |
|
||||
| Portrait | 个人画像 | 性格探索产出的成长画像 |
|
||||
| Scale | 探索测试 | 含 MBTI 类等 |
|
||||
| ScaleResult / Result | 探索结果 | 测评产出 |
|
||||
| GrowthReport / Report | 成长报告 | 可含基础版/深度版字段 |
|
||||
| RelationInsight | 关系理解 | 双人差异与相处建议 |
|
||||
| Ask | AI成长助手 | Tab 文案可用「问答」 |
|
||||
| Memory | 成长记录 | P2/P3 跨会话沉淀 |
|
||||
| Mood | 心情记录 | |
|
||||
| SolarTerm | 节气生活 | |
|
||||
| Membership | 成长会员 | |
|
||||
| DeepAccess | 深度版 | 单次完整分析 |
|
||||
| Constitution | 身心探索 | 体质倾向等,非医疗 |
|
||||
|
||||
**Deprecated code aliases(勿用于新 UI):** Decode→Portrait · Match→RelationInsight · Unlock→DeepAccess
|
||||
|
||||
---
|
||||
|
||||
## 禁用 → 使用(速查)
|
||||
|
||||
| 不使用 | 使用 |
|
||||
|---|---|
|
||||
| 解码 | 性格探索 / 个人画像 |
|
||||
| 测算 | 分析 |
|
||||
| 测试结果(主文案) | 探索结果 |
|
||||
| 运势 | 生活建议 / 今日建议 |
|
||||
| 命盘 / 星盘档案(核心) | 个人画像 |
|
||||
| 合盘 | 关系理解 |
|
||||
| 解锁(主按钮) | 查看深度版 / 完整分析 |
|
||||
| 算命 | 自我探索 |
|
||||
| 预测未来 | 了解趋势 / 认识模式 |
|
||||
| 改命 | 成长改善 |
|
||||
| 会员(若需品牌感) | 成长会员(权益页标题优先) |
|
||||
|
||||
星盘:探索内可选维度,禁止作家园主标题/品牌 slogan。
|
||||
|
||||
---
|
||||
|
||||
## Ask 人设
|
||||
|
||||
- 是:了解你的智能伙伴
|
||||
- 不是:占卜、预测、算命
|
||||
|
||||
场景:认识自己 · 理解关系 · 职业探索 · 情绪整理 · 生活建议
|
||||
|
||||
---
|
||||
|
||||
## 付费墙话术
|
||||
|
||||
- 免费:基础画像 / 基础探索结果
|
||||
- 付费:完整分析 · 行为模式 · 关系建议 · 成长方向 → **深度版**
|
||||
- 订阅标题:**成长会员**
|
||||
- 禁止:虚假倒计时、恐吓、道德绑架
|
||||
@@ -0,0 +1,41 @@
|
||||
# H5 页面树(冻结)
|
||||
|
||||
App: `apps/user-h5`
|
||||
IA Tab 冻结:首页 · 探索 · 问答 · 陪伴 · 我的
|
||||
旅程:[user-journey.md](user-journey.md)
|
||||
|
||||
---
|
||||
|
||||
## Tree
|
||||
|
||||
```
|
||||
/ HomePage 发现入口 · 建档/探索 CTA
|
||||
/explore ExplorePage 探索测试 · 入口聚合
|
||||
/ask AskPage AI成长助手
|
||||
/companion CompanionPage 节气生活 · 心情记录
|
||||
/mine MinePage 资产总览 → profile/reports/membership
|
||||
/profile ProfilePage 个人档案管理
|
||||
/portrait PortraitPage 个人画像(基础/深度版)
|
||||
/relation RelationPage 关系理解
|
||||
/membership MembershipPage 成长会员
|
||||
/scales/:slug ScalePage 探索测试作答(P1 建)
|
||||
/reports/:id ReportPage 成长报告详情(P1 建)
|
||||
```
|
||||
|
||||
Redirect only: `/decode` → `/portrait`
|
||||
|
||||
---
|
||||
|
||||
## Tab ↔ 非 Tab
|
||||
|
||||
| Tab 内 | 二级(无底栏或隐藏底栏) |
|
||||
|---|---|
|
||||
| `/` `/explore` `/ask` `/companion` `/mine` | `/profile` `/portrait` `/relation` `/membership` `/scales/*` `/reports/*` |
|
||||
|
||||
---
|
||||
|
||||
## 组件优先(catalog)
|
||||
|
||||
HomeWash · Portrait 表单 · ReportCard · PaywallLock · DeepAccessCard · SubscriptionCard · ChatThread · ShareCard · ProfileSwitcher
|
||||
|
||||
文案:lexicon。Journey CTA:每页标明上/下一步。
|
||||
@@ -0,0 +1,80 @@
|
||||
# User Journey — 愈心谷(冻结给 AI 写页用)
|
||||
|
||||
页面不是孤立的;必须服务下列转化路径之一。
|
||||
语言:[lexicon.md](lexicon.md) · 能力:[feature-map.md](feature-map.md)
|
||||
|
||||
---
|
||||
|
||||
## New User Journey(P1 主漏斗)
|
||||
|
||||
```
|
||||
Entry: 首页(分享卡 / 自然访问)
|
||||
→ Step 1 创建个人档案(生日等)
|
||||
→ Step 2 完成性格探索 / 探索测试
|
||||
→ Step 3 查看个人画像(基础结果免费)
|
||||
→ Step 4 邀请 TA · 建立关系 · 关系理解
|
||||
→ Step 5 AI成长助手(问答)持续使用
|
||||
→ Step 6 深度版 和/或 成长会员
|
||||
```
|
||||
|
||||
| Step | 路由 | 成功标准 |
|
||||
|---|---|---|
|
||||
| Entry | `/` | 看到品牌 + 建档/探索入口 |
|
||||
| 1 | `/profile`(创建)或首页表单 | Self Profile 落库 |
|
||||
| 2–3 | `/portrait` · `/explore` · `/scales/:slug` | 基础画像或探索结果可见 |
|
||||
| 4 | `/relation` | Other Profile + 关系理解概览 |
|
||||
| 5 | `/ask` | 挂档案上下文的一轮有效问答 |
|
||||
| 6 | `/membership` · 报告内深度版 CTA | mock/真支付成功后权益生效 |
|
||||
|
||||
---
|
||||
|
||||
## 双增长引擎(P1 均不可弱化)
|
||||
|
||||
### A. 我是谁 — Portrait
|
||||
|
||||
分享卡示例字段:我的关键词 · 沟通/行为标签 · 引导「查看完整成长报告」
|
||||
|
||||
### B. 我和 TA — RelationInsight(传播主力)
|
||||
|
||||
分享卡示例(文案须过 lexicon):
|
||||
|
||||
```
|
||||
我的沟通方式:理性型
|
||||
TA 的沟通方式:感受型
|
||||
了解彼此 → 查看关系理解
|
||||
```
|
||||
|
||||
比单独探索测试结果更易裂变;P1 必须上线概览分/标签 + 深度建议付费墙。
|
||||
|
||||
---
|
||||
|
||||
## Returning User Journey
|
||||
|
||||
```
|
||||
打开 App → 陪伴(节气/心情,P2 加深)或 问答
|
||||
→ 我的:成长报告 / 成长会员 / 个人档案
|
||||
→ 可选:再测 / 再加关系对象
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Paywall Journey
|
||||
|
||||
```
|
||||
基础结果页
|
||||
→ CTA「查看深度版」或「开通成长会员」
|
||||
→ /membership 或订单确认
|
||||
→ pay-mock / 支付
|
||||
→ 回到成长报告完整态(服务端裁剪解除)
|
||||
```
|
||||
|
||||
禁止:恐吓、宿命、倒计时话术。
|
||||
|
||||
---
|
||||
|
||||
## AI 写页检查
|
||||
|
||||
- [ ] 本页落在哪条 Journey Step?
|
||||
- [ ] 上一步 / 下一步 CTA 是否存在?
|
||||
- [ ] 文案是否 100% 符合 lexicon?
|
||||
- [ ] 关系理解是否被当成二等公民删掉?
|
||||
@@ -1,64 +1,39 @@
|
||||
# UI — Product chrome + pointer to Design Contract
|
||||
# UI — Product chrome
|
||||
|
||||
**Visual / component rules:** `.ai/design/design-system.md` (mandatory before UI work).
|
||||
**Catalog:** `.ai/design/component-catalog.md`
|
||||
**Platform:** `.ai/design/platform/h5.md` (default) · `mini-program.md` · `website.md` · `flutter.md`
|
||||
**语言:** `.ai/product/lexicon.md`(强制)
|
||||
**视觉:** `.ai/design/design-system.md` + `component-catalog.md`
|
||||
**平台:** `.ai/design/platform/h5.md`(默认)
|
||||
**IA:** `.ai/product/feature-map.md`
|
||||
|
||||
---
|
||||
|
||||
## Brand (summary)
|
||||
## Tabs
|
||||
|
||||
- Primary `#E54D42` → `--color-primary` / `--yxg-pri`
|
||||
- Atmosphere: peach wash → white sheet
|
||||
- Mobile-first; user column ~430px
|
||||
- Unicode symbols over emoji in chrome
|
||||
首页 / 探索 / **问答** / 陪伴 / 我的
|
||||
|
||||
问答为战略中心 Tab(视觉可突出)。
|
||||
|
||||
---
|
||||
|
||||
## H5 structure
|
||||
## Brand summary
|
||||
|
||||
```
|
||||
apps/user-h5/src/
|
||||
pages/
|
||||
components/
|
||||
layouts/
|
||||
hooks/
|
||||
api/
|
||||
stores/
|
||||
router/
|
||||
assets/
|
||||
```
|
||||
|
||||
No raw `fetch` in `pages/`. Tokens from `packages/ui`.
|
||||
|
||||
---
|
||||
|
||||
## Tabs (product IA)
|
||||
|
||||
Home / Explore / **Ask** / Companion / Mine.
|
||||
Ask is the strategic center tab.
|
||||
- Primary `#E54D42`;桃色 wash → 白 sheet
|
||||
- 移动优先 ~430px
|
||||
- Unicode 符号优先于 emoji
|
||||
|
||||
---
|
||||
|
||||
## Copy / compliance
|
||||
|
||||
- No medical cure claims
|
||||
- No 吉凶祸福
|
||||
- Report screens include disclaimer
|
||||
- Brand voice: see design-system §13
|
||||
- 用:探索结果、个人画像、关系理解、深度版、生活建议、成长报告
|
||||
- 不用:解码、运势、合盘、解锁(主文案)、算命、吉凶、治疗承诺
|
||||
- 成长报告页脚免责声明
|
||||
|
||||
---
|
||||
|
||||
## Interaction
|
||||
## H5 structure
|
||||
|
||||
- One job per section
|
||||
- Home first viewport: brand, decode entry, then content sheet
|
||||
- Loading / empty / error required for network views
|
||||
`apps/user-h5/src/{pages,components,layouts,hooks,api,stores,router}`
|
||||
无 raw `fetch`;tokens 来自 `packages/ui`。
|
||||
|
||||
---
|
||||
|
||||
## Mini program
|
||||
|
||||
- Own `components/`; share tokens from `packages/ui`, not Vue SFCs
|
||||
- Pages → `services/*` only
|
||||
- See `design/platform/mini-program.md`
|
||||
首页首屏:品牌 · 建档/性格探索入口 · 再内容,勿堆仪表盘。
|
||||
|
||||
Reference in New Issue
Block a user