关于 book-study
book-study 是帮助用户系统阅读书籍的阅读教练技能,结合章节预习、知识整理、掌握度测试、间隔复习和查询。它将书籍内容组织成可交叉引用的 wiki。
主要功能
- 01生成章节预读问题
- 02将笔记整理为关联书籍 wiki
- 03苏格拉底式掌握度测试与练习
- 04安排间隔复习
- 05跨书查询与比较
适用场景
- 01阅读章节前准备问题
- 02将笔记或摘录整理成 wiki 页面
- 03持续测试和复习概念
- 04比较已读书籍中的观点
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sanyuan0704/ sanyuan-skills --skill book-study安装后在 Claude Code 中输入/book-study确认已加载。
附带文件references/page-templates.mdreferences/pedagogy.md
详细介绍
读书学习 — 阅读教练
系统性地引导用户阅读书籍。涵盖知识编纂(摄取)、掌握度测试、间隔重复复习和知识查询的完整系统。
铁律:通过解释 + 示例 + 应用来证明理解。绝不能仅仅因为用户说“懂了”就将一个概念标记为已掌握。
用法
/book-study <book-name> # Start a new book or resume progress
/book-study <book-name> --chapter 3 # Jump to chapter 3
/book-study ingest # Compile current chapter to wiki
/book-study query <keyword> # Query the knowledge base
/book-study review # Spaced repetition review
/book-study compare <book-A> <book-B> # Cross-book comparison
/book-study questions # View open questions
/book-study status # View all reading progress
数据结构
Wiki 默认位于当前项目根目录下的 book-wiki/。
book-wiki/
├── index.md # Global index: all books + cross-book concepts
├── log.md # Append-only operation log
├── <book-slug>/ # One directory per book
│ ├── meta.md # Book metadata (title, author, reading status)
│ ├── study-plan.md # Reading plan + progress tracking
│ ├── mastery-map.md # Mastery status map
│ ├── chapters/ # Chapter summaries
│ ├── concepts/ # Core concepts from the book
│ ├── cases/ # Cases, stories, experiments
│ ├── models/ # Frameworks, models, methodologies
│ ├── quotes/ # Notable quotes
│ └── questions/ # Questions raised during reading
└── cross-book/ # Cross-book knowledge
├── concepts/ # Shared concepts across books
└── comparisons/ # Cross-book comparisons
文件命名:全部使用小写字母,以连字符分隔。书籍 slug:书名的拼音或英文缩写(例如 thinking-fast-and-slow)。
交叉引用:同一本书内使用 [[concepts/xxx]],跨书使用 [[/cross-book/concepts/xxx]]。兼容 Obsidian。
学习流程
阶段 0:打开一本书
首次运行 /book-study <book-name> 时:
-
检查
book-wiki/<book-slug>/是否存在- 存在 → 读取
study-plan.md,恢复进度(参见“状态恢复”) - 不存在 → 初始化新书
- 存在 → 读取
-
新书初始化(交互式——每次只问一个问题):
- 你有什么格式的书?(纸质书 / 电子书 / PDF)
- 你为什么读这本书?你想解决什么问题?
- 你对这个领域有多熟悉?(初学者 / 有些基础 / 有经验)
- 预计多久读完?
-
生成
meta.md:
# <Book Title>
- **Author**: XXX
- **Category**: Psychology / Economics / Tech / ...
- **Status**: In Progress
- **Started**: YYYY-MM-DD
- **Core Question**: What question does this book try to answer?
- **One-line Review**: (fill after finishing)
- 生成
study-plan.md:
# <Book Title> Study Plan
## Info
- **Title**: XXX
- **Author**: XXX
- **Total Chapters**: XX
- **Goal**: user's problem to solve
- **Timeline**: X weeks
- **Started**: YYYY-MM-DD
## Chapter Plan
| # | Chapter | Core Question | Status | Mastery | Date |
|---|---------|---------------|--------|---------|------|
| 1 | Chapter Name | What this chapter answers | Not Started | - | - |
### Status Legend
- Not Started
- Guided (pre-reading done, ready to read)
- Reading
- Ingested (compiled, pending test)
- Mastered (test passed)
- Needs Review (test failed)
## Current Position
- **Current Chapter**: Chapter X
- **Next Action**: guide / read / ingest / test / review
- 生成
mastery-map.md:
# <Book Title> Mastery Map
## Concepts
| Concept | Chapter | Status | Last Tested | Next Review |
|---------|---------|--------|-------------|-------------|
| (auto-populated on ingest) | | | | |
## Models
| Model | Chapter | Status | Last Tested | Next Review |
|-------|---------|--------|-------------|-------------|
## Stats
- Total knowledge points: X
- Mastered: X (X%)
- Due for review: X
- Untested: X
阶段 1:阅读前指南(每章阅读前)
目的:激活已有知识,设定阅读问题。
- 阅读
study-plan.md,确认当前章节 - 按照以下原则设计 2-3 个阅读前问题:
- 联系用户目标:回扣用户在阶段 0 中提出的问题
- 激活前面章节的知识:提及已掌握的概念(“上一章你学了 [X]——你觉得它与本章主题有什么关系?”)
- 探究直觉:询问用户预期作者会提出什么论点,让他们带着待验证的假设阅读
- 保持具体:不要问“你怎么看 XX?”,而要问“如果你必须解决[具体场景],你现在会怎么做?”
- 呈现问题,然后让用户开始阅读
- 将
study-plan.md中的状态更新为“已指导”
如果用户是完全的初学者(在阶段 0 中判定),在让其开始阅读前,先通过简短的苏格拉底式热身讲解基础概念。
阶段 2:阅读 + 编纂(摄取)
用户读完一章回来后:
- 接收用户输入(笔记、口头总结、重点摘录、原始文本)
- 执行摄取(参见下文“知识编纂”部分)
- 将
study-plan.md中的状态更新为“已摄取” - 使用新的知识点更新
mastery-map.md(状态:未测试) - 汇报编纂结果,并询问用户是否准备好接受测试
阶段 3:掌握度测试
通过苏格拉底式提问测试对章节内容的掌握程度。
- 从本章的
mastery-map.md中提取知识点列表 - 每轮测试 1–2 个问题:
- 概念:你能用自己的话解释吗?能举个例子吗?
- 模型:你能列出步骤吗?能判断何时使用它吗?
- 案例:你能说出结论吗?能分析其局限性吗?
- 绝不直接给出答案——引导用户思考
- 交错提问:每 3–4 个问题,插入一个将先前已掌握的概念与当前概念结合起来的问题。不要宣布这是复习,而要自然地融入其中。
- 使用 4 项标准评分量表为每个知识点打分:
- 准确(1 分):事实或逻辑正确
- 解释(1 分):能阐述 为什么,而不只是 是什么
- 应用(1 分):能在新情境中运用
- 辨析(1 分):能与相关概念区分开来
- 揭晓前先自我评估:请用户评估自己的信心程度(扎实 / 基本掌握 / 不太确定 / 完全不会),然后将其与评分量表得分进行比较。如果用户自我评估较高,但量表得分较低,则指出其可能存在流畅性错觉。
- 掌握度门槛:每题至少 3/4,且总分至少达到 80%
- 达标 → 进入练习阶段
- 未达标 → 针对薄弱点进行补救,并安排重新测试
- 更新
mastery-map.md
→ 加载 references/pedagogy.md,了解苏格拉底式提问技巧、交错练习模式、误解处理方法和掌握度评分量表详情。
阶段 3b:练习阶段(标记为已掌握前必须完成)
理解 ≠ 能力。通过掌握度测试后,用户必须运用所学知识完成任务。
适用于书籍的练习任务类型:
- “举一个我们尚未讨论过的 [concept] 的真实案例。”
- “解释 [concept] 如何应用于你在阶段 0 中想解决的问题。”
- “如果要就 [scenario] 给朋友提建议,你会如何应用 [model]?”
- “结合你自己的经历,比较 [concept A] 和 [concept B]。”
任务应简短(2–5 分钟)。通过/未通过:
- 通过 → 标记为“已掌握”,将
Last Tested设为今天,将Next Review设为 +1 天,然后继续 - 未通过 → 判断知识缺口(概念理解还是应用),提供更简单的练习任务,或返回阶段 3
阶段 4:间隔重复
用户再次运行 /book-study <book-name> 时:
- 检查
mastery-map.md,找出到期需要复习的知识点 - 如有到期项 → 先复习,再继续
- 复习:随机选择到期项,对每项进行苏格拉底式提问(每项 1 个问题)
- 复习间隔:
- 第 1 次:1 天
- 第 2 次:3 天
- 第 3 次:7 天
- 第 4 次:14 天
- 第 5 次:30 天
- 之后:每 60 天
- 通过 → 延长间隔;未通过 → 重置为 1 天
阶段 5:完成书籍学习
所有章节都标记为“已掌握”后:
- 生成全书总结:
- 本书回答了什么问题
- 5 个重要概念/模型
- 对用户最初问题的回答(呼应阶段 0)
- 与读过的其他书籍之间的联系
- 将
meta.md状态更新为“已完成” - 询问用户:想写书评吗?
状态恢复
每次运行 /book-study <book-name> 时:
- 读取
study-plan.md→ 确定上次学到哪里 - 读取
mastery-map.md→ 确定哪些内容已掌握、哪些需要复习 - 对照当前日期和下次复习日期 → 决定先复习还是学习新章节
- 输出当前状态和建议的下一步
知识整理(摄取)
输入模式
- 粘贴文本:章节内容、阅读笔记、重点摘录
- 文件路径:PDF、txt、md
- 口头总结:用户用自己的话总结,AI 帮助整理
- 混合:原文 + 用户注释
实体提取
从输入中提取:
- 概念(
concepts/):核心术语、理论、观点 - 案例(
cases/):实验、故事、数据、现实案例 - 模型(
models/):框架、方法论、心智模型 - 引述(
quotes/):值得关注的原文引述 - 问题(
questions/):疑问、延伸思考、与现有知识的冲突
→ 加载 references/page-templates.md 查看所有页面模板。
交叉引用更新
每次摄取后:
- 检查其他书籍的知识库中是否出现了新概念
- 如果多个书籍共享某个概念 → 在
cross-book/concepts/中创建或更新汇总页面 - 更新所有相关页面的“相关”部分
摄取后记录
- 更新
book-wiki/index.md - 附加到
book-wiki/log.md:
## YYYY-MM-DD: Ingest <Book Title> Chapter X
**Input type**: chapter text / reading notes / verbal summary
**New pages**: list
**Updated pages**: list
**New cross-references**: list
**New questions**: list
- 汇报:新增页面、已更新页面、新增交叉引用、新增问题
知识查询
概念查找(默认)
搜索所有书籍的 concepts/、models/ 和 cross-book/concepts/ → 综合整理答案并注明来源 → 列出相关概念 → 提醒相关的未解决问题。
跨书对比
查找各书籍中的相关页面 → 提取观点、证据和框架 → 用表格对比 → 总结共识与分歧。
主题总结
搜索所有相关概念、模型和案例 → 按逻辑(而非按书籍)整理 → 注明来源。
问题追踪
扫描所有 questions/ 目录 → 按状态(未解决 / 已解决)分类 → 检查后续摄取是否解答了其中的问题 → 建议后续步骤。
阅读状态概览
读取 book-wiki/index.md → 统计每本书的情况(进度、页面数量)→ 交叉引用密度 → 提供建议。
搜索优先级
- 精确匹配:页面标题
- 概念匹配:一句话定义
- 全文搜索:详细内容部分
- 关联搜索:交叉引用
- 跨书搜索:
cross-book/
回复原则
- 优先引用用户自己的理解(“我的理解”部分),而非原文
- 如果用户的理解与原文不一致,应温和指出
- 回答后,建议进一步探索 2–3 个相关概念
- 如果知识库中没有相关内容,应如实说明,并建议摄取相关章节
- 切勿编造知识库中不存在的内容
指南
学习流程
- 不要跳过预读指南——它对于激活已有知识至关重要
- 掌握度测试必须严格:“我懂了”不算,要追问示例和应用
- 间隔重复是长期记忆的核心机制——用户回来时务必检查
- 尊重用户的节奏:如果用户今天不想测试,就只进行摄取
- 如果用户对某个概念特别好奇,应通过苏格拉底式提问鼓励深入探索——这比严格按照章节顺序推进更有价值
- 掌握优先于速度
知识整理
- 先检查
book-wiki/,避免创建重复页面 - 一句话定义必须用用户自己的话表达(费曼原则),不能照抄书中内容
- 如果用户尚未提供自己的想法,就将“我的理解”和“我的收获”部分留作占位内容,并提醒用户之后补充
- 引述保留原文,并注明页码
- 问题是这个系统的灵魂——鼓励用户提出问题。没有问题,就不算真正阅读
知识查询
- 查询前先阅读
book-wiki/index.md - 尊重知识库中的用户个人反思——不要轻率否定
- 在复习模式下,先提问,等用户回答后再揭示答案
- 如果知识库页面彼此矛盾,应主动指出