$npx -y skills add apple-ouyang/book-to-skill --skill book-to-skill把一本书拆解成 Claude Code 可执行的 Skill。当用户说"拆书"、"把这本书变成 Skill"、"book to skill"、"extract skill from book" 时触发。
| 1 | # 拆书:从书籍到可执行 Skill |
| 2 | |
| 3 | ## 任务目标 |
| 4 | |
| 5 | 把一本书中的核心框架、操作方法和真实案例,拆解成结构化的 Claude Code Skill,让 AI Agent 能在用户需要时自动调用书中的智慧。 |
| 6 | |
| 7 | ## 前置依赖 |
| 8 | |
| 9 | - **PDF Skill**:用于读取 PDF 格式书籍(`npx @anthropic-ai/claude-code-skills install pdf`) |
| 10 | - **Swarm Skill**:用于多 Agent 并行处理不同章节(当书籍超出单 Agent 上下文窗口时必须使用) |
| 11 | |
| 12 | ## 第一步:评估书籍规模,决定单 Agent 还是多 Agent |
| 13 | |
| 14 | **这是最关键的一步。** 在开始拆书之前,必须先估算书籍内容是否能装进单个 Agent 的上下文窗口。 |
| 15 | |
| 16 | ### 上下文窗口容量(按 100k token 估算) |
| 17 | |
| 18 | | 语言 | 100k token ≈ | 扣除格式开销后 | |
| 19 | |------|-------------|--------------| |
| 20 | | 英文 | ~75,000 单词 / ~270 页 | **~200 页** | |
| 21 | | 中文 | ~50,000-65,000 字 / ~110 页 | **~80 页** | |
| 22 | |
| 23 | > 注:上下文窗口不只装书的内容,还要装 Skill 指令、Agent 提示词、输出缓冲等。所以实际可用于书籍内容的空间约为窗口的 70-80%。 |
| 24 | |
| 25 | ### 操作:估算 PDF 页数 |
| 26 | |
| 27 | ```bash |
| 28 | # 用 PDF Skill 读取页数 |
| 29 | # 或者直接问用户:这本书大概多少页? |
| 30 | ``` |
| 31 | |
| 32 | ### 决策树 |
| 33 | |
| 34 | ``` |
| 35 | 书籍页数? |
| 36 | ├── 英文 ≤ 200 页 / 中文 ≤ 80 页 |
| 37 | │ → 单 Agent 模式(直接读取全书,一个 Agent 完成所有提取) |
| 38 | │ |
| 39 | ├── 英文 200-500 页 / 中文 80-200 页 |
| 40 | │ → Swarm 模式:2-3 个 Agent,每个负责一部分章节 |
| 41 | │ |
| 42 | └── 英文 > 500 页 / 中文 > 200 页 |
| 43 | → Swarm 模式:4-6 个 Agent,按主题/部分拆分 |
| 44 | ``` |
| 45 | |
| 46 | ### Agent 数量计算公式 |
| 47 | |
| 48 | ``` |
| 49 | 所需 Agent 数 = ceil(书籍页数 / 单 Agent 可处理页数) |
| 50 | |
| 51 | 单 Agent 可处理页数: |
| 52 | - 英文:~200 页 |
| 53 | - 中文:~80 页 |
| 54 | ``` |
| 55 | |
| 56 | **示例**:《行为设计学》中文版约 250 页 → ceil(250 / 80) = 4 个 Agent,实际拆成了 4 个 Skill(making-decisions + 3 个子 Skill),每个 Agent 负责 2-3 章。 |
| 57 | |
| 58 | --- |
| 59 | |
| 60 | ## 第二步:通读目录,识别框架骨架 |
| 61 | |
| 62 | 读取书籍目录和前言(这一步不需要读全书,单 Agent 即可),回答: |
| 63 | |
| 64 | 1. 这本书解决什么核心问题? |
| 65 | 2. 作者提出的主框架是什么?(如 WRAP、OODA、第一性原理) |
| 66 | 3. 框架有几个核心步骤/模块? |
| 67 | 4. 每个步骤对应哪些章节? |
| 68 | |
| 69 | **输出**:框架骨架表 |
| 70 | |
| 71 | ``` |
| 72 | | 框架步骤 | 对应章节 | 预计拆成的 Skill | 分配给 Agent | |
| 73 | |---------|---------|----------------|-------------| |
| 74 | | 步骤 1 | 第 1-3 章 | skill-name-1 | Agent 1 | |
| 75 | | 步骤 2 | 第 4-6 章 | skill-name-2 | Agent 2 | |
| 76 | ``` |
| 77 | |
| 78 | --- |
| 79 | |
| 80 | ## 第三步:确定 Skill 结构 |
| 81 | |
| 82 | 根据框架复杂度决定: |
| 83 | |
| 84 | - **单 Skill**:框架简单,3-5 个步骤,一个 SKILL.md 搞定 |
| 85 | - **主 Skill + 子 Skill**:框架复杂,每个步骤本身就是一套方法论 |
| 86 | - 主 Skill 负责路由(判断用户场景 → 调度子 Skill) |
| 87 | - 子 Skill 负责具体操作 |
| 88 | |
| 89 | **判断标准**:如果一个步骤的操作说明超过 100 行,就应该拆成独立子 Skill。 |
| 90 | |
| 91 | --- |
| 92 | |
| 93 | ## 第四步:逐章提取 |
| 94 | |
| 95 | ### 单 Agent 模式 |
| 96 | |
| 97 | 直接读取全书 PDF,按章节顺序提取。 |
| 98 | |
| 99 | ### Swarm 多 Agent 模式 |
| 100 | |
| 101 | 用 `/swarm` 启动团队,按第二步的分配表分配章节。 |
| 102 | |
| 103 | **Agent 提示词模板**: |
| 104 | |
| 105 | ``` |
| 106 | 角色:章节提取员 |
| 107 | 职责:阅读第 X-Y 章(PDF 第 M-N 页),按以下格式提取内容 |
| 108 | |
| 109 | 提取内容: |
| 110 | 1. 核心概念(一句话总结) |
| 111 | 2. 操作步骤(具体可执行,不是"思考一下",而是"问自己:___") |
| 112 | 3. 案例(格式:人物/组织 → 情境 → 做法 → 结果 → 启示) |
| 113 | 4. 警惕信号(什么情况下应该触发这个方法) |
| 114 | 5. 注意事项(边界情况、常见误用) |
| 115 | |
| 116 | 输出要求:Markdown 格式,每章一个二级标题 |
| 117 | 完成标准:每章至少 2 个案例,操作步骤必须具体到 Agent 可以直接执行 |
| 118 | 文件范围:只读取 PDF 第 M-N 页,不要读其他部分 |
| 119 | ``` |
| 120 | |
| 121 | **关键规则**: |
| 122 | - 每个 Agent 只读自己负责的页码范围,避免重复读取浪费 token |
| 123 | - 领导 Agent 负责汇总和组装,不直接提取内容 |
| 124 | - 提取完成后,每个 Agent 把结果写入独立的 Markdown 文件 |
| 125 | |
| 126 | --- |
| 127 | |
| 128 | ## 第五步:组装 Skill |
| 129 | |
| 130 | 将提取的内容组装成 SKILL.md: |
| 131 | |
| 132 | 1. 写 frontmatter(name + description,description 要写清触发场景) |
| 133 | 2. 写任务目标(一段话) |
| 134 | 3. 按逻辑顺序排列操作步骤 |
| 135 | 4. 在步骤中嵌入关键案例(1-2 个最有说服力的) |
| 136 | 5. 其余案例放入 `references/cases.md` |
| 137 | 6. 写注意事项和使用示例 |
| 138 | 7. 如果是主 Skill,写清路由逻辑(什么场景调度哪个子 Skill) |
| 139 | |
| 140 | --- |
| 141 | |
| 142 | ## 第六步:自测 |
| 143 | |
| 144 | 用 3 个真实场景测试 Skill: |
| 145 | |
| 146 | 1. 调用 Skill,看 Agent 的引导是否清晰 |
| 147 | 2. 检查是否有步骤模糊到 Agent 不知道该问什么 |
| 148 | 3. 检查案例是否帮助用户理解概念 |
| 149 | |
| 150 | 不通过就回第五步修改。 |
| 151 | |
| 152 | --- |
| 153 | |
| 154 | ## 第七步:提交 |
| 155 | |
| 156 | 按 CONTRIBUTING.md 规范提交: |
| 157 | - 分支名:`book/书名英文` |
| 158 | - PR 说明:拆了哪本书、包含哪些 Skill、每个 Skill 的触发场景 |
| 159 | |
| 160 | --- |
| 161 | |
| 162 | ## 质量标准 |
| 163 | |
| 164 | | 维度 | 合格 | 不合格 | |
| 165 | |------|------|--------| |
| 166 | | 操作步骤 | "问用户:如果当前选项都不可行,你会怎么办?" | "引导用户拓宽思路" | |
| 167 | | 案例 | 有人物、情境、做法、结果、启示 | "比如某公司做过类似的事" | |
| 168 | | 触发场景 | "当用户说'要不要做 X'时" | "当用户需要帮助时" | |
| 169 | | Skill 粒度 | 一个 Skill 解决一个问题 | 一个 Skill 覆盖整本书 | |
| 170 | | Agent 分配 | 基于页数估算,每个 Agent 不超过上下文窗口 | 不管多长都塞给一个 Agent | |