← 返回主题列表
小凯
@C3P0 · 2026年06月20日 14:51 · 2浏览

book-to-skill:让吃灰的技术书变成 Claude Code 的私人顾问

> 你买了本《Designing Data-Intensive Applications》,读完就忘。三个月后遇到分布式系统问题,想翻书找答案——PDF 搜索给一堆页码,问 AI 它要么幻觉要么说没读过。book-to-skill 的解决方案是:把书编译成 Skill。一次提取,终身受用。400 页的书变成 4000 token 的核心模型 + 按需加载的章节文件,Claude Code 里敲 /ddia replication 它就替你翻书作答。GitHub 6000+ Star,Agent Skills 标准兼容,MIT 协议。

---

一、问题:技术书为什么总是吃灰?

买了书 → 读了一遍 → 记了笔记 → 三个月后忘光 → 遇到问题时翻 PDF 找不到 → 问 AI 它胡说八道。

这个循环的问题在于:

PDF 搜索:给页码,不给答案。你需要自己读完一页再一页才能定位到有用信息。

直接问 AI:Claude/GPT 对流行书有泛泛了解,但具体章节、准确引用、框架名称经常 hallucinate。它说的是"网上讨论版本"的书,不是你买的那个版本。

自己做笔记:200 行的文档你不会再打开。没有结构,没有索引,没有和 AI 工作流的集成。

book-to-skill 的作者 Virgilio 精准描述了这个痛点:"You buy a great technical book. You read it once. Three months later you can't remember chapter 7 existed."

---

二、book-to-skill 是什么?一句话定位

> 一个将 PDF/EPUB/DOCX 等技术书籍编译成 AI Agent Skill 的开源工具。一次提取运行,生成结构化的 SKILL.md + 章节摘要 + 术语表 + 模式清单 + 速查表。后续在 Claude Code、GitHub Copilot CLI、Amp 中通过 /书名 调用,只加载相关章节,不浪费 token。

GitHub: https://github.com/virgiliojr94/book-to-skill Stars: 6000+(快速增长中) License: MIT 标准: Agent Skills 开放标准(兼容 Claude Code / Copilot CLI / Amp)

---

三、输出结构:一本书变成什么?

运行 /book-to-skill ~/books/ddia.pdf 后,生成:

文件内容大小
SKILL.md核心心智模型 + 章节目录~4000 tokens
**chapters/ch01-*.md每章摘要(按需加载)~1000 tokens/章
glossary.md关键术语,按字母排序,带章节引用~1500 tokens
patterns.md技术、算法、设计模式汇总~2000 tokens
cheatsheet.md决策表和速查规则~1000 tokens
关键设计:章节文件按需加载。不问你问题时,它们不占 token 预算。问了才读相关章节。

---

四、工作流:从 PDF 到 Skill

用户: /book-to-skill ~/books/ddia.pdf

1. 提取文本(根据书籍类型选择工具)
   - 技术书(代码、表格、公式)→ Docling(保留 markdown 表格和代码块)
   - 文字书(散文为主)→ pdftotext(秒级)

2. Claude 分析结构
   - 提取书名、作者、章节、目录

3. 生成每章摘要(800-1200 tokens/章)
   - 技术书额外包含:代码示例 + 参考表

4. 生成术语表、模式清单、速查表

5. 生成主 SKILL.md(核心心智模型)

6. 写入 Skill 目录
   ~/.claude/skills/ddia/
   ~/.copilot/skills/ddia/
   ~/.agents/skills/ddia/

成本:一本 400 页的书,提取一次约 $1(Claude Sonnet 4.5)。比每次对话都读 PDF 便宜得多。

书籍页数Tokens章节~成本
Think Python 2244119K19$0.88
Working Backwards371175K10$0.96
Pro Git501229K-$1.23
---

五、为什么不用 RAG?不用上下文窗口直接加载?

5.1 vs RAG

维度RAGbook-to-skill
工作时机查询时实时检索编译时一次性提取
输出相似文本块作者的框架、心智模型、反模式
适用场景图书馆式"找提及X的部分"深度掌握一本书的框架
比喻索引一个书架精通一本书的脊
RAG 说:"Here are chunks close to your query." Skill 说:"Here are the 12 frameworks this author built, ready to reason with."

5.2 vs 直接加载 PDF 到上下文

"Claude 有 1M token 上下文了,直接塞进去不就行了?"

三个原因不成立:

1. 你按 token 付费。1M 窗口只是"能装",不是"免费"。Skill 加载几千 token,PDF 加载几十万。

2. Recall 随填充 degrades。模型在接近满的上下文中找特定事实会丢失精度("lost in the middle")。1000 token 精心整理的章节 > 200K 原始散文。

3. Window ≠ Structure。完整的书在上下文里仍是原始文本,模型每轮都要重新解析。Skill 提供预提取的框架——给模型的是推理材料,不是检索材料

5.3 vs NotebookLM

NotebookLM 擅长:"我有 80 本书,想跨书搜索"。

book-to-skill 擅长:"我深入学某本书,让它融入我的编码工作流"。

Skill 是代码编辑器的一部分,不是浏览器标签页。

---

六、发现循环税(Discovery Loop Tax)

这是论文级别的核心洞察。

问题:让 AI 读 PDF 回答一个具体问题,它不会直接翻到你需要的章节。它要: 1. 获取目录 2. 发现不认识的术语,拉更多页 3. 回溯验证 4. 每个 hop 都进入对话历史,每轮都重新处理

为了留在预算内,子 Agent 被迫以极高比例压缩读到的内容,返回主 Agent 一个它无法核实的降级摘要。

book-to-skill 的解法:在编译时一次性支付导航成本。运行时只加载常驻核心(~4000 tokens)+ 一个预编译章节(~1000 tokens)。没有发现循环,没有压缩到失真,原始提取文本存在本地磁盘可供验证。

实测对比(回答一个针对性问题):

书籍大小直接加载 PDF发现循环book-to-skillvs PDF / vs 循环
Think Python 2119K119,26412,152~5,00024× / 2.4×
Working Backwards175K175,25333,444~5,00035× / 6.7×
AI Engineering256K256,28777,866~5,00051× / 15.6×
上下文直接加载的成本每轮对话都重复。book-to-skill 提取一次,终身使用。

---

七、不只技术书:任何结构化文本都可以

  • 内部文档 — 架构决策记录、运维手册、入职指南。把整个 docs/ 文件夹变成一个 Skill,编码时随时问。
  • 品牌设计系统 — 语音指南、组件设计原则。把品牌书变成 Skill,团队查询而不是翻 60 页 PDF。
  • 研究集群 — 一叠论文 + 自己的笔记,合并成一个统一 Skill,新论文来时可增量更新。
  • 规范标准 — RFC、API 契约、合规文档。
更新机制/book-to-skill ~/new-paper.pdf ~/.claude/skills/project-knowledge 直接把新内容折叠进现有 Skill。

---

八、技术细节

8.1 支持的格式

PDF, EPUB, DOCX, TXT, Markdown, reStructuredText, AsciiDoc, HTML, RTF, MOBI/AZW/AZW3。

8.2 PDF 提取工具选择

工具安装速度适用场景
pdftotextapt install poppler-utils秒级文字为主
pypdfpip install pypdf秒级文字为主
doclingpip install docling~1.5s/页技术书(表格、代码、公式)
自动检测:工具问"技术书还是文字书?"然后选对应提取器。

8.3 代码结构

book-to-skill/
├── SKILL.md              # 技能定义 + 提取指令
├── scripts/
│   ├── extract.py        # 入口包装器
│   └── extractor/        # 模块化提取包
│       ├── parsers/      # 格式专用解析器
│       ├── config.py     # 扩展名、路径常量
│       └── dependencies.py  # 可选依赖探测
├── tools/
│   ├── discovery_tax.py  # 测量 token 成本
│   └── validate_skill.py # 验证 SKILL.md 合规性
├── tests/                # pytest 测试套件
└── docs/
    ├── PERFORMANCE.md    # 基准测试
    └── ARCHITECTURE.md   # 架构图

---

九、安装与使用

Claude Code:

git clone https://github.com/virgiliojr94/book-to-skill.git ~/.claude/skills/book-to-skill

然后任意 session:

/book-to-skill ~/path/to/your-book.pdf

使用示例:

/ddia                    # 加载核心心智模型
/ddia replication        # 查找并解释某个主题
/ddia ch05               # 深入第 5 章
/ddia "what chapters do you have?"

GitHub Copilot CLI:

git clone https://github.com/virgiliojr94/book-to-skill.git ~/.copilot/skills/book-to-skill
/skills reload

---

十、设计原则

1. Density over completeness — 1000 token 的摘要 > 10000 token 的摘录 2. Practitioner voice — "Use X when Y",不是 "The book explains X" 3. Front-loaded SKILL.md — 前 5000 tokens 放最重要的内容 4. On-demand chapters — 主题索引告诉 Claude 读哪个文件,需要时才加载 5. Never raw text — 总是合成、总结、提取信号,而不是复制原文

---

十一、版权与隐私

  • 处理本地运行。提取和分析在本地执行,文件不会上传。
  • 使用你自己的副本。买过的书、公司文档、有权阅读的论文。
  • 输出是你的笔记。生成的 Skill 是结构化衍生作品——框架名、定义、要点——不是原文复制。像手写笔记一样,属于个人使用。
  • 不要重新分发。发布或分享版权作品的 Skill 可能侵权。第三方书籍保持私有。内部文档、自己写的、开放许可的材料可以分享。
---

十二、一句话总结

book-to-skill 的核心洞察是:知识的载体(PDF)和知识的形态(可推理的框架)是两回事。把 400 页的书塞给 AI,你给的是检索材料;把书编译成 Skill,你给的是推理材料。前者让 AI 翻书,后者让 AI 用书。对于吃灰的技术书来说,这是一次从"拥有"到"会用"的转化。

---

参考信息**

  • 项目:book-to-skill
  • GitHub:https://github.com/virgiliojr94/book-to-skill
  • 作者:Virgilio(virgiliojr94)
  • License:MIT(工具本身,不适用于你处理的书籍内容)
  • 标准:Agent Skills 开放标准
  • 兼容:Claude Code / GitHub Copilot CLI / Amp
  • 支持格式:PDF, EPUB, DOCX, TXT, MD, RST, AsciiDoc, HTML, RTF, MOBI/AZW/AZW3
  • 核心创新:编译时提取框架 + 按需加载章节 + 发现循环税消除
  • 成本:~$1/书(一次提取),vs 每次对话加载 PDF($N/对话)
  • 提取性能:pdftotext 秒级(文字书),docling ~1.5s/页(技术书)
  • 发现循环税:vs 直接加载 PDF 24-51× 更省,vs 发现循环 2.4-15.6× 更省
---

*book-to-skill 让我想到一个更深层的问题:我们积累了太多"知识资产"——书籍、论文、文档、笔记——但它们大部分时间是沉睡的。不是因为没用,而是因为"提取成本"太高。翻书需要时间,搜索需要技巧,问 AI 需要幻觉验证。book-to-skill 的本质是降低知识激活的摩擦。它让我想到一个概念:"知识半衰期"。技术书的知识不会过期,但我们的记忆会。编译成 Skill 不是备份,而是让知识从"被动存储"变成"主动可用"。未来的个人知识管理可能不是收集更多,而是让已有的更容易被 AI 调用。吃灰的书不是废物,只是还没被编译。*

#book-to-skill #AI技能 #ClaudeCode #技术书 #知识管理 #AgentSkills #开源工具 #PDF转Skill #RAG #知识提取

👍 1
💬 讨论回复 (3)
✨步子哥 #1 2026-06-20 16:24

https://zhichai.net/htmlpages/book2skill.html

👍 1
✨步子哥 #2 2026-06-20 16:55

拿一份PDF做一个测试SKILL,问: 云计算是什么意思? 新生成的SKILL加持下,Agent回答: ====== 步子哥问了云计算。且以书中所言,分三层来解。

---

云计算者何?

此言简之——不以自有之物,而借他人之器,按需取用、随时伸缩,如水电之即开即来。 NIST 定义曰:通过互联网按需提供 IT 资源的服务模式。

其精要不在"云"字之上——而在交付方式之变。从前开公司欲建信息系统,须先购服务器、装空调、雇运维,此乃资本支出(CapEx);云上之后,改为运营支出(OpEx)——用多少付多少,不建机房、不养运维、不必先知一年后要用几台机器。

---

三层模型:比萨即服务

吾最爱以"比萨"为喻,一目了然:

汝管何物譬喻
IaaS基础设施即服务OS、中间件、应用、数据自购面粉芝士,下厨自制——最自由,也最费工夫
PaaS平台即服务仅管代码与数据配送半成品,入炉即熟——省事,但菜单由店家定
SaaS软件即服务几乎不管直接叫外卖——即开即用,定制空间最小
三层由下至上,控制递减而便利递增。IaaS(如 AWS EC2)最自由——你得自己装数据库、配安全、打补丁。SaaS(如飞书、Salesforce)最省心——开账号即用,但无法改底层逻辑。PaaS(如 Heroku)居中——给了你一套预配置的"厨房",只负责上菜。

---

四种部署:数据敏感性决定落脚之地

  • Public Cloud:多租户共享,按用量计费——如 AWS/Azure/GCP。适合对合规无严苛要求的通用负载。
  • Private Cloud:独享一片天——可自建机房,亦可托管于第三方。贵,但数据自己管。
  • Hybrid Cloud公私有云互通——敏感数据留本地私有云,弹性计算上公有云。今日企业之主流选择。
  • Community Cloud:同行业数家共享,分担合规成本——如数家银行共建一个满足 PCI DSS 的金融云。
选型铁律:数据越敏感、合规要求越高,越倾向私有或混合。

---

上云非搬家,乃再造

误区之一,以为云端迁移就是"把服务器复制粘贴上去"。实则不然——

云端迁移七步法: 1. 盘点待迁移资产 2. 盘点软件许可 3. 确认许可可迁移 4. 建测试环境 5. 选迁移工具 6. 试迁移(此步万万不可省!) 7. 正式迁移

为何第六步是铁律?盖因试迁移是唯一能以真实数据验证"能不能迁、迁后对不对"的手段——网络带宽、数据完整性、应用性能,不上真刀真枪便无从知晓。

---

安全之辨:云商护云,汝护云中

最常见之误区——"上了云就安全了"。

责任共担模型(Shared Responsibility Model) 是一切云安全的起点:云商负责"云之安全"(物理机房、网络基础设施、虚拟化层),你负责"云中之安全"(操作系统配置、应用安全、身份管理、加密密钥、数据备份)。IaaS 下你管的更多,SaaS 下云商管的更多——但无论如何,你总有自己那一半责任

---

一句话总括

> 云计算者,非将机房搬至他处,乃将 IT 能力化为按需取用之服务——控制与便利之间、安全与弹性之间,处处是权衡,处处需决断。上云宜缓不宜急,试迁移在先,合规在先,读懂 SLA 在先。

暂无表态
✨步子哥 #3 2026-06-20 17:11

---

name: book-to-skill description: "将典籍与文书(PDF、EPUB、DOCX、HTML、Markdown、纯文、RTF,及藉Calibre之MOBI/AZW)化作结构化代理技能,抽取框架、心智模型、原则、技法与反模式。凡欲藉GitHub Copilot CLI、Amp或Claude Code研读一文,应用作者之框架于实务,或自文件筑可复用知识库者,皆可用之。"

---

book-to-skill 转换器

化书写之知为代理可行之技——抽其结构,非撮要成篇。

理念

书者,岁积月累之智晶也。其框架、原则、技艺,非一朝可得。此术非撮要成篇,乃化其结构为代理可反复调用之利器。

抽结构,非撮要。 技能非书评,乃一 toolkit 也,内含:

  • 已名之框架(心智模型,应用情境清晰)
  • 可行之原则(导决策之规)
  • 技法(步步之法)
  • 反模式(当避者与所以)
  • 声调校准(作者思与言之道)
存作者之精微。 框架之名,往往有故。“五问法”不可与“多问何故”互换。须录其确切之式。

层深适度。 简书出简技。繁书具十余框架者,则技能附参考档与按需章节。

---

运作模式

有四途可循,视君所求而定。

1. 完全转换(默认)

触发: 君提供一个或多个文档/目录/glob 路径,且无特别指示。 动作: 运行以下全部步骤(Step 0–9)。 输出: 完整技能,含 SKILL.md、chapters/、glossary、patterns、cheatsheet。

2. 仅分析

触发: 君言“analyze”“just extract”或“我欲先审再生成”。 动作: 运行 Step 0–3,产出结构化抽取报告(框架、原则、技法)。止步,不生成技能文件。 输出: 分析报告,供君审阅。

3. 依前分析生成

触发: 君已有分析笔记,或曾运行“仅分析”。 动作: 跳过 Step 0–3,以君提供之分析为输入,运行 Step 4–9。 输出: 依分析生成之技能文件。

4. 更新 / 折入(既有技能)

触发: 君提供新源路径,并指明欲更新既有技能(或指向既有技能文件夹,或给已存在之 slug,或明确要求更新)。 动作: 运行 Step 0(范围检查)、Step 1(验证输入)、Step 1.5(辨内容类型)、Step 2(抽取新文件)。然后跳至 Step 5(识别既有技能路径),执行更新 / 折入流程,将新内容并入既有技能文件。 输出: 更新后之既有技能,新/修订章摘要与合并索引/术语表。

---

技能存放处

此转换器可运行于多处技能系统。寻其辅助脚本或写生成之书技能时,优先以下位置:

1. GitHub Copilot CLI 个人技能:~/.copilot/skills/ 2. 跨代理个人技能(Copilot + Amp):~/.agents/skills/ 3. Claude Code 个人技能:~/.claude/skills/ 4. 项目本地 Copilot 技能:.github/skills/ 5. 项目本地 Claude 技能:.claude/skills/ 6. 项目本地 Amp / Copilot 技能:.agents/skills/ 7. Amp 全局技能:~/.config/agents/skills/ 8. Amp 旧版全局技能:~/.config/amp/skills/

生成之书技能,择君之主机代理实能发现之目的地(见 Step 5)。若有多处有效根目录存在,问君一次,记住本次会话之答,不默默认值。

---

Step 0 — 范围检查

若无参数,止步并应:

> "book-to-skill 需一受支持之文档路径、文件夹或 glob 模式。用法:book-to-skill <文档文件夹或glob路径>... [技能slug]"

全程:

  • 识输入路径与可选技能 slug。
  • 若末参数非文件、文件夹或匹配文件之 glob,且形似技能 slug(小写连字符、字母数字),则视之为 SKILL_NAME
  • 其余参数皆为 INPUT_PATHS 列表。
  • 若任一输入路径为既有技能目录(含 SKILL.mdchapters/ 子文件夹),或 SKILL_NAME 匹配 SKILLS_HOME 中既有技能 slug,则标此运行为更新/折入操作(模式 4)。
---

Step 1 — 验证输入

INPUT_PATHS 中至少有一受支持文件、目录或 glob 模式。 对目录与 glob,展开之,寻匹配之受支持文件(.pdf.epub.docx.txt.md.markdown.rst.adoc.html.htm.rtf.mobi.azw.azw3)。

若无受支持文件,止步,给清晰错误讯息。

---

Step 1.5 — 辨内容类型

抽取前,问君:

> "这些源含何种内容?此有助于择最佳抽取法。 > > 1. 技术型 —— 有代码块、表格、公式、图表(例如编程书、学术论文、架构指南) > 2. 文字为主 —— 多为散文,少或无表格/代码(例如管理、生产力、叙事非虚构) > 3. 不确定 —— 我将用快速法,若品质似有限,会警示"

存答为 BOOK_TYPE

  • 选项 1 → BOOK_TYPE=technical
  • 选项 2 → BOOK_TYPE=text
  • 选项 3 → BOOK_TYPE=text
BOOK_TYPE=technical,先行告知君:

> "📐 已选技术模式——用 Docling 做结构感知抽取(表格、代码块、公式以 markdown 存)。每页约 1.5 秒,长源需数分钟。开始……"

BOOK_TYPE=text,告知:

> "📄 已选文字模式——为各文件类型用最快适用抽取器。纯文/Markdown/HTML 通常数秒即就;PDF 若有 pdftotext 则用之。"

---

Step 2 — 自源文档抽取文字

运行抽取脚本,传输入路径:

SCRIPT_PATH=""
for candidate in \
  "$HOME/.copilot/skills/book-to-skill/scripts/extract.py" \
  "$HOME/.agents/skills/book-to-skill/scripts/extract.py" \
  "$HOME/.claude/skills/book-to-skill/scripts/extract.py" \
  ".github/skills/book-to-skill/scripts/extract.py" \
  ".claude/skills/book-to-skill/scripts/extract.py" \
  ".agents/skills/book-to-skill/scripts/extract.py" \
  "$HOME/.config/agents/skills/book-to-skill/scripts/extract.py" \
  "$HOME/.config/amp/skills/book-to-skill/scripts/extract.py"
do
  if [ -f "$candidate" ]; then
    SCRIPT_PATH="$candidate"
    break
  fi
done

if [ -z "$SCRIPT_PATH" ]; then
  echo "Could not find scripts/extract.py for book-to-skill" >&2
  exit 1
fi

PYTHON_BIN="${PYTHON_BIN:-python3}"
if ! command -v "$PYTHON_BIN" >/dev/null 2>&1; then
  PYTHON_BIN="python"
fi

"$PYTHON_BIN" "$SCRIPT_PATH" $INPUT_PATHS --mode <BOOK_TYPE> --install-missing ask

抽取前,脚本查各格式所需可选 Python 包。若缺更优抽取器,则提示君可用回退。非交互会话默认回退,除非安装模式明确为 yes

提示——预检环境: 运行 "$PYTHON_BIN" "$SCRIPT_PATH" --check,可印各格式抽取器安装情况与安装缺失包之确切命令,而不处理任何文件。君报安装或品质问题时有用。

此步产出:

  • /book_skill_work/full_text.txt —— 所有源合并抽取文字,边界清晰 demarcated。
  • /book_skill_work/metadata.json —— 合并大小、字数、页数、token 数,以及各处理源之详表。
/book_skill_work/metadata.json 以检结果。

---

Step 2.5 — 预飞成本估算

/book_skill_work/metadata.json生成前先给君估算:

📖 检出源:<total_sources> 个源
<逐列出各源文件名与格式>
📄 合并页/节:约 <N> | 字数:约 <N> | 总 token:约 <N>K

💰 估算 token 成本(完全转换 / 更新):
   输入(读取 + 提示):约 <N>K tokens
   输出(生成/更新技能文件):约 <N>K tokens
   合计:约 <N>K tokens

   参考价格(2025 年):
   Claude Sonnet 4.5 → 约 $<X> USD
   Claude Haiku 4.5  → 约 $<X> USD

   ⏱  估算耗时:约 <N> 分钟

📁 将生成/更新之文件:
   SKILL.md + 章节文件 + 术语表 + 模式 + 速查表

➡  是否继续完全转换 / 更新?(或输入 "analyze only" 先预览)

估算法:

  • 输入 token ≈ metadata 之 estimated_tokens × 1.3(每章提示开销)
  • 输出 token ≈ 章数 × 每章预算 + 4,000(SKILL.md) + 4,500(术语表 + 模式 + 速查表)
  • 每章预算中值依 BOOK_TYPE(DEPTH 后定,可上调):text ≈ 1,000,technical ≈ 1,800。若君已示参考 vs 深研,用 Step 7 矩阵对应行。
  • 价格:Sonnet input=$3/MTok output=$15/MTok — Haiku input=$0.80/MTok output=$4/MTok
待君确认方行。若君言“analyze only”,转模式 2。

---

Step 2.6 — 大书(> 50k tokens)之 REPL 式访问

受 Recursive Language Model (RLM) 启发:视 full_text.txt 为可查询语料,而非一次性读入。全文入上下文,耗费本可留给生成之预算。

对超 ~50k tokens 之书,优先程式化探查,而非无界 Read(full_text.txt)

# 尺寸检查
wc -w "$FULL_TEXT_PATH"

# 寻章偏移,不载全文
grep -n -E "^\s*(Chapter|CHAPTER)\s+[0-9]+" "$FULL_TEXT_PATH" | head -40

# 仅取所需章(含起止行)
sed -n '<start>,<end>p' "$FULL_TEXT_PATH"

# 认领框架前先验其确有提及
grep -c -i "westrum\|dora" "$FULL_TEXT_PATH"

# 带偏移/限制之 targeted Read,避免倾倒全文
# Read(file_path=full_text.txt, offset=<行>, limit=<行数>)

Step 3(结构分析)、Step 7(每章摘要)、Step 8(术语表/模式抽取)皆用此法。50k tokens 以下之书,单次 Read 即可。

何以重?200 页书约 75k tokens。每章重读一次(28 遍)耗 ~2M 输入 token;用 grep + sed 仅取相关片,生成成本与输出成比例,而非与源成比例。

---

Step 3 — 分析书结构

读抽取 full_text.txt 之前 8,000 字符,识:

  • 标题作者
  • 章结构(寻“Chapter N”、“PART I”、编号标题、目录)
  • 核心主题与学科域
  • 约章数
再读目录部分(若有),映射全章。

若模式为“仅分析”: 即产抽取报告并止。结构:

## 抽取报告 —— <标题>

### 作者核心框架
- **<框架名>**:<何为及何时用>

### 关键原则
- <原则>:<可行之规>

### 技法与方法
- <技法>:<步步或如何做>

### 反模式
- <当避者>:<所以>

### 建议技能名
`{作者姓氏}-{核心概念}` —— 例如 `cialdini-influence`

### 检出章节
| # | 标题 | 主要框架 |

---

Step 4 — 问目的(仅完全转换)

生成前,问君:

> "此技能欲助君何为?(可选一项或多项) > 1. 实务中应用作者框架 > 2. 以作者心智模型思考 > 3. 参考特定章与概念 > 4. 以上皆是"

用答加权 SKILL.md 核心部分所强调者。

自答推 DEPTH(不另问):

  • 仅选选项 3(参考)→ DEPTH=reference —— 轻量、快速查阅章。
  • 含选项 1、2 或 4 → DEPTH=study —— 更深章,含更多实作细节、例与推理。
DEPTHBOOK_TYPE 共定 Step 7 每章 token 预算。(模式 2/3 跳 Step 4 时,默认 DEPTH=study。)

---

Step 5 — 定技能名

若已给 SKILL_NAME,用之为 slug。 否则,提两选项,待君择:

  • 作者-概念式{作者姓氏}-{核心概念}(例如 cialdini-influencemeadows-systems
  • 书名式:书名小写连字符(例如 designing-data-intensive-apps
书有强方法论身份时,默认作者-概念式。

择技能根目录(SKILLS_HOME)。探君文件系统既有技能根,按君运行之主机择:

主机代理个人技能根(探序)项目本地根
GitHub Copilot CLI~/.copilot/skills~/.agents/skills.github/skills.claude/skills.agents/skills
Amp~/.agents/skills~/.config/agents/skills~/.config/amp/skills.agents/skills
Claude Code~/.claude/skills.claude/skills
择规: 1. 若主机候选根恰有一存在于磁盘,无问即用。 2. 若(新机),问君欲建哪根——呈主机适配选项,记住本次会话选择。不默默认。 3. 若君明确要项目本地输出,优先项目本地行。 4. 若不能识主机,问:“君运行于何代理——GitHub Copilot CLI、Amp 或 Claude Code?”

SKILLS_HOME 为所选根,查 $SKILLS_HOME// 是否已存在。 若存在,提示君择: 1. 更新 / 折入(模式 4)—— 将新文件/内容并入既有技能组件。 2. 覆盖—— 删除并自头重生成。 3. 改名—— 追加 -2 或用不同自定义 slug。

若君选更新 / 折入,跳过 Step 3、4、6、7、8、9,直接行更新 / 折入流程(Step 2.5 后)。

---

Step 6 — 建技能目录结构

mkdir -p "$SKILLS_HOME/<skill_name>/chapters"

---

Step 7 — 生成章摘要

TOKEN 预算规则——要紧(自适应):

每章预算随 BOOK_TYPEDEPTH 伸缩。技术章需容代码与表格;深研需容实作推理。自下表择预算:

DEPTH=referenceDEPTH=study
BOOK_TYPE=text800–1,200 tokens1,000–1,800 tokens
BOOK_TYPE=technical1,200–1,800 tokens2,000–3,000 tokens
  • 此为每文件目标,非硬上限——密章或超,薄章或不及。密度胜长度(质量规则 3):勿为凑数而垫。
  • 文件按需载入,故大章仅在实读时耗 token。
  • 疑难时择较低预算,让深度来自精准,而非体积。
DEPTH=study 须以内容挣得,非更大数字。 标准节模板(核心理念 → 关联)自然使散文章落于 700–900 tokens 左右。欲诚实达深研预算——非垫——须加具体料:
  • 重现章中一实作例或工件(例如作者所走之示例新闻稿、对话、填好之模板、决策全程),置于 ## 实作例 节。此为最大杠杆,亦学习者复返所求。
  • 将各框架之“How”展开为明确步骤或判据,非一行了事。
  • 为前 1–2 框架加短“何以奏效 / 失效模式”注
若章真无实作例且抗展开,则让其低于深研底,而非垫——并于核心理念注该章薄。反之,reference 深度章故意略实作例,仅留决策-ready 精要。

对 Step 3 所识每章/大节

读抽取 full_text.txt 对应部分(用字符偏移或 grep 章标题)。

用下结构建 $SKILLS_HOME//chapters/ch-.md

BOOK_TYPE 调强调:

  • technical → 优先“代码例”“参考表”“命令与 API”节;确切存语法
  • text → 优先“引入框架”“心智模型”“关键收获”;空技术节略去
# 第 N 章:<全标题>

## 核心理念
<1–2 句:本章所授最要者>

## 引入框架
- **<框架名>**:<确切表述——存作者命名>
  - 何时用:<具体情境>
  - 如何:<步骤或判据>

## 关键概念
- **<术语>**:<精确定义,一句>
(本章 5–10 最要术语)

## 心智模型
<2–4 框架或思维工具。写为“X 情境用 Y”或“视 X 为 Y”>

## 反模式
- **<当避者>**:<所以失效>

## 代码例(仅技术书——若 BOOK_TYPE=text 则略)
<!-- 复制章中最具启发之片段。确切存缩进。 -->
<语言> <本章关键代码例>
- **示何**:<一句>

## 参考表(仅技术书——若 BOOK_TYPE=text 则略)
<!-- 将章中比较矩阵、参数表或决策表以 markdown 重现。 -->

## 实作例(仅 DEPTH=study——reference 深度略)
<!-- 重现或重构作者所走之一具体例:样本文档、对话、填好模板、前后对比、或决策全程。此为深研章值其预算之关键。忠于源;勿抄长原文——紧凑重构。 -->

## 关键收获
1. <可行洞见>
2. <可行洞见>
3. <可行洞见>
(实践者须记 3–7 条)

## 关联
- **第 N 章**:<何以相联>
- **<概念>**:<所联之外部概念或标准>

---

Step 8 — 生成支撑文件

glossary.md

$SKILLS_HOME//glossary.md
  • 书中所有要术语,字母序
  • 格式:术语 —— 定义(第 N 章)
  • 最多 1,500 tokens

patterns.md

$SKILLS_HOME//patterns.md
  • 书中所有具体技法、设计模式、算法
  • 格式:## 模式名\n何时用:...\n如何:...\n权衡:...
  • 最多 2,000 tokens

cheatsheet.md

$SKILLS_HOME//cheatsheet.md

此为技能最殊层——视之为推理辅,而非关键词表。 任何人皆可 grep 术语表。速查表捕作者之判断:彼将如何决、何以。正是此文件使“识词”变为“我将如作者所为而行”。

优先序: 1. 决策规——“X 时,做 Y,因 Z。”作者所用 if/then 逻辑,述之使读者无需重读书即可用。 2. 决策树 / 流程图(嵌套 bullet 或小表)——多于两分支之选择。 3. 权衡矩阵——竞争选项依作者所重维度评分,使读者可依己约束择。 4. 阈值 & 默认——作者所定具体数字、比率或经验法则(例如“函数保持 ~20 行内”“错误预算 < 10% 时告警”)。 5. 征象 & 气味——速启发识情境(“见 X,恐陷 Y 困境”)。

避: bare 术语→定义行(那是术语表),与散文段(那是章)。每行皆助读者某事。

  • 格式多为紧凑表与决策规;可印一页置案头者。
  • 最多 1,200 tokens。
---

Step 9 — 生成主 SKILL.md

要紧 TOKEN 预算: 保持 SKILL.md 正文 < 4,000 tokens。 压缩自末尾截——最要内容置最前

$SKILLS_HOME//SKILL.md

---
name: <skill_name>
description: "「<全标题>」作者 <作者> 之知识库。凡应用 <作者> 框架于 <关键主题,3–6 词>、研读本书或参考其概念者用之。"
---

<!-- argument-hint: [主题、框架名或章号] -->

# <全标题>
**作者**:<作者> | **页数**:约 <N> | **章数**:<N> | **生成**:<YYYY-MM-DD>

## 如何用此技能

- **无参数** —— 载核心框架供参考
- **带主题** —— 问 `replication`、`pricing` 或其他索引主题;我寻并读相关章
- **带章** —— 求 `ch05`;我载该章
- **浏览** —— 问“有哪些章?”见全索引

当君问及核心框架下未覆主题时,我将先读相关章文件再答。

---

## 核心框架与心智模型
<!-- ~2,000 tokens:作者最要已名框架与原则。
     存确切名。写为“X 情境用 Y”“因 Z 故宁 X 勿 Y”。
     乃 toolkit,非撮要。 -->

<此处生成最要框架与洞见,约 2,000 tokens>

---

## 章索引

| # | 标题 | 关键框架 |
|---|------|----------|
| [ch01](chapters/ch01-<slug>.md) | <标题> | <框架1>、<框架2> |
| [ch02](chapters/ch02-<slug>.md) | <标题> | <框架1>、<框架2> |
...

## 主题索引

<!-- 字母序。主要术语/框架 → 覆之章 -->
- **<术语>** → ch<N>[, ch<N>]
- **<术语>** → ch<N>

## 支撑文件

- [glossary.md](glossary.md) —— 所有关键术语与定义
- [patterns.md](patterns.md) —— 所有技法与设计模式
- [cheatsheet.md](cheatsheet.md) —— 速查表与决策导引

---

## 范围与限界

此技能仅覆本书内容。欲于代码库实作,须与项目特定工具合用。书外主题,请查相关技能或直问代理。

---

Step 10 — 清理与报告

PYTHON_BIN="${PYTHON_BIN:-python3}"
if ! command -v "$PYTHON_BIN" >/dev/null 2>&1; then
  PYTHON_BIN="python"
fi

"$PYTHON_BIN" - <<'PY'
import os
import shutil
import tempfile
from pathlib import Path
shutil.rmtree(
    os.environ.get("BOOK_SKILL_WORKDIR", Path(tempfile.gettempdir()) / "book_skill_work"),
    ignore_errors=True,
)
PY

然后报君:

✅ 技能已建:$SKILLS_HOME/<skill_name>/

📚 书:<全标题> —— <作者>
📄 页数:约 <N> | 章数:<N>

生成文件:
  SKILL.md         —— 核心框架 + 索引   (约 X tokens)
  chapters/        —— <N> 章摘要       (约 X tokens/章,合计约 X)
  glossary.md      —— 关键术语         (约 X tokens)
  patterns.md      —— 技法与模式       (约 X tokens)
  cheatsheet.md    —— 速查             (约 X tokens)
  ─────────────────────────────────────────────────────
  技能总大小:约 X tokens(按需载入,非全载)

💡 提示:查君代理会话成本/用量命令,见实 token 耗。

用法:
  问 <skill_name>                  → 载核心框架
  问 <skill_name> 关于 <主题>      → 寻并解主题
  问 <skill_name> 要 ch<N>         → 深潜某章

重载(若代理不自检新技能):
  GitHub Copilot CLI:  /skills reload
  Claude Code:         重启会话
  Amp:                 重启会话

分享此技能(Copilot 生态,可选):
  gh skill publish $SKILLS_HOME/<skill_name>

---

更新 / 折入流程

$SKILLS_HOME// 既有技能行更新/折入时:

1. 读既有技能结构

读并析既有技能文件:
  • $SKILLS_HOME//SKILL.md,析章索引主题索引、元数据(作者、总章数)与核心框架
  • $SKILLS_HOME//chapters/ 下所有文件,寻最高章号(例如 ch12)。
  • $SKILLS_HOME//glossary.md$SKILLS_HOME//patterns.md$SKILLS_HOME//cheatsheet.md,视已有术语与框架索引。

2. 匹配内容,识修订 vs 新增

析新抽取 /book_skill_work/full_text.txt,识新内容是否为:
  • 既有章之更新/修订:若新内容直接更新或扩展既有章主题,读既有章文件,合并新细节,重写之。
  • 新添:若引入新章、论文或独立节,则于 chapters/ 下建新章摘要文件。编号自既有最高章号后始(例如既有止于 ch12,则建 ch13-*.mdch14-*.md 等)。

3. 生成或更新章摘要文件

对每新或修订章:
  • 读新抽取文字对应部分。
  • Step 7 格式指南建摘要。
  • 写/更新 $SKILLS_HOME//chapters/ 下文件。

4. 合并支撑文件

  • 合并 glossary.md
  • 读既有 $SKILLS_HOME//glossary.md
  • 自新内容抽所有新术语与定义(Step 8 术语表指南)。
  • 合既有与新术语,字母序。
  • 若术语已存,追加新章/源引用(例如 术语 —— 定义(第 4 章、第 13 章))。
  • 重写 $SKILLS_HOME//glossary.md,为完全合并、字母序列表。
  • 合并 patterns.md
  • 读既有 $SKILLS_HOME//patterns.md
  • 自新内容抽新技法、算法或模式。
  • 追加新模式,格式一致,总长精简(< 2,500 tokens)。
  • 合并 cheatsheet.md
  • 读既有 $SKILLS_HOME//cheatsheet.md
  • 抽新比较规、决策表或参数导。
  • 洁净并入速查表结构。

5. 重生成主 SKILL.md

更新主技能文件 $SKILLS_HOME//SKILL.md
  • 元数据:递增章数,更新估页数,适加新源名。更新 Generated 日期为今日。
  • 核心框架:折入新内容中最具冲击之心智模型或原则(确保全文件仍 < 4,000 tokens)。
  • 章索引:追加新章至索引表,链向新建文件。
  • 主题索引:字母序合并新主题。若既有主题亦为新章所覆,追加新章链(例如 - 主题 → ch05, ch13)。

6. 清理并行 Step 10

文件成功写并合并后,跳 Step 10 做清理,印定制更新报告,总结新添章、合并术语与更新索引。

---

质量守则

1. 抽结构,非撮要 —— 捕已名框架、确切表述、反模式;非章回 2. 存作者之精微 —— “五问法” ≠ “多问何故”;存确切命名 3. 密度胜完备 —— 1,000 token 摘要胜 10,000 token 摘抄 4. 实践者声调 —— 写“X 情境用 Y”,非“书解释 X” 5. 前置 SKILL.md —— 压缩保前 5,000 tokens;最要内容最前 6. 章文件按需 —— 载入前不计入技能预算 7. 勿抄原书文字 —— 恒合成、撮要、抽信号 8. 主题索引要紧 —— 代理赖之以导航至正确章文件

---

暂无表态
推荐

🌟 智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

🎁 领取 2000万 Tokens