ESC
开源 2 分钟阅读

book-to-skill:将任意技术书PDF转化为Claude Code技能——边工作边学习、参考和使用

book-to-skill是一款开源工具,可将技术书籍、文档或资料集转换为结构化的AI代理技能(Skill),支持GitHub Copilot CLI、Amp和Claude Code。它通过提取框架、决策规则、反模式及按章节拆分文件,让代理按需加载,节省24至51倍Token,避免幻觉。无需复制全文,本地处理保护隐私,兼容PDF、EPUB、DOCX等多种格式,采用MIT许可证。

来源:GitHub日榜

book-to-skill logo

book-to-skill

将任何技术书籍、文档文件夹或资料集合转化为统一的代理技能(Skill)——在GitHub Copilot CLI、Amp或Claude Code中边工作边学习、参考和使用。

最新版本 代理技能标准 支持格式 MIT许可证 赞助

virgiliojr94%2Fbook-to-skill | Trendshift virgiliojr94%2Fbook-to-skill | Trendshift (每日,Python)

为什么 · 生成内容 · 超越书籍 · 工作原理 · 使用方法 · 安装 · 常见问题 · 性能 · 架构 · 更新日志

与将整本书倒入上下文相比,Token消耗减少24倍至51倍,针对真实书籍测量(测量方法)。

工作原理,只需3步:

  1. 指定文件、文件夹或通配符——/book-to-skill ./my-book.pdf
  2. 提炼——工具将书籍提炼为技能——框架、决策规则、反模式以及按章节拆分文件。提取结构,而非摘要。
  3. 按需加载——输入/my-book replication,代理读取相应章节,基于真实内容回答,不会产生幻觉。

🤔 为什么

Booklin——book-to-skill的吉祥物,一只拿着书的紫色巫师

你买了一本很棒的技术书。读了一遍。三个月后,你已经不记得第7章的存在。

常见的变通方法并不能解决问题:

  • 📄 “让我搜一下PDF” → 得到的是一堆页码,而不是答案
  • 🧠 “我会问代理关于这本书的事” → 要么幻觉,要么说没有内容
  • 📝 “我边读边做笔记” → 最终得到一个200行的文档,再也不打开

book-to-skill通过将书籍转化为结构化技能,让代理按需加载来解决这个问题。

安装后,只要输入/your-book-slug replication,代理就会读取正确章节并从真实内容中回答。没有幻觉,无需翻阅PDF。书籍成为你工作流程的一部分。

支持任何遵循开放Agent Skills标准的主机——GitHub Copilot CLI、Amp和Claude Code都读取相同的SKILL.md格式。


📦 生成内容

运行/book-to-skill your-book.pdf(或文件夹、通配符或文件列表)会在代理的技能目录中创建一个完整技能(Copilot CLI为~/.copilot/skills/<slug>/,Amp或跨代理为~/.agents/skills/<slug>/,Claude Code为~/.claude/skills/<slug>/):

文件用途大小
SKILL.md核心思维模型 + 章节索引约4,000 tokens
chapters/ch01-*.md …每章一个文件,按需加载每文件约1,000 tokens
glossary.md所有关键术语,按字母排序并附章节引用约1,500 tokens
patterns.md所有技术、算法和设计模式约2,000 tokens
cheatsheet.md决策表和快速参考规则约1,000 tokens

章节文件按需加载——在你询问该主题之前,它们不计入技能预算。


🏢 超越书籍

名字说的是“书”,但输入可以是任何结构化文字。同样适用于你拥有并经常重读的知识:

  • 内部文档——架构决策记录、操作手册、入职指南。将整个docs/文件夹折叠进一个技能,编码时随时提问。
  • 品牌与设计系统——语音指南、语气文档、组件原理。将品牌手册转化为团队查询的技能,而不是翻阅60页PDF。
  • 研究集群——一堆论文加上你自己的笔记,合并成一个统一技能,并随着新材料出现而更新(参见更新/融入)。
  • 规范与标准——RFC、API契约、合规文档,你参考但从不背诵。

如果你经常重看某个文档,以至于希望自己能记住它,那它就是合适的候选对象。


🧾 发现循环税(Discovery Loop Tax)

一个PDF阅读代理不只是阅读——它还要导航:每一轮都要重新获取目录、回溯、重新处理所有内容。book-to-skill只在转换时支付一次这种结构化成本,因此查询会与答案成正比——与将整本书倒入上下文相比,Token消耗减少24倍至51倍,基于真实书籍实测。

📊 完整方法、数字和每本书的表格 → docs/PERFORMANCE.md


⚙️ 工作原理

两个部分:一个确定性的Python提取器(文档 → 干净文本 + 元数据)和一个规范驱动的生成器(你的代理遵循SKILL.md将其转化为结构化技能)。按需加载章节文件可保持已加载技能精简。

🔧 完整指南(步骤0-10,提取模式,Token预算)→ docs/HOW_IT_WORKS.md


🚀 使用方法

/book-to-skill <路径|文件夹|通配符> [技能名称]——另有仅分析、从分析生成、以及更新/融入模式。

▶️ 所有模式和示例 → docs/USAGE.md


📥 安装

# 代理技能(注册 /book-to-skill)——克隆到你的技能文件夹:
git clone https://github.com/virgiliojr94/book-to-skill.git ~/.claude/skills/book-to-skill
# (Copilot CLI: ~/.copilot/skills/ · Amp/跨代理: ~/.agents/skills/)

📥 所有主机、可选提取器以及独立CLI → docs/INSTALL.md


❓ 常见问题

常见问题——“为什么不直接倾倒PDF?”,成本、隐私、非书籍输入、多文件书籍。

❓ 答案 → docs/FAQ.md


🔧 系统要求

提取器按格式依次尝试工具,并使用第一个可用的。如果什么都没安装,会告诉你需要运行哪条命令。纯文本、Markdown、reStructuredText和AsciiDoc不需要额外依赖。

一条命令检查你的环境: python3 scripts/extract.py --check 会打印每种格式已安装的提取器,以及安装缺失项的确切命令——无需文件。

PDF——根据书籍类型选择:

书籍类型工具安装速度
文本为主(散文,少表格)pdftotext (poppler)sudo apt install poppler-utils⚡ 即时
文本为主后备pypdfpip3 install pypdf⚡ 即时
文本为主后备pdfminer.sixpip3 install pdfminer.six⚡ 即时
技术类(代码、表格、公式)doclingpip3 install docling约1.5秒/页

在提取开始前,技能会询问书籍是技术类还是文本为主,并自动选择正确的工具。Docling保留Markdown表格和代码块;pdftotext对于纯散文类书籍更快。

EPUB:

工具安装质量
ebooklib + beautifulsoup4pip3 install ebooklib beautifulsoup4⭐⭐⭐ 最佳
标准库 zipfile内置——无需安装⭐⭐ 始终可用

其他格式:

格式工具安装
DOCXpython-docx(后备:标准库ZIP/XML)pip3 install python-docx
HTMLbeautifulsoup4(后备:标准库html.parser)pip3 install beautifulsoup4
RTFstriprtf(后备:正则)pip3 install striprtf
MOBI / AZW / AZW3Calibre ebook-convert(外部应用,非pip)https://calibre-ebook.com/download
TXT / Markdown / reStructuredText / AsciiDoc内置—

📁 仓库结构
book-to-skill/
├── SKILL.md              # 技能定义 + 逐步指令(生成器规范)
├── scripts/
│   ├── extract.py        # 精简入口包装器
│   └── extractor/        # 模块化提取包
│       ├── config.py     # 扩展名、路径、依赖常量
│       ├── dependencies.py  # 可选依赖探测 + --check
│       ├── exceptions.py # ExtractionError(单源失败,批量安全)
│       ├── utils.py      # CLI解析、多源解析、章节检测、运行器
│       └── parsers/      # 格式专用解析器(pdf、epub、docx、html、rtf、calibre、text)
├── tools/
│   ├── discovery_tax.py  # 测量Token成本 vs 上下文倾倒/发现循环
│   └── validate_skill.py # 根据主机规则检查生成的SKILL.md(--lens claude|copilot|amp)
├── tests/                # pytest测试套件(提取、检测、发现税)
├── docs/
│   ├── PERFORMANCE.md    # 实测基准、发现税、成本
│   └── ARCHITECTURE.md   # 流水线 + 组件图
├── CHANGELOG.md          # 发布历史(语义化版本)
├── CONTRIBUTING.md       # 开发设置、PR约定、发布流程
├── SECURITY.md           # 漏洞报告
└── README.md             # 本文件


⚖️ 版权与合理使用

book-to-skill不包含任何书籍内容——连一页都没有。它只是一个转换器,指向你已拥有的文件。

  • 处理在本机进行。 提取和分析在你的机器上运行。本工具绝不会上传你的文件。(如果你的代理模型在云端运行,你输入的文本遵循该提供商正常的数据条款——与任何提示相同。)
  • 使用你自己的副本。 携带你购买的书、你公司拥有的文档,或你有权阅读的论文。
  • 输出就是你的笔记。 生成的技能是结构化、综合的衍生内容——框架名称、定义、要点——而非文本的复制。该技能明确从不复制原始段落(见质量规则#7)。将其视为手写学习笔记:属于你,供个人使用。
  • 不要重新分发。 发布或分享受版权保护作品的生成技能可能侵犯权利持有人的权益。保持第三方书籍的技能私密。内部文档、你自己的写作和开放许可材料在许可范围内可以分享。

如有疑问,请遵循源文档的许可证或条款。这个项目是一个工具;如何使用由你自己负责。


💖 赞助者

Booklin庆祝中

book-to-skill是免费且MIT许可的,在个人时间维护。如果它为你节省了Token或学习时间,请考虑赞助其维护:PR审查、多语言修复、发布和文档。

成为赞助者 → github.com/sponsors/virgiliojr94

每位赞助者都会列在BACKERS.md中。感谢你让开放、隐私至上的工具保持活力。✨

许可证

MIT——适用于本仓库中的转换器(代码 + 技能定义),不适用于你用它处理的任何书籍或文档。

Star历史

Star历史图表