feat(ECR-012–016): 合规、题库、时辰刷新、头像、MBTI OEJTS 与埋点
落地输入合规、探索题库、报告日/时辰刷新、账号头像、OEJTS 量表,并补齐 H5 埋点与 Admin 漏斗;同步 ESS 工件、切至自建 Git、清理 GitHub Actions。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -45,9 +45,9 @@
|
||||
↓
|
||||
进入 /scales/:slug
|
||||
↓
|
||||
加载题目
|
||||
↓
|
||||
逐题作答(须全部完成)
|
||||
已有结果? → 直接展示最近结果 +「重新测试」
|
||||
↓(无结果 / 点重测)
|
||||
加载题目 · 逐题作答(须全部完成)
|
||||
↓
|
||||
无 Self? → 引导建档
|
||||
↓
|
||||
@@ -60,10 +60,13 @@ POST result → 展示丰富结果
|
||||
|
||||
| 子能力 | P1 |
|
||||
|---|---|
|
||||
| 测试入口(探索 Tab) | ✓ |
|
||||
| 测试列表 | ✓ |
|
||||
| 测试入口(探索 Tab · 首页宫格) | ✓ · 产品向 `mbti-lite`;探索主路径为 curated 题库(A 集) |
|
||||
| 测试列表 | ✓ · 探索「题库精选」宫格(每类 1~2)+「题库分类」;分类页 `/explore/bank/:key` |
|
||||
| 题库范围(A) | ✓ 人格 / 情绪能力 / 智能 / 生活与关系;**不含**抑郁焦虑强迫躁狂双相等临床筛查 |
|
||||
| 问题流程 | ✓ |
|
||||
| 答题保存(服务端结果落库) | ✓ |
|
||||
| 最近结果回看 | ✓ GET `/scales/{slug}/result`;有结果进页不重复作答 |
|
||||
| 重新测试 | ✓ 结果页按钮 → 清空草稿再答;新结果落库并覆盖展示 |
|
||||
| 中断恢复 | ✓ localStorage 草稿(`scaleDraft`);提交后清除 |
|
||||
| 结果生成(丰富结构) | ✓ |
|
||||
| 免费层 | ✓ 全量 result |
|
||||
@@ -79,8 +82,10 @@ POST result → 展示丰富结果
|
||||
|
||||
| 路由 | 页面 |
|
||||
|---|---|
|
||||
| `/explore` | ExplorePage |
|
||||
| `/scales/:slug` | ScalePage |
|
||||
| `/explore` | ExplorePage(题库精选宫格 + 题库分类 + 其它工具) |
|
||||
| `/explore/bank/:category` | ExploreBankCategoryPage · curated 题库分类列表 |
|
||||
| `/explore/:category` | ExploreCategoryPage · 产品工具分类(解码/星座等) |
|
||||
| `/scales/:slug` | ScalePage(含 bank slug) |
|
||||
|
||||
```text
|
||||
/scales/:slug
|
||||
@@ -116,6 +121,13 @@ POST result → 展示丰富结果
|
||||
| R5 | result 含 label/summary/overview/dimensions/tips/scripts/growth_plan/faq |
|
||||
| R6 | 结果「不是固定标签」需在文案中提示 |
|
||||
| R7 | 作答过程写入本地草稿(按 slug);提交成功后清除;刷新可恢复未提交答案 |
|
||||
| R8 | 同一用户同一 slug(含 curated 题库 slug)若已有 `scale_results`,再次进入直接展示**最近一次**结果,并提供「重新测试」;未点重测不得自动进入答题 |
|
||||
| R9 | `mbti-lite` 产品展示名统一为「MBTI测试」(首页宫格 / 探索入口 / 量表 title) |
|
||||
| R10 | **标准版 `mbti-lite`**:开源 OEJTS 1.2 · **32 题**(四维各 8)· 双极 1–5 Likert;按维累加,阈值判出 E/I·S/N·T/F·J/P 一侧,合成四字母类型;**免费** |
|
||||
| R11 | **完整版 `mbti-full`**:60 题(四维各 15)· 须**成长会员**;未开通时 GET 返回 `locked=true` 且无题目;提交返回 403 |
|
||||
| R12 | 禁止使用官方 MBTI® 版权题干;结果须提示「不是固定标签」;题库重大更新须 soft-delete 旧 `scale_results` |
|
||||
| R13 | curated 题库(`scalebank`)仅含 A 集非临床探索量表;文案须声明「非诊断」;临床类(抑郁/焦虑/强迫等)不得进入 C 端 |
|
||||
| R14 | curated 题库作答走同一 `/scales/:slug`;完成后再次点击入口须遵守 R8(只看结果或显式重测),不得每次从头作答 |
|
||||
|
||||
---
|
||||
|
||||
@@ -134,6 +146,7 @@ POST result → 展示丰富结果
|
||||
|---|---|---|
|
||||
| GET | `/api/v1/scales` | 列表 |
|
||||
| GET | `/api/v1/scales/{slug}` | 题目 |
|
||||
| GET | `/api/v1/scales/{slug}/result` | 当前用户该量表最近一次结果;无则 404 |
|
||||
| POST | `/api/v1/scales/{slug}/result` | 提交计分 |
|
||||
|
||||
---
|
||||
@@ -144,18 +157,27 @@ POST result → 展示丰富结果
|
||||
|---|---|---|
|
||||
| 看列表/题目 | ✓ | ✓ |
|
||||
| 提交结果 | ✗ | ✓ |
|
||||
| `mbti-full` 作答 | ✗(须成长会员) | ✓(会员 active) |
|
||||
|
||||
---
|
||||
|
||||
## 11. 埋点
|
||||
|
||||
| Event | 触发 |
|
||||
|---|---|
|
||||
| `scale_list_viewed` | 探索列表 |
|
||||
| `scale_started` | 进入作答 |
|
||||
| `scale_completed` | 出结果 |
|
||||
| `scale_share_clicked` | 分享 |
|
||||
| `scale_cta_relation` / `scale_cta_ask` | 导流 |
|
||||
经统一 `track()`;非 P1 核心 5 事件。禁止参数含题干全文、答案明文、档案 ID。
|
||||
|
||||
| Event | 触发 | 可选 params |
|
||||
|---|---|---|
|
||||
| `scale_list_viewed` | 打开 `/explore` 且题库 catalog 加载成功 | — |
|
||||
| `scale_bank_category_viewed` | 打开 `/explore/bank/:category` 且分类加载成功 | `category`(key) |
|
||||
| `scale_started` | 用户点开始进入作答(含「重新测试」后再开始) | `slug` · `access`: free\|member |
|
||||
| `scale_completed` | 提交计分成功并展示结果 | `slug` · `access`: free\|member |
|
||||
| `scale_result_reopened` | 再次进入已有结果直接展示(R8,未重测) | `slug` |
|
||||
| `scale_retake_clicked` | 点「重新测试」 | `slug` |
|
||||
| `scale_locked_viewed` | 会员锁页展示(如 mbti-full) | `slug` |
|
||||
| `scale_share_clicked` | 结果页打开分享 | `slug` |
|
||||
| `scale_cta_relation` / `scale_cta_ask` | 结果导流(若 UI 有) | `slug` |
|
||||
|
||||
`page_view` 对 `/explore` · `/explore/bank/*` · `/scales/*` 由路由自动采集。
|
||||
|
||||
---
|
||||
|
||||
@@ -165,6 +187,14 @@ POST result → 展示丰富结果
|
||||
**When** 答完提交
|
||||
**Then** 返回 label 与 overview/tips 等丰富字段
|
||||
|
||||
**Given** 已提交过结果
|
||||
**When** 再次进入 `/scales/{slug}`
|
||||
**Then** 直接展示最近结果与「重新测试」;不进入答题
|
||||
|
||||
**Given** 结果页点「重新测试」并完成提交
|
||||
**When** 再次进入
|
||||
**Then** 展示新结果
|
||||
|
||||
**Given** 未答完
|
||||
**When** 提交
|
||||
**Then** 前端拦截;不成功落库
|
||||
@@ -186,7 +216,8 @@ POST result → 展示丰富结果
|
||||
| 项 | 内容 |
|
||||
|---|---|
|
||||
| Packages | `internal/scale` · `service/scale` · `ExplorePage` · `ScalePage` |
|
||||
| Seeds | communication-style · emotion-pattern |
|
||||
| Seeds | communication-style · emotion-pattern · **mbti-lite(OEJTS 32)** · **mbti-full(60·会员)** |
|
||||
| Gaps | 结果付费墙若要做须先改 Spec;全量 §11 埋点未挂(核心漏斗见 analytics) |
|
||||
| Tests | score/result L1;`scaleDraft.spec`;Scale 流程组件测 |
|
||||
| Process Review | 草稿恢复已实现 · P1 收口 |
|
||||
| Tests | score/result L1;`ScoreJungian`;`scaleDraft.spec`;Scale 流程组件测 |
|
||||
| Process Review | OEJTS 标准/完整双轨 · 最近结果回看 · P1 收口 |
|
||||
| Credit | OEJTS / Open Psychometrics · openjung MIT |
|
||||
|
||||
Reference in New Issue
Block a user