Files
digital-psychology/.ai/product/feature-spec/image-card.md
T
jackyu66gitandCursor 5ceb3ce749
ci / h5 (push) Canceled after 0s
ci / api (push) Canceled after 0s
ci / ess-docs (push) Canceled after 0s
feat(ECR-010): Ops-E 系统运营;修复登出解绑;P2 Complete
落地管理员 RBAC/封禁/推送任务 stub,logout 解绑 device 并统一各页 ensureAccount,同时收口 P2 生日生成与状态文档。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 18:54:59 +08:00

187 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Feature Spec: 意象卡片
> Status: `Active` · Map: `2.8 意象卡片 [P2]` · Phase: `P2 Complete`
> 规范:[../feature-design.md](../feature-design.md) · 队列:[P2-BACKLOG.md](P2-BACKLOG.md)
> 竞品对照:塔罗体系(能力同构;**UI 禁止「塔罗」入口名**)
---
## 1. 功能定义
| 字段 | 内容 |
|---|---|
| Name | 意象卡片 |
| Purpose | 通过抽取 1~3 张意象卡,对当下议题做投射反思,并给出结构化反思题与行动建议 |
| Business Goal | 高趣味探索与分享;免费次数 + 深度解读转化 |
| In | Out |
|---|---|
| 场景选题 · 抽卡 · 探索摘要 · 深度组合解读 | 吉凶判定、神谕、恐吓 |
| 卡面内容库(seed) | UI 文案「塔罗」「牌阵占卜」 |
| 每日免费次数规则 | 宿命叙事 |
---
## 2. 用户价值
1. **为何需要:** 卡住时需要一个轻量的外在意象帮助整理感受。
2. **完成后获得:** 卡片意象说明、反思问题、可执行小建议;深度版含组合解读与练习。
3. **为何付费:** 多卡组合与完整练习路径。
---
## 3. 用户角色
| Actor | 能力 |
|---|---|
| Visitor | 每日免费 N 次基础抽卡(N 实现时定数,建议 1~3) |
| DeepAccess(本结果)/ VIP | 深度组合解读 |
| 可选挂档案 | 有档案时文案可轻微个性化(非必须) |
---
## 4. 用户流程
```text
/cards
选择场景:情绪整理 / 关系 / 选择 / 自我
检查今日免费次数
├─ 耗尽 → 引导会员或明日再来(可看历史)
└─ 有余 → 抽 1 张(免费)或解锁 3 张组合(深度)
展示意象 + 反思题 + 建议
分享(积极、非恐吓视觉)
```
---
## 5. 页面设计
| 路由 | 页面 |
|---|---|
| `/cards` | ImageCardPageP2 draft |
| `/explore` | 入口「意象卡片」 |
| `/reports/:id` 或结果页内 | 深度结果沉淀(可选) |
```text
/cards
├── Scene picker
├── Loading(抽卡动画,克制)
├── Normal(单卡摘要)
├── Locked(组合深度)
├── Quota empty
└── Error
```
---
## 6. 页面状态规范
| 状态 | UI |
|---|---|
| Loading | 抽卡中 |
| Normal | 意象说明 + 反思 |
| Locked | 组合解读墙 |
| Quota empty | 次数用尽说明 + 会员 CTA |
| Error | 重试 |
---
## 7. Business Rules
| ID | Rule |
|---|---|
| R1 | 用户可见文案**不得**出现「塔罗」;用「意象卡片」「探索」「反思」 |
| R2 | **禁止**吉凶、神谕式断言、恐吓(如「大难」) |
| R3 | 输出必须含:意象描述 · 至少 1 个反思问题 · 1 条可执行建议 |
| R4 | 免费:每日有限次单卡摘要;深度:3 卡组合 + 练习(Membership 或单次 DeepAccess |
| R5 | 抽卡随机可接受,但卡面文案来自审核过的内容库(非模型现场胡编吉凶) |
| R6 | 分享卡不得含恐吓图文;过 lexicon |
| R7 | 次数与权益 **Server** 判定 |
---
## 8. 数据模型影响
| 项 | 说明 |
|---|---|
| 内容库 | `image_cards` 表或 seed JSONid, title, image_key, explore_text, prompts[] |
| 结果 | `growth_reports.type=image_card` **或** `scale_results` 变体(实现时二选一,写 OpenAPI) |
| 配额 | 用户日维度计数(表或 Redis);实现时定 |
禁止:`tarot_*` 作用户可见 API 路径名(对内包名用 `imagecard`)。
---
## 9. API 需求(草案)
| Method | Path | 意图 |
|---|---|---|
| GET | `/api/v1/image-cards/scenes` | 场景列表 |
| POST | `/api/v1/image-cards/draw` | scene → 抽卡结果(扣免费次) |
| GET | `/api/v1/image-cards/quota` | 今日剩余 |
| GET | `/api/v1/reports/{id}` | 若沉淀为报告 |
深度组合可同 draw 参数 `depth=true` + 权益校验。
---
## 10. 权限设计
| 能力 | 免费额度内 | 额度外 | 深度权益 |
|---|---|---|---|
| 单卡摘要 | ✓ | ✗ | ✓ |
| 三卡组合解读 | ✗ | ✗ | ✓ |
---
## 11. 埋点
| Event | 触发 |
|---|---|
| `cards_scene_selected` | 选场景 |
| `cards_drawn` | 抽卡成功 |
| `cards_quota_exhausted` | 次数用尽 |
| `deep_access_clicked` | surface=cards |
| `cards_share_clicked` | 分享 |
---
## 12. 测试验收标准
**Given** 有免费次数
**When** 抽卡
**Then** 返回意象+反思题+建议;响应与 UI 无「塔罗」「吉凶」
**Given** 次数为 0
**When** 再抽
**Then** 业务错误,不生成假深度
**Given** 无深度权益
**When** 请求组合解读
**Then** Locked / 剥离
---
## 13. AI 开发前检查
- [x] Spec 齐全 · 禁用塔罗入口已写清
- [x] lexicon ImageCard
- [x] 内容库 seed 与 OpenAPI(编码时)
---
## 14. Implementation Notes
| 项 | 内容 |
|---|---|
| 复用 | ShareSheet · membership/orders · Explore 入口 |
| 工作量 | 卡面文案/视觉资产最大;宜先 22~78 张小库 MVP |
| Packages | `internal/imagecard` · `ImageCardPage` `/cards` |
| 实现 | scenes/quota/draw API · 报告 type=`image_card` · 日配额 · ≥78 牌(手写底稿+确定性扩容)· ≥8 场景 |
| Gaps | 全手写美术资产;推送 |
| Label | Feature CompleteP2 |