Skip to content

Latest commit

 

History

History
257 lines (208 loc) · 17.4 KB

File metadata and controls

257 lines (208 loc) · 17.4 KB

v0.10.0 — 第十阶段:笔记能力建设(单笔记)

状态: 规划定稿(2026-08-21 头脑风暴定稿,含 A 层增强); 依据:市场笔记软件调研 + 旧版「结礁」笔记设计参照 + 链条完整性评估「会话→笔记→可用→好用→离不开」 目标: 将「会话→笔记」生产管线的产物建设为可查看、可编辑、可溯源、可回溯、可被 AI 增强的笔记; 以「活沉淀」定位——沉淀于会话、锚定于证据、演化为知识、反哺下一次学习 依据: 市场调研(Notion/Obsidian/语雀/飞书/RemNote/通义听悟/妙记,2026-08 检索)· 旧版 theme.md「结礁」定位 · 旧版痛点图谱 P7/P12/P22/P38/P47 · 需求池 REQ-004(笔记基本功能)· REQ-079/081/082(搜索增强/笔记预览/过滤管线,已交付 v0.6.0) 关联: 版本链/AI 精修/知识补充(v0.8.0 已交付)· 会话↔笔记双向关联(REQ-135/136)· 产物视图 refs 时间轴定位(REQ-052)


一、阶段目标

  1. 可用的笔记(③):Markdown 渲染(替换 <pre> 源码预览)+ 编辑保存(复用 versioned_save 版本链)+ 新建手动笔记
  2. 好用的笔记(④):时间戳回链(笔记段落 ↔ 会话时间点,提级 P1)+ 标签/固定/排序 + 快速捕获 + 笔记健康度基础版
  3. 离不开的笔记(⑤):结构钩子(回链制造回访、回顾流、AI 问答 P2)+ A 层特征(段落级操作、搜索高亮、版本可视化、回链预览、注意力跟踪)

笔记定位(头脑风暴定稿):笔记 = 视频学习过程的「活沉淀」——会话产物的结构化文档, 以时间戳回链锚定视频证据,经编辑与 AI 持续演化,可被检索、回顾与再次出发。 市场对照:听悟/妙记的笔记是「记事的终点」(产出即终态);Obsidian/Notion 是「写作的起点」(无提取上游); 我们的笔记是「学习的枢纽」(沉淀于会话、锚定于证据、反哺学习)。

克制哲学

v0.10.0 的克制是范围纪律,不是质量妥协。在笔记模块的边界内, 把该做的事情做到极致:

  • 三层过滤:产品定位过滤(不做 Notion 式工作区、不做 Obsidian 式知识库) × 技术架构过滤(与 Markdown 存储冲突的不做、与本地优先冲突的不做) × 范围纪律过滤(属多笔记组织体系的不做、属闪卡体系的不做)
  • 克制结果:13 项舍弃 + 5 项延后 = 18 项「不做或迟做」,14 项基础 + 5 项 A 层增强 = 19 项「做」
  • 核心判断:③可用完全覆盖,④好用基本覆盖,⑤离不开以 A 层增强补结构钩子缺口

二、市场优点提炼与融合映射

2.1 融合清单(已采纳)

# 市场优点 来源产品 融合方式
1 阅读/实时预览/源码 三模式编辑 Obsidian(用户实证:读用预览、写用源码、表格用源码) 笔记详情三态:阅读视图 ↔ 编辑视图(源码+即时预览),Ctrl+E 切换
2 Markdown 全渲染(表格/代码/LaTeX/任务列表) Obsidian/语雀/飞书 react-markdown + remark-gfm + rehype-katex + 代码高亮
3 任务列表交互勾选 Notion/飞书文档 - [ ] 渲染为可勾选 checkbox,勾选状态回写 Markdown
4 大纲面板(标题 TOC 跳转) Obsidian/语雀 按标题层级生成侧栏大纲,点击滚动定位
5 标签系统 Obsidian/印象笔记 notes 表增 tags 字段(JSON 数组),详情展示 + 列表过滤
6 属性/frontmatter 扩展位 Notion(属性)/Obsidian(YAML) notes 表增 properties JSON(预留:课程/领域等),v0.10.0 只存不设 UI 编辑
7 版本历史回溯 Notion(30/90 天)/已有 复用 versioned_save 快照链:编辑保存自动建版本 + diff/回滚
8 标题行内编辑 语雀/Notion 编辑态下标题可直接修改(update_note 标题分支)
9 新建即编辑 语雀/Notion create_note 接线,新建后直接进入编辑态
10 转写时间戳定位 飞书妙记(关键词定位) P1:Markdown 内嵌时间戳标记 → 点击跳转来源会话(复用 ArtifactView refs 模式)
11 选中文本 AI 改写/续写 Notion AI P2:复用 AiRefine 成本确认+审计+diff 采纳链路
12 全文检索(FTS5) 印象笔记/语雀 已有(search_notes),补标签维度
13 自动保存防丢 Notion/语雀 编辑态失焦/定时自动保存(不建版本)+ 手动保存(建版本)
14 来源溯源可见 独有(听悟/妙记均无) 详情信息条:来源会话/净化统计/规则版本

2.2 延后清单(非舍弃,排期在 v0.10.0 之后)

# 市场优点 来源产品 延后原因与排期
15 AI 问答「问我的笔记」 Notion AI Q&A P2:依赖本地 FTS5 检索 + 云端生成(复用 ai_client/授权/成本/审计);V1.0 候选
16 轻量回顾流(笔记级待回顾标记+到期排序) 旧版 P6 复习无计划的笔记侧解法 P2:非 SM-2 卡片调度,不越闪卡边界
17 笔记健康度提示(冗长/无图/低置信残留) 旧版 v1.1.0 backlog「AI 笔记健康度」/ P22 P2 基础版(本地规则);AI 版 V1.0
18 Markdown/HTML 导出 Obsidian 数据主权 P2:弥补 SQLite 非文件级资产的资产可带走性
19 快速捕获(全局唤起新建/追加) 印象笔记 P1 候选(与时间戳回链并列评估,工作量允许则入 P1)
20 同课程互链(相关笔记) Obsidian 双链的轻量替代 V1.0:REQ-078 课程字段已有基础

2.3 舍弃清单(明确不做,附理由)

# 舍弃的市场优点 来源产品 舍弃理由
21 块编辑器(/ 命令插入、拖拽块) Notion 与 Markdown 存储双向转换有损;与版本 diff、AI 精修整文替换、产物渲染全部冲突;内容为机器生成 Markdown,非从零块写作
22 数据库视图(表格/看板/日历/画廊) Notion 属多笔记组织能力(V1.0+);properties 字段仅留扩展位不消费
23 双链/反向链接/知识图谱 Obsidian 本地优先的「知识游荡」引擎依赖大规模笔记量,单笔记阶段无收益;tags 字段已留组织位,V1.0 再评估
24 文件夹/知识库目录树 语雀/印象笔记/旧版 与标签体系功能重叠;单笔记阶段不需要第二套组织维度
25 模板系统 旧版 TemplateSelector/语雀 模板解决「从零写」效率,我们是「从会话沉淀」场景
26 网页剪藏(Web Clipper) 印象笔记 产品定位为视频学习提取,非网页收集中枢
27 协同编辑/评论/标注 飞书/Notion/妙记 与本地优先架构冲突
28 WYSIWYG 所见即所得编辑器路线 Notion/语雀/飞书文档 机器生成 Markdown 场景下,Obsidian 实证「源码+预览」更优
29 实时协作(Yjs/CRDT) Notion/飞书 单人本地场景无需求
30 知识图谱自动构建 旧版 V2.0 提案 跨笔记实体关联属 AI 深度能力,单笔记阶段无输入规模
31 Notion 全家桶工作区 Notion 我们是笔记模块,非通用工作区
32 Obsidian 文件级资产 Obsidian 架构取舍:SQLite 换取结构化查询/FTS5/版本链/会话外键关联
33 笔记即卡片(大纲行内闪卡) RemNote 用户范围裁决:v0.10.0 仅笔记功能;闪卡体系顺延

舍弃原则:与本地优先冲突的(27/29)、与 Markdown 存储冲突的(21/28)、 属多笔记组织或 V1.0 体系的(22/23/24/30)、与产品定位不符的(26/31)、范围外(33)。 舍弃不是失败——克制是 v0.10.0 的第一纪律。


三、数据模型设计(含迁移)

notes 表新增三列(向下兼容,旧数据零迁移成本):

  • tags TEXT NOT NULL DEFAULT '[]' — JSON 数组 ["编程","课程A"]
  • properties TEXT — JSON 对象,扩展位(NULL=无)
  • pin INTEGER NOT NULL DEFAULT 0 — 固定标记(0=未固定,1=固定)

后端命令增量(少量新增 + 修改):

  • update_note_tags(幂等合并 tags)
  • update_note_properties(仅写入,不设前端编辑 UI)
  • list_notes / search_notes 返回 tags/properties/pin(已有命令扩列)
  • list_notes 支持排序模式:updated_desc / pin_first / created_desc
  • 其余复用:get/update/delete/versioned_save 等已有命令

四、功能能力清单

P0-1 阅读视图(替换 <pre>)

  • Markdown 全渲染:标题/粗斜体/列表/有序列表/表格/LaTeX/代码块高亮/引用/图片/链接
  • 任务列表 - [ ] 可勾选(勾选 → 重写该行回 content,不建版本)
  • 大纲面板:按 # 标题生成 TOC,点击滚动
  • 标签展示(点击 → 列表过滤)
  • 信息条:来源会话(已有双向跳转)+ 创建/更新时间 + 净化统计入口 + 当前版本号 + 标签列表
  • A2:笔记内搜索高亮定位 — Ctrl+F 唤起搜索条,正则匹配高亮,Enter/Shift+Enter 上下跳转

P0-2 编辑视图

  • 源码编辑(textarea 起手,零依赖)+ 顶部工具栏:B/I/标题 H1-H3/无序列表/有序列表/引用/代码块/表格/链接/LaTeX/图片
  • 即时预览(分栏或切换)
  • 快捷键:Ctrl+B/I(包裹)、Ctrl+E(切换)、Ctrl+S(保存建版本)
  • A1:段落级操作 — Ctrl+Shift+↑/↓ 提升/降低标题层级、Ctrl+Shift+M 合并选中连续段、Ctrl+Shift+S 拆分段落
  • 自动保存:失焦 + 每 30s 有改动自动存(不建版本);Ctrl+S 显式保存 → versioned_save 建新版本
  • 标题行内编辑
  • 编辑态下 EnrichPanel/VersionPanel 降级为「保存后刷新」

P0-3 新建手动笔记

  • 列表「新建」入口 → create_note → 直接进入编辑态 → 保存入列表

P1 增强

  • 时间戳回链(★提级):会话→笔记落库时 Markdown 内嵌 [[ts:start_ms]] 标记; 渲染为跳转链接 → 会话详情页定位对应转写段/关键帧
  • A5:段落回链预览 — 鼠标悬浮回链图标 → tooltip 显示对应转写段文本片段 + 跳转按钮
  • 标签编辑(编辑视图内 tags 输入)+ 标签过滤(列表筛选 + 点击标签直达)
  • 固定(pin)+ 最近访问排序(pin_first 模式)
  • 快速捕获(全局唤起新建/追加,与回链并列评估)

A 层增强(不越界做深)

  • A1:段落级结构编辑 — 编辑工具栏段落操作组:提升/降低标题层级、合并段、拆分段
  • A2:笔记内搜索高亮定位 — Ctrl+F 搜索条,高亮,上下跳转
  • A4:版本历史可视化增强 — 结构化版本卡片(来源徽标 + 日期 + 统计摘要 + 成本),diff 预览更友好
  • A5:段落级回链精度 — 回链 tooltip 显示转写段来源文本预览
  • A6:注意力跟踪(P1 候选) — 阅读/编辑视图停留时长统计,session_event 记录,为元认知仪表盘铺路

P2 远期(V1.0 关联,本方案仅留接口)

  • AI 问答「问我的笔记」(融合清单 #15)
  • 轻量回顾流(#16)/ 笔记健康度基础版(#17)/ 导出(#18)
  • 选中文本 AI 改写(#11,复用 AiRefine 信任基建)
  • 图片/参考图上下文(REQ-093)

五、交互流程

列表 → 选中 → 阅读视图(渲染 + 大纲 + 标签 + 信息条)
              ├─ 点击任务列表 → 勾选回写(不建版本)
              ├─ Ctrl+F → 搜索条 → 高亮匹配 → 上下跳转(A2)
              ├─ 点击时间戳回链 → 会话详情页定位(P1)
              │        └─ 悬浮回链 → tooltip 转写预览(A5)
              ├─ Ctrl+E / 编辑按钮 → 编辑视图(源码 + 工具栏 + 即时预览)
              │        ├─ Ctrl+S → 保存建版本 → 回阅读视图
              │        ├─ 失焦/30s → 自动保存(不建版本)
              │        ├─ Ctrl+Shift+↑/↓ → 提升/降低标题(A1)
              │        ├─ Ctrl+Shift+M → 合并选中段(A1)
              │        ├─ Ctrl+Shift+S → 拆分当前段(A1)
              │        ├─ 标签编辑 → update_note_tags
              │        └─ 工具栏 → 插入 Markdown 语法片段
              └─ EnrichPanel/VersionPanel → diff 采纳/回滚 → 刷新阅读视图
新建 → create_note → 编辑视图(空笔记)→ 保存 → 列表出现 + 阅读视图

状态一致性规则:

  • 版本快照只在显式保存/AI 采纳时建立;自动保存只刷新 updated_at
  • AI 操作读取最新已保存版本,采纳后强制刷新视图
  • 编辑中切走(切页/换笔记)→ 先自动保存再切换,防丢
  • A6 注意力跟踪不阻塞主交互,纯统计记录

六、技术选型

项 选择 理由
渲染 react-markdown + remark-gfm + rehype-katex + 代码高亮插件 生态成熟、离线纯本地、与 Markdown 存储零摩擦
编辑 MVP textarea + 自研轻量工具栏(约 100 行内) 零依赖、符合克制哲学
编辑升级位 @uiw/react-md-editor(若体验不达标再引入) 轻量首选(~180KB、MIT、双栏)
任务勾选 渲染层拦截 click → 行级正则改写 content 不引入编辑器即可实现
版本 复用 versioned_save(零新增) v0.8.0 已交付
时间戳回链 Markdown 内嵌 [[ts:ms]] 标记 + 渲染解析 + 会话页定位命令 复用 ArtifactView refs 模式
A1 段落操作 编辑态选中文本 → 正则变换 → 单次 update_note 纯前端 + 一次后端调用
A2 搜索高亮 正则匹配 DOM 文本节点 → <mark> 包裹 纯前端,零依赖
A4 版本卡片 版本列表 + diff 预览 → 结构化展示 增强 VersionPanel 渲染
A5 回链预览 渲染层拦截回链链接 → tooltip 加载转写片段 轻量,复用现有回链数据
A6 注意力跟踪 sessionStorage 统计 + 组件生命周期 + session_event 落库 不污染 notes schema

七、里程碑

步骤 内容 产出
M1 数据模型:tags/properties/pin 迁移 + 后端命令(update_note_tags 等)+ 单测 schema 迁移 + 命令 + 排序扩展
M2 阅读视图:Markdown 渲染器 + 任务勾选 + 大纲 + 标签 + 信息条 + A2 搜索高亮 替换 <pre>,渲染测试
M3 编辑视图:工具栏 + 快捷键 + 自动/显式保存 + 标题编辑 + A1 段落操作 编辑→保存→版本闭环
M4 时间戳回链(P1)+ A5 段落回链预览 笔记⇄会话双向跳转 + 悬浮预览
M5 新建笔记 + 标签过滤 + 固定/排序 + 前序排序扩展 create 接线 + 过滤 + pin 排序
M6 AI 面板共存语义 + A4 版本可视化增强 + A6 注意力跟踪 冲突治理 + 反馈升级
M7 真机验收全链路 验收记录 + 回归全绿

八、边界(明确不做)

  • ❌ 闪卡/费曼/番茄钟等非笔记功能
  • ❌ 舍弃清单全部 13 项(§二.3)
  • ❌ 延后清单在 v0.10.0 内不交付(§二.2,除 P1 评估项)
  • ❌ 多笔记组织:文件夹/知识库/双链/图谱
  • ❌ 协同编辑/分享(与本地优先冲突)
  • ❌ 模板系统/剪藏
  • ❌ 块编辑器(Notion 式)
  • ❌ A3 多笔记对比(UI 复杂+后端新命令,V1.0 评估)
  • ❌ UI/UX 视觉设计(本阶段范围裁决)

九、链条完整性评估

环节 定义 本方案覆盖
① 会话 课堂助手产出(转写+OCR+产物+AI 精修) ✅ 已有(v0.1~v0.9)
② 笔记 会话→笔记落库 ✅ 已有(REQ-135/136)
③ 可用的笔记 读/改/存/找/新建 ✅ P0 补齐
④ 好用的笔记 组织/溯源/回链/AI 增强 ✅ P0+P1(时间戳回链提级)
⑤ 离不开的笔记 回访/捕获/资产/闭环 ✅ P0+P1+A 层(段落操作+搜索高亮+版本可视化+回链预览+注意力跟踪)

头脑风暴结论:原方案止步③;「活沉淀」定位要求证据层(回链)、再出发层(回顾/问答/健康度)、 结构层(段落操作/搜索/版本可视化)。A 层增强补了结构钩子缺口, 使⑤从「部分覆盖」提升至「全面覆盖」。


十、验收标准

  • 阅读视图替换 <pre>:Markdown/表格/LaTeX/代码/图片全渲染(M2 golden 测试)
  • A2:Ctrl+F 搜索高亮定位正确(M2)
  • 编辑→保存→版本链闭环:Ctrl+S 建版本、自动保存不建版本、diff/回滚正常(M3)
  • A1:Ctrl+Shift+↑/↓ 提升降低标题、Ctrl+Shift+M 合并段、Ctrl+Shift+S 拆分段(M3)
  • 时间戳回链:笔记段落点击 → 会话页对应转写段/关键帧定位;悬浮 tooltip 预览(M4)
  • 新建/标签/固定/排序全通(M5)
  • AI 面板编辑态共存无 diff 冲突(M6)
  • A4:版本卡片结构化展示(来源徽标+统计摘要)(M6)
  • A6:注意力跟踪数据落库可查(M6)
  • cargo test + clippy 全绿;前端 tsc/build 通过(M7 回归)
  • 真机全链路:会话 → 转换 → 渲染 → 编辑 → 保存 → 版本回滚 → 搜索 → 回链 → 新建(M7)