|
| 1 | +# 「首潜」新手引导系统 · 头脑风暴与系统设计 |
| 2 | + |
| 3 | +> **状态**: P1 已实现(2026-07-31,L0+L1+L4+双标签落地,遗留问题已裁决,见 §6);P2/P3 待排期 |
| 4 | +> **日期**: 2026-07-31 |
| 5 | +> **模块**: 跨模块系统(onboarding 重构 + 全局伴航层) |
| 6 | +> **来源**: 内测反馈"对新手不友好,不知道怎么使用软件" |
| 7 | +> **关联**: brand-story.md(水母人格/深海世界观)、sop-module-brainstorm.md(编排层) |
| 8 | +
|
| 9 | +--- |
| 10 | + |
| 11 | +## 0. 诊断:为什么"有引导"却"不会用" |
| 12 | + |
| 13 | +现状盘点确认项目**并不缺引导设施**:3D 空间 7 步引导、OnboardingPage 6 步、帮助中心(Ctrl+/,4 Tab)、模块首次进入 toast、FAQ×10。但内测用户仍说不会用,根因有五: |
| 14 | + |
| 15 | +| # | 根因 | 说明 | |
| 16 | +|---|---|---| |
| 17 | +| 1 | **教操作不教目的** | 引导讲 3D 导航/相机/快捷键,用户学会转镜头,仍不知道"第一步干什么" | |
| 18 | +| 2 | **双引导系统割裂** | OnboardingPage 与 OnboardingOverlay 两套流程、两个 localStorage key,疲劳且困惑 | |
| 19 | +| 3 | **隐喻命名是新手墙** | "深潜/结礁/反衰减呼吸/浮出水面"品牌感强但无法自解释,翻译藏在帮助中心里 | |
| 20 | +| 4 | **空白应用没有第一步** | 无示例数据,空状态有诗意文案但无 CTA | |
| 21 | +| 5 | **方法论门槛被忽略** | 用户可能根本不懂费曼学习法/间隔重复,"我为什么需要这个模块"无人回答 | |
| 22 | + |
| 23 | +**结论**:修补式引导(再加几步教程)无解。需要一套以"带做"替代"讲解"、以"世界观叙事"替代"功能罗列"的完整系统。 |
| 24 | + |
| 25 | +--- |
| 26 | + |
| 27 | +## 1. 核心创意:三个非常规设计 |
| 28 | + |
| 29 | +### 创意一:引导即首潜(Onboarding as First Dive) |
| 30 | + |
| 31 | +不做"教程覆盖层",把首次使用设计成一次**真实的、有剧情的首次下潜**:用户以新潜航员身份,在 10 分钟里完成一个**完整且真实的学习循环**—— |
| 32 | + |
| 33 | +``` |
| 34 | +定目标 → 3 分钟迷你深潜(真番茄钟)→ 结礁(记 1 条真笔记) |
| 35 | +→ AI 结晶(笔记生成 2 张真闪卡)→ 呼吸一次(复习刚生成的卡) |
| 36 | +→ 浮出水面(用一句话复述学到的东西) |
| 37 | +``` |
| 38 | + |
| 39 | +结束时用户**不是"看完了介绍",而是"已经拥有自己的第一份数据"**,且身体记住了完整链路。所有步骤可跳过,跳过即直接进入自由模式。 |
| 40 | + |
| 41 | +### 创意二:产品自己教自己(Self-Referential Onboarding) |
| 42 | + |
| 43 | +首潜的学习素材**就是"如何使用熵减"本身**: |
| 44 | + |
| 45 | +- 预置的第一个牌组是 **《潜航员手册》卡组**(8~10 张卡:每张卡正面"深潜是什么?"背面一句话答案) |
| 46 | +- 首潜里"呼吸一次"复习的就是这副卡;**7 天后间隔重复算法自然把手册卡再推给用户**——新手引导不是一次性事件,而是被产品自己的记忆引擎调度的持续过程 |
| 47 | +- 用户在学习"怎么用软件"的同时,亲身体验了间隔重复的原理——**方法论教育与功能教育合二为一** |
| 48 | +- 手册卡组带"沉船遗物"角标,全部掌握后触发成就「出师」,可一键归档 |
| 49 | + |
| 50 | +### 创意三:水母伴航(Companion, not Tutorial) |
| 51 | + |
| 52 | +把品牌人格(发光水母守夜人)具象为常驻引导生命体 **「微光」**: |
| 53 | + |
| 54 | +- 一只小水母悬浮在界面角落,赛博青光晕一明一灭;新手期跟随任务进度游动指路 |
| 55 | +- 点击微光 = 情境帮助:它知道你在哪个页面、卡在哪一步,给出**当下该做的一件事**(替代"用户自己想起 Ctrl+/") |
| 56 | +- 说话风格遵循品牌人格:不催促、不评判——"我在这里,慢慢来" |
| 57 | +- 新手期结束后不消失,退为安静的帮助锚点(可在设置隐藏);关键时刻苏醒:连续 7 天未复习时轻声提醒,而非红点轰炸 |
| 58 | + |
| 59 | +--- |
| 60 | + |
| 61 | +## 2. 系统分层设计 |
| 62 | + |
| 63 | +``` |
| 64 | +L0 着陆之问 首启一个问题,场景分流(30 秒) |
| 65 | +L1 首潜叙事 带做完整学习循环(10 分钟,可跳过) |
| 66 | +L2 海域点亮 首周渐进探索六模块(7 天) |
| 67 | +L3 水母伴航 常驻情境帮助生命体(永久) |
| 68 | +L4 自举卡组 《潜航员手册》被记忆引擎持续调度(约 21 天自然完成) |
| 69 | +``` |
| 70 | + |
| 71 | +### L0 · 着陆之问 |
| 72 | + |
| 73 | +替代现有 OnboardingPage 的 6 步介绍。深海背景,只有一个问题: |
| 74 | + |
| 75 | +> **"此刻,最困扰你的是什么?"** |
| 76 | +> A. 一学习就走神 → 首潜从深潜模块开始 |
| 77 | +> B. 背了就忘 → 首潜从闪卡模块开始(手册卡组直接开背) |
| 78 | +> C. 学了却讲不出来 → 首潜从费曼模块开始 |
| 79 | +> D. 我只想随便看看 → 跳到 L2 自由探索 |
| 80 | +
|
| 81 | +答案同时写入用户画像,供 AI 时长推荐冷启动使用。 |
| 82 | + |
| 83 | +### L1 · 首潜叙事 |
| 84 | + |
| 85 | +- 全屏沉浸(复用 ImmersiveTimer 的潮汐穹顶视觉),微光水母作为叙事者 |
| 86 | +- 每一步都在**真实功能界面**上操作(非模拟截图),完成即产生真实数据 |
| 87 | +- 3 分钟迷你番茄是特殊时长(不入统计或标记 `isOnboarding`),避免污染效率报表 |
| 88 | +- 全程可 Esc 跳过;跳过后微光记住进度,下次可续潜 |
| 89 | + |
| 90 | +### L2 · 海域点亮 |
| 91 | + |
| 92 | +- 六模块在导航/3D 空间中初始为**微暗的"未探明海域"**(可点击,非锁死——尊重自由) |
| 93 | +- 每完成一个模块的**首次真实使用**(非"看过介绍"),该海域亮起 + 水墨涟漪 + 一行海域铭文 |
| 94 | +- 新手任务清单「潜航日志」:可收起的 checklist(首个番茄/首条笔记/首张闪卡/首次复习/首次费曼/首个灵感),逐项接入现有 `checkAchievements` 钩子 |
| 95 | +- 全部点亮 → 成就「深海全图」+ 3D 空间彩蛋(认知星图第一颗星亮起) |
| 96 | + |
| 97 | +### L3 · 水母伴航 |
| 98 | + |
| 99 | +- 技术上是一个全局悬浮组件 + 情境规则表(当前路由 × 用户数据状态 → 建议动作) |
| 100 | +- 例:闪卡页 & 无牌组 → "要不要把《潜航员手册》拿出来呼吸一下?";笔记页 & 有笔记无闪卡 → "这条笔记可以结晶成卡片,试试?" |
| 101 | +- 帮助中心 4 Tab 保留,作为微光的"深层记忆"(点微光 → "查看完整手册" → 打开帮助中心对应 Tab) |
| 102 | + |
| 103 | +### L4 · 自举卡组 |
| 104 | + |
| 105 | +- 《潜航员手册》内容草案(每卡一问一答,双标签命名同步教学): |
| 106 | + 1. 深潜(番茄钟)帮你解决什么? |
| 107 | + 2. 为什么休息不是浪费时间? |
| 108 | + 3. 结礁(笔记)和普通笔记 App 有什么不同? |
| 109 | + 4. 一张闪卡什么时候会再次出现?(间隔重复原理) |
| 110 | + 5. 浮出水面(费曼)为什么要求你"讲出来"? |
| 111 | + 6. 忘了很多,正常吗?(遗忘曲线 + 品牌安抚语) |
| 112 | + 7. 数据存在哪里?(本地优先,隐私) |
| 113 | + 8. 卡住了找谁?(微光/帮助中心/Ctrl+/) |
| 114 | + |
| 115 | +--- |
| 116 | + |
| 117 | +## 3. 配套的常规补丁(系统的地基) |
| 118 | + |
| 119 | +创新系统之下,四个常规缺口仍需补上: |
| 120 | + |
| 121 | +| 补丁 | 内容 | |
| 122 | +|---|---| |
| 123 | +| **双标签命名** | 新手期全部隐喻名附直白副标题:"深潜 · 专注番茄钟";「潜航日志」全部完成后副标题淡出(设置可重开) | |
| 124 | +| **空状态 CTA** | 每个模块空状态 = 海域文案 + 一个大按钮("开始第一次深潜")+ 微光在旁 | |
| 125 | +| **合并旧双引导** | OnboardingPage 与 OnboardingOverlay 退役,3D 空间教学并入 L2(首次进入 3D 视图时微光教一次拖拽/缩放) | |
| 126 | +| **全局 tooltip** | 所有 icon-only 按钮补 hover 提示(现完全缺失) | |
| 127 | + |
| 128 | +--- |
| 129 | + |
| 130 | +## 4. 评估与分期 |
| 131 | + |
| 132 | +评分:可行性/影响力/创新性 1-5,总分 = 可行×0.4 + 影响×0.4 + 创新×0.2 |
| 133 | + |
| 134 | +| 子系统 | 可行 | 影响 | 创新 | 总分 | 分期 | |
| 135 | +|---|---|---|---|---|---| |
| 136 | +| L0 着陆之问 | 5 | 4 | 3 | 4.2 | P1 | |
| 137 | +| L1 首潜叙事 | 3 | 5 | 5 | 4.2 | P1(核心,工程量最大) | |
| 138 | +| L4 自举卡组 | 5 | 4 | 5 | 4.6 | P1(纯内容+种子数据,成本极低) | |
| 139 | +| 空状态 CTA + 双标签 | 5 | 4 | 2 | 4.0 | P1 | |
| 140 | +| L2 海域点亮 + 潜航日志 | 4 | 4 | 4 | 4.0 | P2 | |
| 141 | +| L3 水母伴航(基础版) | 3 | 4 | 5 | 3.8 | P2(先做静态锚点+情境规则,动画后置) | |
| 142 | +| 旧双引导退役合并 | 4 | 3 | 1 | 3.0 | P2 | |
| 143 | +| 全局 tooltip | 4 | 2 | 1 | 2.6 | P3 | |
| 144 | +| 微光高级动画/AI 对话化 | 2 | 3 | 5 | 3.0 | P3+ | |
| 145 | + |
| 146 | +**P1(第一个迭代)= L0 + L1 + L4 + 空状态 CTA + 双标签**:新用户从"一个问题"进入"一次真实首潜",结束时拥有手册卡组和自己的第一份数据。 |
| 147 | +**P2 = L2 + L3 基础版 + 旧引导退役**。 |
| 148 | + |
| 149 | +--- |
| 150 | + |
| 151 | +## 5. 技术落点预估(P1) |
| 152 | + |
| 153 | +| 改动 | 位置 | |
| 154 | +|---|---| |
| 155 | +| L0 着陆之问页 | 重构 `OnboardingPage`(复用其路由与完成标记) | |
| 156 | +| L1 首潜编排器 | 新增 `features/onboarding/firstDive/`:状态机(步骤×真实页面跳转)+ 叙事层组件;复用 usePomodoroStore(特殊 3min 会话标记)、笔记/闪卡现有创建 API | |
| 157 | +| L4 手册卡组种子 | 首启写入 `flashcardDecks`/`flashcards`(带 `builtin: 'handbook'` 标记);内容为纯数据文件 | |
| 158 | +| 双标签 | `onboardingConstants.ts` 模块信息表加 `subtitle` 字段,导航组件按新手期状态渲染 | |
| 159 | +| 空状态 CTA | 各模块空状态组件统一接 `EmptyState`(已存在但未普用)+ CTA 路由 | |
| 160 | +| 新手期判定 | 统一为单一 `kb-onboarding-v2` 状态对象(阶段/进度/画像),替代散落的多个 localStorage key | |
| 161 | + |
| 162 | +风险与对策: |
| 163 | +- **首潜打断成本**:全程 Esc 可跳过 + 断点续潜;首潜时长控制在 10 分钟内(迷你番茄仅 3 分钟) |
| 164 | +- **老用户兼容**:检测到既有数据(任一表非空)则跳过 L0/L1,只提示"新增了微光伴航" |
| 165 | +- **示例数据污染**:手册卡组与首潜番茄均打标记,统计页默认过滤 |
| 166 | + |
| 167 | +--- |
| 168 | + |
| 169 | +## 6. 遗留问题(已全部裁决,2026-07-31) |
| 170 | + |
| 171 | +| 问题 | 裁决与落地 | |
| 172 | +|---|---| |
| 173 | +| 微光水母视觉资产 | ✅ **已决策+落地**:P1 用纯 CSS 光晕光点(`MicroLight.tsx`,零依赖零资产);P2 升级 SVG/Lottie 时仅替换该组件 | |
| 174 | +| 手册卡组版本更新机制 | ✅ **已实现**:`HANDBOOK_VERSION` + localStorage `kb-handbook-version`,升版时按 front 去重只追加新卡,绝不覆盖复习进度(测试覆盖);文案润色后递增版本号即可 | |
| 175 | +| AI 离线降级 | ✅ **已决策+落地**:P1 首潜流程不依赖 AI——"结晶"步骤改为复习《潜航员手册》,完全离线可用;AI 结晶作为 P2 可选增强 | |
| 176 | +| L0 画像是否上云 | ✅ **已决策**:仅存本地 `kb-onboarding-v2`,不上云,无需隐私声明变更;未来若需上云单独过隐私评审 | |
| 177 | +| 3 分钟迷你番茄计入成就 | ✅ **已决策+落地**:计入(降低挫败)——`startMiniDive` 走完整 tick→recordSession→checkAchievements 链路,duration 如实记 180s 不污染效率统计 | |
| 178 | + |
| 179 | +### P1 实施补充决策 |
| 180 | + |
| 181 | +- **跳过交互**:用可见"先跳过"按钮而非 Esc——Esc 已被 AppLayout 用于退出模块,不抢占 |
| 182 | +- **双引导冲突**:首潜(landing/diving)期间抑制旧 3D 引导自动启动(OnboardingOverlay 加判断);旧引导完整退役仍属 P2 |
| 183 | +- **步骤完成检测**:数据基线差值(四表计数 vs 首潜开始时基线),与各模块 UI 零耦合 |
| 184 | +- **空状态 CTA**:盘点确认闪卡/笔记/费曼三处均已有引导按钮,无需改动 |
| 185 | + |
| 186 | +--- |
| 187 | + |
| 188 | +## 7. 回顾 |
| 189 | + |
| 190 | +- 核心命题转换:从"补引导"到"重设计首次体验"——教程解释产品,首潜让用户直接活在产品里 |
| 191 | +- 三个非常规抓手:引导即首潜(带做)、产品自己教自己(自举卡组)、水母伴航(世界观人格化的情境帮助) |
| 192 | +- 最高性价比单点:L4 自举卡组(纯内容成本,同时解决功能教育+方法论教育+间隔重复体验三件事) |
0 commit comments