From 5208dd0352c627730ae869cfd8f81e23ff5a564d Mon Sep 17 00:00:00 2001 From: cat-shark Date: Sat, 19 Sep 2026 22:43:47 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E8=A1=A5=E5=85=A8=E5=A4=8D=E4=B9=A0?= =?UTF-8?q?=E5=9B=9E=E8=B7=AF=E8=AE=BE=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/concepts/README.md | 6 ++- docs/concepts/learning-report.md | 2 +- docs/concepts/recall-review.md | 37 ++++++++++++++++ docs/concepts/review-feed.md | 13 +++++- docs/concepts/review-overview.md | 32 ++++++++++++++ docs/design/module-boundaries.md | 8 ++-- docs/design/principles.md | 2 + docs/design/review-loop.md | 76 +++++++++++++++++++++++++++++++- 8 files changed, 168 insertions(+), 8 deletions(-) create mode 100644 docs/concepts/review-overview.md diff --git a/docs/concepts/README.md b/docs/concepts/README.md index adea02f..c35f5a1 100644 --- a/docs/concepts/README.md +++ b/docs/concepts/README.md @@ -15,7 +15,11 @@ | 有效学习时间 | 学习会话中未暂停的实际投入时间 | [时间与效率](time-and-efficiency.md) | | 任务优先级 | 由多个维度综合计算出的学习任务排序依据 | [任务优先级](priority.md) | | 应用场景 | 学到的知识可以被使用到什么地方 | [应用场景](application-scenario.md) | -| 复习 Feed | 滚动展示知识碎片和学习报告的记忆触发物 | [复习 Feed](review-feed.md) | +| 复习总览 | 按任务汇总可复习内容、掌握度与最近复习时间的入口 | [复习总览](review-overview.md) | +| 复习 Feed | 滚动展示知识碎片的记忆触发物,只显示摘要 | [复习 Feed](review-feed.md) | | 标准思维导图 | 每个学习任务对应的知识结构基准 | [标准思维导图](standard-mind-map.md) | | 回忆对比 | 用户凭记忆重建知识结构并与标准导图比较 | [回忆对比](recall-review.md) | +| 回忆记录 | 一次回忆对比的存档,含起点、三类节点与覆盖率 | [回忆对比](recall-review.md) | +| 覆盖率 | 本次对比命中节点占参与对比节点的比例 | [回忆对比](recall-review.md) | +| 复习起点 | 用户指定的对比起始节点,只复习该子树 | [回忆对比](recall-review.md) | | AI 任务 | 系统借助 AI 完成报告聚合、导图生成和语义对比 | [AI 任务](ai-task.md) | diff --git a/docs/concepts/learning-report.md b/docs/concepts/learning-report.md index 1640d3b..9ef76a3 100644 --- a/docs/concepts/learning-report.md +++ b/docs/concepts/learning-report.md @@ -31,7 +31,7 @@ - 学习预期:报告中回答“实际学了什么”。 - 内容归属:决定碎片在报告中的分组,也决定它进入哪份标准思维导图。 - 标准思维导图:报告参与导图生成。 -- 复习 Feed:报告也参与碎片化展示。 +- 复习 Feed:Feed 的条目单位是碎片;报告以会话完整结果的形态从任务记录进入回顾。 ## 设计思路 diff --git a/docs/concepts/recall-review.md b/docs/concepts/recall-review.md index 44061c2..b20eacc 100644 --- a/docs/concepts/recall-review.md +++ b/docs/concepts/recall-review.md @@ -10,6 +10,41 @@ - 遗漏:标准导图中有、用户没有回忆出来的内容。 - 额外:用户回忆起但标准导图中没有明确出现的内容。 +## 复习起点 + +用户可以指定一个节点作为复习起点,只对比该节点及其子树。起点让“只想巩固一小块”成为可能,不必每次面对整棵树。 + +不指定起点时,对比覆盖整棵标准导图。起点会记录在回忆记录中,便于之后回看“上次是从哪里复习的”。 + +## 回忆记录 + +每一次回忆对比都会留下一条回忆记录,包含: + +- 发生时间。 +- 复习起点(或整棵树)。 +- 命中、遗漏、额外的节点集合。 +- 覆盖率。 + +回忆记录有三个用途: + +- 让用户看到掌握程度的变化,而不是只有一次结论。 +- 为复习排序提供任务级掌握度:最近一条记录的覆盖率。 +- 让遗漏项在下一次复习时仍然可以被定位。 + +## 覆盖率 + +覆盖率是本次对比的命中节点数占参与对比的节点数的比例。 + +它衡量的是“这次回忆起了多少结构”,不是“学了多久”,也不是“学得好不好”。因此它只作为事实呈现:覆盖率低表示这次漏得多,不表示用户落后。 + +覆盖率按任务聚合成**掌握度**,是复习排序的输入之一;单条碎片不单独计算覆盖率,避免把碎片变成需要逐个处理的对象。 + +## 遗漏项回溯 + +遗漏项是标准导图中有、用户没有回忆出来的节点。每个遗漏项都能回看它的来源(学习报告、知识碎片或应用场景),并在标准导图上定位。 + +遗漏项是本次对比的快照,不是跨次累计的待办集合:系统不提供“处理完所有遗漏项”的流程,也不统计还有多少条没处理。 + ## 设计意图 回忆对比把“是否记住了”变成可见的结构差异: @@ -23,6 +58,8 @@ - 标准思维导图:对比的基准。 - 复习起点:用户可以选择从某个节点开始,只复习该子树。 - 知识碎片与学习报告:遗漏项可追溯回原文。 +- 复习总览:消费覆盖率形成的任务级掌握度。 +- 复习 Feed:排序权重按任务掌握度计算。 - AI 任务:语义对比可以由 AI 完成,也可降级到文本相似度匹配。 ## 设计思路 diff --git a/docs/concepts/review-feed.md b/docs/concepts/review-feed.md index 40209fc..283a538 100644 --- a/docs/concepts/review-feed.md +++ b/docs/concepts/review-feed.md @@ -2,7 +2,9 @@ ## 定义 -复习 Feed 是滚动展示用户自己写过的知识碎片和学习报告的轻量复习入口。它只显示内容摘要,用户看到后可以回想上下文,也可以点击进入详情。 +复习 Feed 是滚动展示用户自己写过的知识碎片的轻量复习入口。它只显示内容摘要,用户看到后可以回想上下文,也可以点击进入详情。 + +Feed 的条目单位是知识碎片。学习报告不以条目形式出现在 Feed 中:报告是“一次会话的完整结果”,从学习任务的记录进入回顾,避免同一段内容以两种形态重复出现。 ## 设计意图 @@ -14,10 +16,17 @@ ## 相关概念 -- 知识碎片与学习报告:Feed 的内容来源。 +- 知识碎片:Feed 的唯一内容来源。 +- 内容归属:Feed 里的归类动作改变碎片的归属。 +- 复习总览:任务级入口,与 Feed 的条目级展示互补。 - 回忆卡片:点击 Feed 内容后,先让用户尝试回忆再展开原文。 - 回忆对比:Feed 是进入深度复习的入口之一。 +- 复习排序:合并“多久没接触”与任务掌握度两个信号,只影响出现概率。 ## 设计思路 滚动展示适合“播种”记忆,主动回忆适合“巩固”记忆。系统把两者结合:先低门槛展示,再在用户点击时引导回忆。 + +Feed 只给摘要,全文在详情里按需展开:滚动场景下全文既拖慢浏览,也让用户跳过“先尝试回忆”这一步。 + +Feed 同时是归类成本最低的位置:看到一条内容时顺手确认它属于哪个任务,不需要额外的整理流程。归类动作与复习动作放在一起的原因见[模块边界](../design/module-boundaries.md)。 diff --git a/docs/concepts/review-overview.md b/docs/concepts/review-overview.md new file mode 100644 index 0000000..ef611d3 --- /dev/null +++ b/docs/concepts/review-overview.md @@ -0,0 +1,32 @@ +# 复习总览 + +## 定义 + +复习总览是复习的任务级入口。它把用户的学习任务按“有什么可复习、掌握到什么程度、多久没复习过”列出来,让用户决定从哪个任务开始。 + +它不展示单条内容:单条内容的偶遇式回顾发生在[复习 Feed](review-feed.md) 里。 + +## 总览呈现什么 + +- **可复习内容的规模**:该任务下有多少知识碎片。学习报告不以报告为单位重复计数,它包含的碎片已经在碎片里各出现过一次。 +- **掌握度**:该任务最近一次回忆对比的覆盖率。 +- **最近复习时间**:距上次回忆对比过去了多久。 +- **待归类内容**:尚未确定内容归属的碎片,见[内容归属](knowledge-ownership.md)。 + +## 设计意图 + +- 用户主动想复习时,需要一个“从哪里开始”的列表。总览只是入口选择,不是必须完成的清单:不产生到期、逾期、落后等压力信号。 +- 任务级聚合让复习聚焦在有知识结构的对象上,碎片不单独成为待办项。 +- 待归类内容必须在这里被看见:否则用户不知道有哪些内容还没有归属,归类也就无从发生。 + +## 相关概念 + +- 学习任务:总览的行单位。 +- 内容归属:决定内容进入哪个任务,也决定待归类内容是否出现在这里。 +- 标准思维导图:从任务进入深度复习的对象。 +- 回忆记录与覆盖率:掌握度的来源。 +- 复习 Feed:条目级的偶遇展示,与总览互补。 + +## 设计思路 + +总览只呈现事实——数量、覆盖率、时间,不给“你该复习了”的判断,也不做风险等级。掌握度低、久未复习的任务可以自然排在前面,但不被标记为落后。 diff --git a/docs/design/module-boundaries.md b/docs/design/module-boundaries.md index 41f4667..fb58200 100644 --- a/docs/design/module-boundaries.md +++ b/docs/design/module-boundaries.md @@ -21,11 +21,13 @@ 负责消费学习执行产生的材料: -- 滚动展示知识碎片和学习报告。 +- 按任务汇总复习状态(复习总览)。 +- 滚动展示知识碎片(复习 Feed)。 - 维护标准思维导图。 -- 提供回忆对比和遗漏项回溯。 +- 提供回忆对比、回忆记录和遗漏项回溯。 +- 承接内容归属的调整动作与待归类内容的处理入口。 -复习模块不要求用户逐条整理学习材料,材料是自动整理和对照分析的数据来源。复习按内容归属聚合,而不是按内容产生于哪次会话:这是归类动作与复习动作放在一起的原因。 +复习模块不要求用户逐条整理学习材料,材料是自动整理和对照分析的数据来源。复习按内容归属聚合,而不是按内容产生于哪次会话:这是归类动作与复习动作放在一起的原因。复习不做调度:不生成到期清单,只影响内容的出现概率。 ## 应用场景 diff --git a/docs/design/principles.md b/docs/design/principles.md index 33c0f68..d1c70d9 100644 --- a/docs/design/principles.md +++ b/docs/design/principles.md @@ -30,6 +30,8 @@ LPT 是辅助学习与生活的工具。系统可以量化、提醒、建议, 随机展示是为了制造偶然接触,智能排序是为了让偶然接触更接近真正需要复习的内容。两者结合,而不是互相替代。 +因此复习不做到期清单:系统只调整出现概率,不生成必须完成的队列,也不因为长期未复习而判定用户落后。 + ## AI 增强,但不依赖 AI 负责降低书写负担、提取知识结构和进行语义比较。核心学习流程必须在 AI 不可用时仍然可用,通过内置规则继续完成基本功能。 diff --git a/docs/design/review-loop.md b/docs/design/review-loop.md index ff3996c..1dc4d2a 100644 --- a/docs/design/review-loop.md +++ b/docs/design/review-loop.md @@ -1,5 +1,21 @@ # 复习回路 +## 复习系统的立场 + +复习是记忆机制,不是任务清单。系统只做两件事: + +- 让学过的内容以低阻力反复出现在用户眼前,为记忆播种。 +- 在用户愿意的时候提供主动提取的机会,让记忆被巩固。 + +明确不做的事: + +- 不做间隔重复调度:系统不计算“下次复习日期”,不生成到期队列,也不做逾期提醒。 +- 不做打卡与连续天数,不统计“复习完成率”。 +- 不做评分与等级:覆盖率是事实,不是成绩。 +- 不要求用户处理完所有遗漏项。 + +任何让复习变成“必须完成的清单”的改动,都违背这条立场。复习可以影响“什么更容易被看到”,但不能制造“欠下的债”。 + ## 复习的两种机制 系统把两种记忆机制组合在一起: @@ -7,6 +23,23 @@ 1. 偶然接触:通过滚动 Feed 让用户无意识看到自己写过的内容,为记忆“播种”。 2. 主动回忆:用户点击内容后先尝试回忆,再展开原文,通过提取练习巩固记忆。 +## 复习内容来源 + +| 来源 | 在复习中的角色 | +|------|----------------| +| 知识碎片 | 复习的基本单位,也是 Feed 的条目 | +| 学习报告 | 一次会话的完整结果,从任务记录进入回顾 | +| 标准思维导图 | 深度复习的对照基准与结构来源 | +| 应用场景 | 复习的现实语境,参与导图 | +| 回忆记录 | 复习产生的历史,用于展示掌握变化与计算任务掌握度 | + +学习时间与效率数据不进入复习内容:它们属于时间轴,回答的是投入了多少,而不是记得怎么样。 + +## 复习的两个层级 + +- **任务级**:复习总览回答“从哪个任务开始复习”,见 [复习总览](../concepts/review-overview.md)。 +- **内容级**:复习 Feed 回答“这次遇到哪条内容”,见 [复习 Feed](../concepts/review-feed.md)。 + ## 从轻量复习到深度复习 ```text @@ -41,6 +74,8 @@ - 遗漏的内容直接指出需要回看哪里。 - 额外回忆的内容可能是用户自己的联想,也值得保留。 +每次对比都会留下一条[回忆记录](../concepts/recall-review.md),记录这次回忆的起点、三类节点与覆盖率。覆盖率按任务聚合成掌握度,是复习排序的输入之一。 + ## 进入回忆对比的入口 回忆对比不应该只有一个入口。系统提供三种入口,它们对应不同的复习心态: @@ -53,4 +88,43 @@ ## 智能排序与随机性 -复习内容不应完全随机,也不应被强制排序。系统可以综合“多久没复习”和“上次回忆覆盖率”让更需要复习的内容更常出现,同时保留随机感。 +复习内容不应完全随机,也不应被强制排序。系统综合两个信号调整内容的出现概率: + +- **多久没接触**:距内容产生(或最近一次出现)越久,权重越高;时间效应在到达上限后不再增长。 +- **任务掌握度**:最近一次回忆对比的覆盖率越低,权重越高;从未回忆过的任务视为最需要复习。 + +两个信号只影响“出现的概率”,不产生到期、逾期、优先级标记。随机性被保留:每条内容都有机会出现,包括刚刚复习过的内容。信号强度可配置,默认值按“时间效应为主、掌握度为辅”设定。 + +## 复习中的归类 + +复习是内容归类的最低成本时机:用户已经看到这条内容,此时决定它属于哪个任务不需要额外整理流程。 + +- 待归类内容在复习总览中可见,在 Feed 中可归类。 +- 归类动作就近提供,一次交互完成;AI 只给建议,用户可一键接受或忽略。 +- 归属改变后,内容进入新任务的导图取材范围,原任务与新任务的导图都标记为待更新;复习排序权重按任务掌握度自动跟随,不需要单独处理。 + +## 复习中的反馈动作 + +复习目前只有“看到 → 展开 → 深入”的路径,用户不能表达“这条我已经很熟”或“这条我要再看看”。设计上区分两种反馈: + +- **无需记录的反馈**:展开查看、进入回忆对比,本身就是复习行为,不产生额外数据。 +- **需要记录的反馈**:用户主动标记“已掌握”或“稍后再看”,用于调整出现概率。 + +反馈动作的存在方式列入待决问题:它既可能帮助系统更准地安排内容,也可能把复习拖回清单模式。 + +## AI 在复习中的边界 + +- 回忆对比的语义匹配由 AI 增强,AI 不可用时降级为文本相似度匹配。 +- 归类建议由 AI 增强,AI 不可用时降级为关键词与历史归属的规则建议;规则也不可用时不做建议,不影响复习流程。 +- AI 不参与“该复习什么”的判定:排序信号来自时间与回忆记录,AI 只影响匹配与建议。 + +## 待决问题 + +以下问题需要维护者确认后再进入实现: + +1. **Feed 是否包含学习报告?** 本文档的取向是:Feed 只出知识碎片,报告以“会话完整结果”的形态从任务记录进入,不与碎片并列成条目,避免同一段内容以两种形态重复出现。 +2. **复习反馈动作的形态。** 可选:只读(现状)/加“已掌握 / 稍后再看”轻反馈并参与权重/只提供“稍后再看”而不提供“已掌握”。轻反馈是否会演变成清单,是本项的核心顾虑。 +3. **覆盖率口径。** 本文档暂按“最近一次回忆对比”计算;另一种做法是取最近若干次的加权结果,代价是变化被平滑、遗忘的征兆出现得更晚。 +4. **待归类内容的呈现方式。** 在复习总览中独立成一类“待归类”,还是在 Feed 中与其他内容混排并打标;以及归类动作是否必须在卡片上可完成。 +5. **遗漏项的语义。** 本文档按“每次对比的快照 + 可回看原文”设计,不做跨次累计的待处理集合。若改为累计,需要重新论证它不会变成待办清单。 +6. **排序信号是否可配置。** 掌握度与时间效应的强度是否像任务优先级权重那样对用户开放,还是固定为默认值。