5.7 KiB
5.7 KiB
系统结构
本文档的用途
concepts/overview.md 回答"系统要解决什么问题",本文档回答"系统是靠什么结构解决问题的"。理解以下三条结构后,判断某个功能该不该做、改动会不会动摇设计目标,都会变得直接。
一、系统要回答的三个问题
LPT 的全部能力最终只服务于三个问题:
- 我学过什么? —— 需要真实、不可篡改的学习记录。
- 我学到什么程度? —— 需要可对照的知识结构和暴露缺口的机制。
- 下一步该学什么? —— 需要可比较的任务优先级。
任何一个功能,如果对这三个问题都没有贡献,就不应该进入系统。
二、骨架:一个组织轴、一个闭环、一个记忆机制
组织轴
学习任务 → 学习会话 → 知识碎片 → 学习报告
组织轴决定"内容存放在哪里、被谁聚合"。系统里所有围绕内容的聚合(知识结构、复习内容、检索)都从这条轴派生。
组织轴的每一层含义不同:
- 学习任务:长期目标,可管理、可排序。
- 学习会话:一次真实发生的学习,不可变、时间可计量。
- 知识碎片:学习过程中的原始记录,粒度最小。
- 学习报告:一次会话的收敛结果。
闭环
学习预期 → 学习执行(碎片) → 报告收敛 → 复习 → 应用场景
闭环决定"一次学习如何被完整地走完"。闭环的完整性依赖两件事:
- 会话记录不可篡改,量化结果才可信。
- 碎片记录成本足够低,闭环才不会在中途断掉。
记忆机制
偶遇(滚动 Feed) → 主动提取(回忆对比) → 缺口暴露(遗漏项) → 回看原文
记忆机制是系统区别于普通笔记工具的部分。笔记工具能"存",能"检索",但不会告诉用户"你以为你记得,其实漏了这三个点"。
三、三条主线与痛点的对应
| 原始痛点 | 设计主线 | 主要概念 |
|---|---|---|
| 没有时间观,不知道自己的能力水平在哪 | 量化学习过程 | 学习会话、学习预期、知识碎片、学习报告、时间与效率 |
| 没有计划,想学什么学什么 | 合理安排优先级 | 学习任务、任务优先级、应用场景 |
| 没有复习习惯,学过就忘 | 让复习自然发生 | 复习 Feed、标准思维导图、回忆对比 |
三条主线共享同一条组织轴,因此组织轴的任何变化都会同时影响三条主线;反之,三条主线各自的机制变化通常互不干扰。
四、取舍准则
新增功能时按以下顺序判断:
- 是否服务于三个问题之一(见第一节)。不服务就不做。
- 是否增加记录或整理成本。增加成本的方案必须证明收益大于成本损失。
- 是否让 AI 变成必需品。AI 只能增强,不能成为流程能否走通的前提。
这三条准则解释了系统已有的一些取舍:不做强制复习清单、不做打卡与连续天数、短会话不计入总时长、AI 能力全部可降级。
五、支点:不轻易改动的六条
以下六条是设计目标的支点。改动它们属于设计变更,必须先改文档再改实现:
- 时间按真实发生的行为统计。学习时间来自学习会话,复习耗时来自复习行为(回忆对比、引导追问),两者独立统计、不合并。
- 一次学习会话只属于一个学习任务。
- 三类时间规则:番茄钟长度(单个学习段落的上限)、遗忘判定阈值(判断用户是否忘记暂停或结束)、不计入总时长的最小值。这三条只用于学习会话;复习耗时的挂机截断窗口不属于它们。
- 学习报告是会话产出的真实记录,形态为会话摘要、预期达成判断、按归属分组的碎片与自由总结。碎片是原料,报告是收敛,报告不做美化;旁支碎片留在本次报告中单独呈现,不参与正文推演。
- 复习是偶遇加主动提取,不是清单、不是打卡、不是必须完成的任务。
- AI 只增强不依赖。报告聚合、导图生成、回忆对比都必须有内置规则可独立完成。
六、两条轴的分工原则
系统正在形成两条互不干扰的轴:
- 时间轴:按真实发生的行为统计投入——学习会话贡献学习时间,复习行为贡献复习耗时。回答“我花了多少时间、复习投入了多少”。
- 内容轴:按内容归属聚合知识。回答"这块知识属于哪里、我掌握到什么程度"。
两条轴的分工是:时间按行为,内容按归属。这解释了一个看起来矛盾的现象——一次会话产生的知识碎片不一定属于这次会话的学习任务(旁支碎片仍在该报告中单独呈现),而一份学习报告一定属于这次会话。细节见 内容归属。
七、判断改动是否触及设计目标
用三个提问自查:
- 改动是否改变了支点之一(第五节六条)?如果改变,属于设计变更。
- 改动是否引入了第二套聚合口径(同一内容在两处归属不同)?如果引入,必须先把口径统一到唯一的聚合入口。
- 改动是否依赖了某个尚不存在的概念?如果是,先补概念文档再谈实现。