Files
lpt-docs/docs/design/system-structure.md

5.2 KiB

系统结构

本文档的用途

concepts/overview.md 回答"系统要解决什么问题",本文档回答"系统是靠什么结构解决问题的"。理解以下三条结构后,判断某个功能该不该做、改动会不会动摇设计目标,都会变得直接。

一、系统要回答的三个问题

LPT 的全部能力最终只服务于三个问题:

  1. 我学过什么? —— 需要真实、不可篡改的学习记录。
  2. 我学到什么程度? —— 需要可对照的知识结构和暴露缺口的机制。
  3. 下一步该学什么? —— 需要可比较的任务优先级。

任何一个功能,如果对这三个问题都没有贡献,就不应该进入系统。

二、骨架:一个组织轴、一个闭环、一个记忆机制

组织轴

学习任务 → 学习会话 → 知识碎片 → 学习报告

组织轴决定"内容存放在哪里、被谁聚合"。系统里所有围绕内容的聚合(知识结构、复习内容、检索)都从这条轴派生。

组织轴的每一层含义不同:

  • 学习任务:长期目标,可管理、可排序。
  • 学习会话:一次真实发生的学习,不可变、时间可计量。
  • 知识碎片:学习过程中的原始记录,粒度最小。
  • 学习报告:一次会话的收敛结果。

闭环

学习预期 → 学习执行(碎片) → 报告收敛 → 复习 → 应用场景

闭环决定"一次学习如何被完整地走完"。闭环的完整性依赖两件事:

  • 会话记录不可篡改,量化结果才可信。
  • 碎片记录成本足够低,闭环才不会在中途断掉。

记忆机制

偶遇(滚动 Feed) → 主动提取(回忆对比) → 缺口暴露(遗漏项) → 回看原文

记忆机制是系统区别于普通笔记工具的部分。笔记工具能"存",能"检索",但不会告诉用户"你以为你记得,其实漏了这三个点"。

三、三条主线与痛点的对应

原始痛点 设计主线 主要概念
没有时间观,不知道自己的能力水平在哪 量化学习过程 学习会话、学习预期、知识碎片、学习报告、时间与效率
没有计划,想学什么学什么 合理安排优先级 学习任务、任务优先级、应用场景
没有复习习惯,学过就忘 让复习自然发生 复习 Feed、标准思维导图、回忆对比

三条主线共享同一条组织轴,因此组织轴的任何变化都会同时影响三条主线;反之,三条主线各自的机制变化通常互不干扰。

四、取舍准则

新增功能时按以下顺序判断:

  1. 是否服务于三个问题之一(见第一节)。不服务就不做。
  2. 是否增加记录或整理成本。增加成本的方案必须证明收益大于成本损失。
  3. 是否让 AI 变成必需品。AI 只能增强,不能成为流程能否走通的前提。

这三条准则解释了系统已有的一些取舍:不做强制复习清单、不做打卡与连续天数、短会话不计入总时长、AI 能力全部可降级。

五、支点:不轻易改动的六条

以下六条是设计目标的支点。改动它们属于设计变更,必须先改文档再改实现:

  1. 时间按学习会话统计。会话是唯一真实发生的事实。
  2. 一次学习会话只属于一个学习任务
  3. 三类时间规则:番茄钟长度(单个学习段落的上限)、遗忘判定阈值(判断用户是否忘记暂停或结束)、不计入总时长的最小值。
  4. 学习报告是会话产出的真实记录。碎片是原料,报告是收敛,报告不做美化。
  5. 复习是偶遇加主动提取,不是清单、不是打卡、不是必须完成的任务。
  6. AI 只增强不依赖。报告聚合、导图生成、回忆对比都必须有内置规则可独立完成。

六、两条轴的分工原则

系统正在形成两条互不干扰的轴:

  • 时间轴:按学习会话统计投入。回答"我花了多少时间、效率如何"。
  • 内容轴:按内容归属聚合知识。回答"这块知识属于哪里、我掌握到什么程度"。

两条轴的分工是:时间按会话,内容按归属。这解释了一个看起来矛盾的现象——一次会话产生的知识碎片不一定属于这次会话的学习任务,而一份学习报告一定属于这次会话。细节见 内容归属

七、判断改动是否触及设计目标

用三个提问自查:

  1. 改动是否改变了支点之一(第五节六条)?如果改变,属于设计变更。
  2. 改动是否引入了第二套聚合口径(同一内容在两处归属不同)?如果引入,必须先把口径统一到唯一的聚合入口。
  3. 改动是否依赖了某个尚不存在的概念?如果是,先补概念文档再谈实现。

相关文档