---
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 页数

```bash
# 用 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 即可），回答：

1. 这本书解决什么核心问题？
2. 作者提出的主框架是什么？（如 WRAP、OODA、第一性原理）
3. 框架有几个核心步骤/模块？
4. 每个步骤对应哪些章节？

**输出**：框架骨架表

```
| 框架步骤 | 对应章节 | 预计拆成的 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：

1. 写 frontmatter（name + description，description 要写清触发场景）
2. 写任务目标（一段话）
3. 按逻辑顺序排列操作步骤
4. 在步骤中嵌入关键案例（1-2 个最有说服力的）
5. 其余案例放入 `references/cases.md`
6. 写注意事项和使用示例
7. 如果是主 Skill，写清路由逻辑（什么场景调度哪个子 Skill）

---

## 第六步：自测

用 3 个真实场景测试 Skill：

1. 调用 Skill，看 Agent 的引导是否清晰
2. 检查是否有步骤模糊到 Agent 不知道该问什么
3. 检查案例是否帮助用户理解概念

不通过就回第五步修改。

---

## 第七步：提交

按 CONTRIBUTING.md 规范提交：
- 分支名：`book/书名英文`
- PR 说明：拆了哪本书、包含哪些 Skill、每个 Skill 的触发场景

---

## 质量标准

| 维度 | 合格 | 不合格 |
|------|------|--------|
| 操作步骤 | "问用户：如果当前选项都不可行，你会怎么办？" | "引导用户拓宽思路" |
| 案例 | 有人物、情境、做法、结果、启示 | "比如某公司做过类似的事" |
| 触发场景 | "当用户说'要不要做 X'时" | "当用户需要帮助时" |
| Skill 粒度 | 一个 Skill 解决一个问题 | 一个 Skill 覆盖整本书 |
| Agent 分配 | 基于页数估算，每个 Agent 不超过上下文窗口 | 不管多长都塞给一个 Agent |
