name: book-to-skill description: 把一本书拆解成 Claude Code 可执行的 Skill。当用户说"拆书"、"把这本书变成 Skill"、"book to skill"、"extract skill from book" 时触发。
拆书:从书籍到可执行 Skill
任务目标
把一本书中的核心框架、操作方法和真实案例,拆解成结构化的 Claude Code Skill,让 AI Agent 能在用户需要时自动调用书中的智慧。
前置依赖
- PDF Skill:用于读取 PDF 格式书籍(
npx @anthropic-ai/claude-code-skills install pdf) - Swarm Skill:用于多 Agent 并行处理不同章节(当书籍超出单 Agent 上下文窗口时必须使用)
第一步:评估书籍规模,决定单 Agent 还是多 Agent
这是最关键的一步。 在开始拆书之前,必须先估算书籍内容是否能装进单个 Agent 的上下文窗口。
上下文窗口容量(按 100k token 估算)
| 语言 | 100k token ≈ | 扣除格式开销后 |
|---|---|---|
| 英文 | ~75,000 单词 / ~270 页 | ~200 页 |
| 中文 | ~50,000-65,000 字 / ~110 页 | ~80 页 |
注:上下文窗口不只装书的内容,还要装 Skill 指令、Agent 提示词、输出缓冲等。所以实际可用于书籍内容的空间约为窗口的 70-80%。
操作:估算 PDF 页数
# 用 PDF Skill 读取页数
# 或者直接问用户:这本书大概多少页?
决策树
书籍页数?
├── 英文 ≤ 200 页 / 中文 ≤ 80 页
│ → 单 Agent 模式(直接读取全书,一个 Agent 完成所有提取)
│
├── 英文 200-500 页 / 中文 80-200 页
│ → Swarm 模式:2-3 个 Agent,每个负责一部分章节
│
└── 英文 > 500 页 / 中文 > 200 页
→ Swarm 模式:4-6 个 Agent,按主题/部分拆分
Agent 数量计算公式
所需 Agent 数 = ceil(书籍页数 / 单 Agent 可处理页数)
单 Agent 可处理页数:
- 英文:~200 页
- 中文:~80 页
示例:《行为设计学》中文版约 250 页 → ceil(250 / 80) = 4 个 Agent,实际拆成了 4 个 Skill(making-decisions + 3 个子 Skill),每个 Agent 负责 2-3 章。
第二步:通读目录,识别框架骨架
读取书籍目录和前言(这一步不需要读全书,单 Agent 即可),回答:
- 这本书解决什么核心问题?
- 作者提出的主框架是什么?(如 WRAP、OODA、第一性原理)
- 框架有几个核心步骤/模块?
- 每个步骤对应哪些章节?
输出:框架骨架表
| 框架步骤 | 对应章节 | 预计拆成的 Skill | 分配给 Agent |
|---------|---------|----------------|-------------|
| 步骤 1 | 第 1-3 章 | skill-name-1 | Agent 1 |
| 步骤 2 | 第 4-6 章 | skill-name-2 | Agent 2 |
第三步:确定 Skill 结构
根据框架复杂度决定:
- 单 Skill:框架简单,3-5 个步骤,一个 SKILL.md 搞定
- 主 Skill + 子 Skill:框架复杂,每个步骤本身就是一套方法论
- 主 Skill 负责路由(判断用户场景 → 调度子 Skill)
- 子 Skill 负责具体操作
判断标准:如果一个步骤的操作说明超过 100 行,就应该拆成独立子 Skill。
第四步:逐章提取
单 Agent 模式
直接读取全书 PDF,按章节顺序提取。
Swarm 多 Agent 模式
用 /swarm 启动团队,按第二步的分配表分配章节。
Agent 提示词模板:
角色:章节提取员
职责:阅读第 X-Y 章(PDF 第 M-N 页),按以下格式提取内容
提取内容:
1. 核心概念(一句话总结)
2. 操作步骤(具体可执行,不是"思考一下",而是"问自己:___")
3. 案例(格式:人物/组织 → 情境 → 做法 → 结果 → 启示)
4. 警惕信号(什么情况下应该触发这个方法)
5. 注意事项(边界情况、常见误用)
输出要求:Markdown 格式,每章一个二级标题
完成标准:每章至少 2 个案例,操作步骤必须具体到 Agent 可以直接执行
文件范围:只读取 PDF 第 M-N 页,不要读其他部分
关键规则:
- 每个 Agent 只读自己负责的页码范围,避免重复读取浪费 token
- 领导 Agent 负责汇总和组装,不直接提取内容
- 提取完成后,每个 Agent 把结果写入独立的 Markdown 文件
第五步:组装 Skill
将提取的内容组装成 SKILL.md:
- 写 frontmatter(name + description,description 要写清触发场景)
- 写任务目标(一段话)
- 按逻辑顺序排列操作步骤
- 在步骤中嵌入关键案例(1-2 个最有说服力的)
- 其余案例放入
references/cases.md - 写注意事项和使用示例
- 如果是主 Skill,写清路由逻辑(什么场景调度哪个子 Skill)
第六步:自测
用 3 个真实场景测试 Skill:
- 调用 Skill,看 Agent 的引导是否清晰
- 检查是否有步骤模糊到 Agent 不知道该问什么
- 检查案例是否帮助用户理解概念
不通过就回第五步修改。
第七步:提交
按 CONTRIBUTING.md 规范提交:
- 分支名:
book/书名英文 - PR 说明:拆了哪本书、包含哪些 Skill、每个 Skill 的触发场景
质量标准
| 维度 | 合格 | 不合格 |
|---|---|---|
| 操作步骤 | "问用户:如果当前选项都不可行,你会怎么办?" | "引导用户拓宽思路" |
| 案例 | 有人物、情境、做法、结果、启示 | "比如某公司做过类似的事" |
| 触发场景 | "当用户说'要不要做 X'时" | "当用户需要帮助时" |
| Skill 粒度 | 一个 Skill 解决一个问题 | 一个 Skill 覆盖整本书 |
| Agent 分配 | 基于页数估算,每个 Agent 不超过上下文窗口 | 不管多长都塞给一个 Agent |