From da2ad925f49abbdaab9c651d035da73a2b062a1a Mon Sep 17 00:00:00 2001 From: cat-shark Date: Sat, 19 Sep 2026 22:37:12 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E7=A1=AE=E8=AE=A4=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E5=BD=92=E5=B1=9E=E4=B8=8E=E7=BB=93=E6=9E=84=E5=8C=96=E6=8A=A5?= =?UTF-8?q?=E5=91=8A=E6=96=B9=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- docs/concepts/README.md | 3 ++- docs/concepts/ai-task.md | 6 +++--- docs/concepts/knowledge-fragment.md | 3 +++ docs/concepts/knowledge-ownership.md | 16 +++++++++------- docs/concepts/learning-report.md | 18 ++++++++++++++++-- docs/concepts/learning-task.md | 2 +- docs/design/learning-loop.md | 2 +- docs/design/system-structure.md | 4 ++-- 9 files changed, 38 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 919a183..ac25875 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # LPT 概念与设计文档 -> 更新日期:2026-08-05 +> 更新日期:2026-09-19 本项目只维护 LPT(Learning Progress Tracker)的系统概念与设计思路,不保存开发记录、系统中间态或开发过程中的中间产物。 diff --git a/docs/concepts/README.md b/docs/concepts/README.md index b607041..adea02f 100644 --- a/docs/concepts/README.md +++ b/docs/concepts/README.md @@ -9,8 +9,9 @@ | 学习预期 | 开始学习前对本次学习目标的描述 | [学习预期](learning-expectation.md) | | 知识碎片 | 学习中随手记录的不完整内容,也称“学习报告残片” | [知识碎片](knowledge-fragment.md) | | 内容归属 | 一条知识碎片在知识结构上属于哪个学习任务 | [内容归属](knowledge-ownership.md) | +| 记录上下文 | 碎片产生于哪次学习会话与任务,不可变且不可为空 | [内容归属](knowledge-ownership.md) | | 待归类 | 尚未确定内容归属的碎片状态 | [内容归属](knowledge-ownership.md) | -| 学习报告 | 一次学习结束后汇总出的完整学习结果 | [学习报告](learning-report.md) | +| 学习报告 | 一次学习结束后汇总出的结构化学习结果 | [学习报告](learning-report.md) | | 有效学习时间 | 学习会话中未暂停的实际投入时间 | [时间与效率](time-and-efficiency.md) | | 任务优先级 | 由多个维度综合计算出的学习任务排序依据 | [任务优先级](priority.md) | | 应用场景 | 学到的知识可以被使用到什么地方 | [应用场景](application-scenario.md) | diff --git a/docs/concepts/ai-task.md b/docs/concepts/ai-task.md index 4eeb871..6751f35 100644 --- a/docs/concepts/ai-task.md +++ b/docs/concepts/ai-task.md @@ -4,7 +4,7 @@ AI 任务是系统使用 AI 完成的三类学习处理能力: -- 聚合报告:把知识碎片整理成学习报告草稿。 +- 聚合报告:把知识碎片整理成结构化学习报告草稿——会话摘要、预期达成判断、按归属分组的碎片,以及自由总结草稿。 - 生成导图:从报告、碎片和应用场景中提取标准思维导图。 - 回忆对比:对用户回忆与标准导图进行语义层面的比较。 @@ -12,13 +12,13 @@ AI 任务是系统使用 AI 完成的三类学习处理能力: AI 用于降低用户的书写和整理负担: -- 报告不必从零开始写,AI 先给草稿,用户再修改。 +- 报告不必从零开始写,AI 先给结构化草稿(含碎片分组建议),用户再修改。 - 导图不必用户手工搭建,AI 可以先提取结构。 - 回忆对比可以容忍同义表达,而不只是机械文字匹配。 ## 设计思路 -AI 是增强能力,而不是单点依赖。AI 不可用时,系统应能用内置规则继续完成报告拼接、导图生成和字符串匹配,保证核心学习流程不中断。 +AI 是增强能力,而不是单点依赖。AI 不可用时,系统应能用内置规则继续完成报告拼接、导图生成和字符串匹配,保证核心学习流程不中断:报告降级为按内容归属分组碎片并生成摘要,自由总结留空由用户填写。 ## 相关概念 diff --git a/docs/concepts/knowledge-fragment.md b/docs/concepts/knowledge-fragment.md index 11569fd..1f79eb4 100644 --- a/docs/concepts/knowledge-fragment.md +++ b/docs/concepts/knowledge-fragment.md @@ -21,9 +21,12 @@ - 复习 Feed:碎片是滚动展示的核心内容。 - 标准思维导图:碎片参与导图生成,并可追溯到原文。 - 内容归属:碎片产生于某个会话,但它可以归属到另一个学习任务。 +- 记录上下文:碎片产生于哪次学习会话与任务,不可变且不可为空。 ## 设计思路 碎片不应被要求“整理得非常完美”。它是学习过程的原料,后续由用户或 AI 汇总成更结构化的内容。 碎片“产生于某个任务”只说明它出现在哪里,不代表它只能属于那里:记录上下文不可变,内容归属可以调整,尚未确定的内容进入待归类状态。区分两者后,旁支知识不会污染原任务的知识结构。 + +碎片一定产生于某次学习会话,不存在脱离会话的碎片:待归类只表示内容归属尚未确定,记录上下文始终存在。 diff --git a/docs/concepts/knowledge-ownership.md b/docs/concepts/knowledge-ownership.md index 56ebdeb..2865ca4 100644 --- a/docs/concepts/knowledge-ownership.md +++ b/docs/concepts/knowledge-ownership.md @@ -1,6 +1,6 @@ # 内容归属 -> 状态:**草案,待维护者确认后实施**。文末列出三个待决问题,确认前不要按本文档改动实现。 +> 状态:**设计已确认,实现待安排**。三个待决问题已于 2026-09-19 由维护者确认,结论见文末。 ## 定义 @@ -15,6 +15,8 @@ **待归类**是没有确定归属的状态。处于待归类的内容不会消失,也不阻塞任何流程,只是暂时不进入任何任务的知识结构。 +碎片一定产生于某次学习会话,不存在脱离会话的碎片:待归类只表示内容归属尚未确定,记录上下文始终存在。 + ## 要解决的问题 在只有记录上下文的情况下,系统会强制把"记录地点"当成"内容归属",由此产生三个后果: @@ -66,7 +68,7 @@ ### 报告保持真实,旁支内容单独呈现 -一次会话产生的碎片可能归属不同任务。学习报告只收敛归属当前任务的碎片;旁支碎片在报告中单独呈现并标注其归属,不参与本次报告的正文推演。这样既保住报告的真实性,也避免报告与导图被无关内容带偏。 +一次会话产生的碎片可能归属不同任务。学习报告的摘要、预期达成判断与正文推演只使用归属当前任务的碎片;旁支碎片仍留在本次报告中,单独分组呈现并标注其归属,不参与正文推演。这样既保住报告的真实性,也避免报告与导图被无关内容带偏。 ## 修改归属的后果 @@ -84,10 +86,10 @@ - 复习 Feed:归类动作的最低成本落点,也是旁支内容的复习入口。 - AI 任务:只提供归属建议,不作为判定依据。 -## 待决问题 +## 已确认的结论 -以下三点需要维护者确认后再进入实现: +以下三点于 2026-09-19 由维护者确认: -1. **是否允许碎片脱离学习会话存在?** 允许后可以在任何场景随手记一条内容,代价是系统有向通用笔记工具漂移的倾向。若允许,这类碎片不参与时间统计、不产生学习报告。 -2. **学习报告是否改为结构化呈现?** 即报告由"会话产出摘要 + 按归属分组的碎片"组成,而不是一段自由文本。结构化后旁支内容天然分离,但会改变报告的形态。 -3. **归属是否保持单一、由标签承担跨领域关联?** 本文档的建议是保持单一。 +1. **碎片不可脱离学习会话。** 不存在没有记录上下文的内容:任何碎片都产生于某次会话,因此必然参与时间统计,也不存在“无处挂载的碎片”。代价是系统不向可以随手记录的通用笔记工具演进,这是有意的边界。 +2. **学习报告改为结构化呈现。** 报告由会话摘要、预期达成判断、按归属分组的碎片和自由总结组成;旁支碎片仍留在本次报告中,只单独标注归属、不参与正文推演。自由总结必须保留,否则卡点与下一步无处表达。 +3. **内容归属保持单一,跨领域关联由标签承担。** 学习内容很少只属于一个领域:一份侧重 A 领域的材料仍会带来 B 领域的碎片,但它仍归属 A,与 B 的关联用标签表达。如果用户持续在同一领域积累旁支碎片,说明该领域已值得作为独立学习任务,此时走“待归类内容升格为学习任务”的路径,而不是给它第二个归属。 diff --git a/docs/concepts/learning-report.md b/docs/concepts/learning-report.md index 9a4df82..1640d3b 100644 --- a/docs/concepts/learning-report.md +++ b/docs/concepts/learning-report.md @@ -4,6 +4,15 @@ 学习报告是一次学习会话结束后的完整学习结果汇总。它由本次会话产生的知识碎片综合而来,而不是要求用户从零开始写一篇长文。 +报告由四部分组成: + +- **会话摘要**:这次实际学了什么。 +- **预期达成判断**:对照学习预期,判断目标是否达成。 +- **按归属分组的碎片**:碎片按内容归属分组呈现;旁支碎片单独列出并标注其归属。 +- **自由总结**:用户对本次学习的叙述,包括卡点、疑问和下一步打算。 + +报告一定属于产生它的那次会话。会话中产生的碎片无论最终归属哪个任务,都会出现在本次报告中,只是分组不同。 + ## 设计意图 学习报告的价值在于: @@ -12,13 +21,18 @@ 2. 与学习预期对照,判断学习目标是否达成。 3. 作为复习材料和标准思维导图的输入。 +结构化不是为了形式整齐,而是让前两项可以直接被读取:预期与达成判断本来就是一组对照,不必藏在正文里做隐含比较;按归属分组则让报告与标准导图的取材口径一致。 + +自由总结必须保留:报告同时承担叙述职责,卡点、疑问和下一步打算没有字段可以承载,取消它就失去了复盘的表达位。 + ## 相关概念 -- 知识碎片:报告的主要来源。 +- 知识碎片:报告的主要来源,按内容归属分组。 - 学习预期:报告中回答“实际学了什么”。 +- 内容归属:决定碎片在报告中的分组,也决定它进入哪份标准思维导图。 - 标准思维导图:报告参与导图生成。 - 复习 Feed:报告也参与碎片化展示。 ## 设计思路 -降低报告的仪式感:用户的主要书写单元是知识碎片,报告允许先由系统根据碎片生成草稿,再由用户修改确认。 +降低报告的仪式感:用户的主要书写单元是知识碎片,报告允许先由系统根据碎片生成结构化草稿(摘要、达成判断、分组建议、总结草稿),再由用户修改确认。AI 不可用时降级为规则拼接:按内容归属分组碎片并生成摘要,自由总结留给用户填写。 diff --git a/docs/concepts/learning-task.md b/docs/concepts/learning-task.md index 5434d7d..11d9e66 100644 --- a/docs/concepts/learning-task.md +++ b/docs/concepts/learning-task.md @@ -20,7 +20,7 @@ ## 相关概念 - 学习会话:属于某个学习任务。 -- 知识碎片与学习报告:在一次会话中产生,最终属于该任务。 +- 知识碎片与学习报告:都在某次学习会话中产生;碎片按内容归属、报告按会话所属指向该任务。 - 标准思维导图:每个学习任务对应一份知识结构基准。 - 应用场景:挂在学习任务下,表示该任务最终能用来做什么。 - 任务优先级:决定多个学习任务之间的先后顺序。 diff --git a/docs/design/learning-loop.md b/docs/design/learning-loop.md index cf8fc46..8d049cb 100644 --- a/docs/design/learning-loop.md +++ b/docs/design/learning-loop.md @@ -36,7 +36,7 @@ ### 学习报告 -报告把碎片收敛成一次学习的完整结果。它可以由系统先聚合,再由用户修正,避免把完整报告变成书写压力。 +报告把碎片收敛成一次学习的完整结果:会话摘要、预期达成判断、按归属分组的碎片与自由总结。它可以由系统先生成结构化草稿,再由用户修正,避免把完整报告变成书写压力;旁支碎片留在本次报告中单独呈现,不参与正文推演。 ### 复习与应用 diff --git a/docs/design/system-structure.md b/docs/design/system-structure.md index 57877e8..2131251 100644 --- a/docs/design/system-structure.md +++ b/docs/design/system-structure.md @@ -77,7 +77,7 @@ LPT 的全部能力最终只服务于三个问题: 1. **时间按学习会话统计**。会话是唯一真实发生的事实。 2. **一次学习会话只属于一个学习任务**。 3. **三类时间规则**:番茄钟长度(单个学习段落的上限)、遗忘判定阈值(判断用户是否忘记暂停或结束)、不计入总时长的最小值。 -4. **学习报告是会话产出的真实记录**。碎片是原料,报告是收敛,报告不做美化。 +4. **学习报告是会话产出的真实记录**,形态为会话摘要、预期达成判断、按归属分组的碎片与自由总结。碎片是原料,报告是收敛,报告不做美化;旁支碎片留在本次报告中单独呈现,不参与正文推演。 5. **复习是偶遇加主动提取**,不是清单、不是打卡、不是必须完成的任务。 6. **AI 只增强不依赖**。报告聚合、导图生成、回忆对比都必须有内置规则可独立完成。 @@ -88,7 +88,7 @@ LPT 的全部能力最终只服务于三个问题: - **时间轴**:按学习会话统计投入。回答"我花了多少时间、效率如何"。 - **内容轴**:按内容归属聚合知识。回答"这块知识属于哪里、我掌握到什么程度"。 -两条轴的分工是:**时间按会话,内容按归属**。这解释了一个看起来矛盾的现象——一次会话产生的知识碎片不一定属于这次会话的学习任务,而一份学习报告一定属于这次会话。细节见 [内容归属](../concepts/knowledge-ownership.md)。 +两条轴的分工是:**时间按会话,内容按归属**。这解释了一个看起来矛盾的现象——一次会话产生的知识碎片不一定属于这次会话的学习任务(旁支碎片仍在该报告中单独呈现),而一份学习报告一定属于这次会话。细节见 [内容归属](../concepts/knowledge-ownership.md)。 ## 七、判断改动是否触及设计目标