# Feature Spec: 分享卡 > Status: `Active` · Map: journey 双引擎 · Phase: `P1` > 规范:[../feature-design.md](../feature-design.md) --- ## 1. 功能定义 | 字段 | 内容 | |---|---| | Name | 分享卡 | | Purpose | 将画像/关系/测试结果变成可传播卡片,拉新进入主漏斗 | | Business Goal | 裂变;关系理解分享是传播主力 | | In | Out | |---|---| | 前端 ShareCard / ShareSheet;`/share` query 载荷落地 | 服务端短链中台(Gap) | | lexicon 安全文案 | 运势惊吓文案 | --- ## 2. 用户价值 1. **为何需要:** 想把「我和 TA 的差异」发给对方看。 2. **完成后获得:** 可复制链接或卡片视觉(以实现为准)。 3. **付费:** N/A;落地页引导完成建档/探索。 --- ## 3. 用户角色 | Actor | 能力 | |---|---| | 分享者 | 从结果页打开 ShareSheet | | 访客打开 `/share` | 看摘要 + CTA 进 App 主路径 | --- ## 4. 用户流程 ```text 画像/关系/测试结果 → 生成分享卡 ↓ 携带 query payload 打开 /share(或系统分享) ↓ 落地展示关键词/差异 → CTA 去首页/探索 ``` --- ## 5. 页面设计 | 路由 | 页面 | |---|---| | `/share` | SharePage | | 组件 | ShareCard · ShareSheet | --- ## 6. 页面状态规范 | 状态 | UI | |---|---| | Normal | 有效 payload 渲染卡片 | | Empty/Error | payload 无效 → 引导首页 | --- ## 7. Business Rules | ID | Rule | |---|---| | R1 | 分享文案必须过 lexicon(无运势/合盘/解码) | | R2 | 不在分享卡暴露 detail 付费长文 | | R3 | 关系分享强调「我的方式 vs TA」+ 查看关系理解 | | R4 | P1 payload 可以是前端 query;勿把密钥放入 URL | --- ## 8. 数据模型影响 无必须 schema;`Gap:` 服务端 share token 表未建。 --- ## 9. API 需求 P1 无专用分享 API(前端载荷)。若加短链:须新 Spec 修订 + OpenAPI。 --- ## 10. 权限设计 | 能力 | 任何人 | |---|---| | 打开落地页摘要 | ✓ | | 查看原报告 detail | 否(须登录所有者权益) | --- ## 11. 埋点 | Event | 触发 | |---|---| | `share_sheet_opened` | 打开面板 | | `share_link_copied` | 复制 | | `share_landing_viewed` | `/share` | | `share_landing_cta` | 点 CTA | --- ## 12. 测试验收标准 **Given** 画像结果 **When** 打开分享 **Then** 卡片含标题/关键词且无禁用词 **Given** 无效 query **When** 打开 `/share` **Then** 不白屏,引导首页 --- ## 13. AI 开发前检查 - [x] Spec 齐全 --- ## 14. Implementation Notes | 项 | 内容 | |---|---| | Packages | `ShareSheet` · `ShareCard` · `shareLink` · `SharePage` | | Gaps | 原生系统分享;短链服务(短链须先改 §8/§9) | | Tests | Share 相关组件/e2e | | Process Review | 2026-08-02 [P1-PROCESS-REVIEW](P1-PROCESS-REVIEW.md) · P1 设计闭合 · 实现 PASS · 测试 PARTIAL |