mcpField
R
read-book

read-book

github.com/coreyhaines31生产力875414 次安装6 天前更新
代码仓库

关于 read-book

read-book 是从书籍和长篇 PDF 中提取结构化笔记的技能,支持按章节或文本块处理内容,并生成摘要、引文或学习卡片。适合阅读研究、决策和知识整理,并可选择将笔记存入 second-brain。

主要功能

  1. 01读取 PDF、EPUB、MOBI、Markdown 和文本
  2. 02按章节或文本块分段处理
  3. 03生成笔记、摘要、引文或问答卡片
  4. 04汇总为带元数据的笔记文件
  5. 05可选择保存到 second-brain

适用场景

  1. 01提炼长篇书籍的章节要点
  2. 02为复习制作间隔重复问答卡
  3. 03收集带章节背景的书籍引文
  4. 04将书籍笔记整理进 second-brain

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/coreyhaines31/makerskills --skill read-book

安装后在 Claude Code 中输入/read-book确认已加载。

附带文件references/output-modes.mdreferences/sources.md

详细介绍

/read-book — 从书籍和长篇 PDF 中提取结构化笔记

与 watch-video 并列。采用相同的内容处理模式:导入 → 分块 → 提取 → 可选保存到第二大脑。

步骤 1 — 解析输入

接受:

  • PDF:文件路径(Claude 可通过 Read pages:"X-Y" 原生分块读取 PDF)
  • EPUB / MOBI:文件路径(需要 pandoc 或 ebook-convert 提取内容——参见 references/sources.md)
  • Markdown / .txt:文件路径(直接读取)
  • 粘贴的文本:直接使用粘贴的内容
  • 指向公有领域文本的 URL:使用 Agent 的 URL 获取工具或 curl 获取内容(Project Gutenberg、archive.org 等)

根据文件扩展名检测类型。如果无法确定,请询问。

步骤 2 — 解析模式

调用方式模式获取内容
/read-book <input>notes(默认)按章节整理:TL;DR + 核心概念 + 引文 + 行动项 + 框架
/read-book <input> summarysummary全书 TL;DR(1 段)+ 3–5 个核心要点 + 适合哪些读者
/read-book <input> quotesquotes仅提取重点引文,并附章节背景和页码
/read-book <input> studystudy笔记模式 + 10–20 张间隔重复问答卡片

如果书籍较长(>200 页)且未指定模式,则默认使用 notes,但要提醒用户这会需要多次调用工具。

步骤 3 — 获取文本并分块

各来源的导入方式参见 references/sources.md。此步骤的输出:文本内容 + 分块计划。

分块策略(混合使用,按优先级排序):

  1. 按章节(如果存在目录;带书签的 PDF、通过 pandoc 转换后保留章节标题的 EPUB/MOBI)

    • 对于 PDF,使用 pdfinfo <pdf> | grep "Pages" 获取页数
    • 使用 pdftotext -layout <pdf> | grep -i "^chapter\|^part" 检测章节,或读取第 1–5 页的目录
    • EPUB:执行 pandoc <epub> -o tmp.md 后,各分块位于 # Chapter X 标题之间
  2. 按页数(对于没有目录的 PDF):每块 50 页

  3. 按字符数(对于文本/markdown):每块 30,000 个字符(约 7,500 个单词)

将分块计划保存为 ~/Documents/books/<author>-<title-slug>-<YYYY-MM-DD>/chunks.json:

{
  "source": "<path>",
  "title": "<book title>",
  "author": "<author>",
  "type": "pdf",
  "total_pages": 287,
  "chunking": "by-chapter",
  "chunks": [
    {"i": 0, "label": "Introduction", "pages": "1-12"},
    {"i": 1, "label": "Chapter 1: The Problem", "pages": "13-32"},
    ...
  ]
}

步骤 4 — 读取每个分块

循环执行:

  1. 读取第 N 个分块(PDF 使用 Read 工具并指定 pages:;文本/MD 读取整个文件)
  2. 按所选模式提取内容(模板参见 references/output-modes.md)
  3. 将该分块的笔记追加到 ~/Documents/books/<workdir>/notes-<NNN>-<label-slug>.md

对于 PDF,不要一次调用就读取整本书——Claude 的 PDF 工具最多只能处理约 10 页。请逐个处理分块。

如果某个分块未能提取出有用内容(例如,主要是图表或前置内容),请记录跳过原因并继续。

步骤 5 — 汇总到最终笔记文件

将所有分块笔记合并到单个 ~/Documents/books/<workdir>/notes.md 文件中,并匹配所选模式的全书模板(参见 references/output-modes.md)。

文件顶部始终包含元数据块和兼容第二大脑的 frontmatter:

source: <file path or URL>
captured: YYYY-MM-DD
type: book
book_title: <title>
author: <author>
mode: notes
chunks: <count>
chunking: <strategy>

# <title> by <author>

## TL;DR
<2–3 sentences>

## Key takeaways
1. ...

## Chapter notes
...

## Cross-references (suggested for wiki)
- Could connect to [[Longevity Biomarkers]] (per Chapter 3 discussion of biomarkers)
- Could connect to [[Productivity & Systems]] (per Chapter 7 framework)

交叉引用建议仅供参考——这些建议供 /sb compile 处理,不会自动应用。请保持职责分离。

步骤 6 — 提议保存到第二大脑

询问:

"要将这些内容保存到第二大脑吗?我会将其写入 ${SECOND_BRAIN_VAULT:-$HOME/Documents/SecondBrain}/raw/highlights-<slug>.md,并匹配你的知识库中的 highlights- 类型前缀。"

默认是询问,绝不自动写入。如果用户同意:

  1. 将最终的 notes.md(顶部带有兼容第二大脑的 frontmatter)复制到 ${SECOND_BRAIN_VAULT:-$HOME/Documents/SecondBrain}/raw/highlights-<slug>.md
  2. 告知用户文件路径
  3. 建议:"稍后运行 /sb compile,将其合并到 wiki 页面中——页脚中的交叉引用建议可作为起点。"

如果用户跳过保存,工作目录中仍会保留所有内容——之后可以自行获取文件。

步骤 7 — 报告

在聊天中:

  • 单行标题:<title> · <author> · <total_pages or word count> · <mode> · <chunks processed>
  • 工作目录路径
  • TL;DR 部分
  • 对于 notes / study 模式:简要列出 3 个最重要的收获
  • 对于 quotes 模式:列出 3 条最佳引文
  • 如果已保存到第二大脑:也提供该路径

模式(快速调用)

调用模式行为
/read-book <input>notes完整流程,默认模式
/read-book <input> summarysummary仅生成 TL;DR 和关键收获(短书读一遍,长书抽取部分章节)
/read-book <input> quotesquotes按章节处理,但只输出引文
/read-book <input> studystudy笔记 + 间隔重复问答卡片
/read-book <input> --capture(any)跳过询问步骤,自动写入第二大脑的 raw/
/read-book <input> --render pdf(any)还通过 pandoc 将最终的 notes.md 渲染为 PDF(使用 ~/.local/share/makerskills/render.css)。参见 references/output-modes.md。
/read-book <input> --render html(any)同上,但渲染为 HTML

可组合使用

  • second-brain — 主要集成:将 highlights-<slug>.md 写入 raw/。然后 /sb compile 将其合并到维基页面中。
  • deep-research — 当研究问题涉及某本书时,下一步使用 /read-book。笔记会反馈到研究简报中。
  • business-brainstorm — 评估某个想法时(例如,研究采用类似模式的商业书籍),read-book 会提供结构化证据。
  • decide — 当决策取决于某位权威人士的著述时(例如“我该接受风险投资吗?”→ 阅读 Naval / Jason Cohen),read-book 会提取相关章节。
  • slide-deck — 书籍要点 → 演讲材料(书籍演讲模式)。
  • watch-video — 同类技能,采用相同的内容消费模式。有声书?使用 watch-video transcript 模式。
  • nonfictionskills / fictionskills — 研究写书时,此技能会阅读竞品书目。

错误处理

失败情况响应
EPUB/MOBI 文件缺少 pandoc / ebook-convert告知用户:brew install pandoc 或 brew install calibre(calibre 包含 ebook-convert)
PDF 是扫描件(没有文本层)建议先进行 OCR:brew install ocrmypdf && ocrmypdf <pdf> <pdf-ocr.pdf>
PDF 没有可检测到的目录改为按每 50 页分块。并在元数据中注明。
书籍异常长(>500 页)提醒用户成本 / 时间,询问是否要改用摘要模式,而不是完整笔记
分块提取结果为空跳过该块,记录日志并继续。不要让整个流程失败。

质量说明

  • 不要总结到面目全非。 30 页的章节应生成 8–15 行笔记,而不是 3 行。压缩是好事;扁平化则不然。
  • 保留具体信息。 姓名、数字、日期、引文——都要保留。这样以后用户才能搜索“Andy Wilkinson 对 X 说了什么”并找到内容。
  • 引文至关重要。 标记引文时,必须逐字照录。尽可能注明页码。
  • 明确列出行动项。 如果读书时想到“我应该做 X”,就明确标记出来。这是最具价值的输出。
  • 框架应单独列出。 作者为某个框架命名时(例如“9 维筛选器”“Save the Cat 节拍”),要在笔记中点明其名称。

评论

支持 Markdown