开源项目第158期:cangjie-skill — 把书、视频、播客里的方法论蒸馏成可调用的 AI Skills
引言
“读完、看完、听完之后,带走一套能调用的方法论。”
这是「每日一个开源项目」系列的第 158 篇。今天的项目是cangjie-skill—— 一个把书籍、长视频、播客里的方法论蒸馏成可执行 AI Skills 的元 Skill 包。
名字取自仓颉 —— 传说中汉字的发明者。寓意恰当:这个工具做的事,是把内容转译成 agent 能读懂、能执行的另一种「语言」。
先说痛点:你收藏了多少篇文章、多少本书、多少期播客,是真的「运用了」还是「看过了」?摘要和笔记解决的是「我能回忆起来」,但不解决「我知道什么时候该用什么」。cangjie-skill 解决的是第二个问题 —— 把内容变成一套带触发条件的工具,交给 agent 在真实决策场景里帮你调用。
2,435 颗 Star,创建于 2026 年 4 月,已生成超过 20 本书籍的 skill pack。
你会学到什么
- 为什么摘要不等于可复用的方法论
- RIA-TV++ 七阶段流水线的完整设计
- 三重验证的具体标准(为什么通过率只有 25-50%)
- RIA++ 六个维度各自解决什么问题
- 与 nuwa-skill / darwin-skill 的生态定位关系
前提知识
- 使用过 Claude Code 或任意 AI agent
- 了解 Skill / 技能包的基本概念
项目背景
概述
cangjie-skill 是一个「元 Skill」:它本身是一个安装在 Claude Code 里的 skill,用途是把其他内容(书、视频、播客)蒸馏成更多 skills。
它的逻辑起点来自另一个项目 nuwa-skill —— nuwa 做的是「把人蒸馏成 skill」(马斯克 skill、巴菲特 skill,模拟一个人的思维方式和表达 DNA)。cangjie-skill 做的是另一个维度:把这个人系统性输出的内容蒸馏成工具。两件事互补,不重叠。
视频内容建议搭配作者的 video-downloader skill 使用:先下载视频、提取字幕/转写文本,再交给 cangjie-skill 处理。
项目信息
- 作者: kangarooking(袋鼠帝)
- 主语言: Python
- 许可证: MIT
- 生态: nuwa-skill(蒸馏人)+ cangjie-skill(蒸馏书)+ darwin-skill(进化 skill)
项目数据
- ⭐ GitHub Stars:2,435+
- 🍴 Forks: 380+
- 📄 许可证: MIT
- 📅 创建时间: 2026-04-16
功能特性
不是摘要,是结构化复用
cangjie-skill 的 SKILL.md 开头就划定了边界:
✅ 做:方法论 / 决策框架 / 清单 / 原则 / 概念体系的蒸馏 ❌ 不做:书摘 / 读后感 / 作者人设角色扮演(后者请用 nuwa-skill)摘要和 skill 的本质区别:摘要是「压缩」,skill 是「工具化」。一个带触发条件的 skill 能回答「什么时候该用这个框架」,而摘要做不到这一点。
支持的内容类型
虽然叫「拆书」,但文档里明确说:所有被蒸馏的长内容都适用,包括:
- 书籍(PDF / EPUB / TXT)
- 长视频字幕/转写稿(B 站、YouTube)
- 播客文字稿
- 课程讲义
- 访谈记录
- 长文和资料集
字幕文件里「章节」字段填时间戳,播客填集数,课程填讲次 —— 保持可追溯。
已生成的 Skill Pack 列表
| 书籍/来源 | Skills 数 |
|---|---|
| 巴菲特致股东的信(1957-2023) | 20 |
| 《穷查理宝典》 | 12 |
| 段永平投资问答录 | 15 |
| 《影响力》 | 12 |
| 《疯传》 | 15 |
| 《爆款文案》 | 14 |
| 《文案创作完全手册》 | 12 |
| 《1000个铁粉》 | 13 |
| 165 个 AI 产品系统提示词 | 15 |
| 《认知红利》 | 15 |
| 《不拘一格:网飞自由与责任工作法》 | 10 |
| 《黄帝内经》(素问+灵枢) | 22 |
| 《第一性原理》 | 10 |
| 《毛泽东选集》第 1-5 卷 | 25 |
| 吴恩达《AI for Everyone》视频课程 | 25 |
| 《孙子兵法》 | 8 |
| 《周易》 | 8 |
| 《我与地坛》 | 6 |
| 高等数学上册第一章 | 8 |
这个列表本身就说明了一件事:蒸馏方法论不挑内容领域。投资判断、营销文案、中医经典、军事战略、数学教材 —— 只要有可抽取、可验证、可迁移的方法论,都能走这条管道。
深度解析
RIA-TV++ 七阶段流水线
阶段 0: Adler 整体内容理解 → BOOK_OVERVIEW.md ↓ 阶段 1: 5 个并行提取器 → 候选方法论单元池 ↓ 阶段 1.5: 三重验证筛选 → verified.md(通过率 25-50%) ↓ 阶段 2: RIA++ 构造 skill → 每个 skill 的 SKILL.md ↓ 阶段 3: Zettelkasten 链接 → INDEX.md + GLOSSARY.md ↓ 阶段 4: 压力测试(darwin 兼容) → test-prompts.json + 回炉淘汰 ↓ 阶段 5: 交付 → DIGEST.md + 安装到 skills 目录名称拆解:
- RIA:来自赵周《这样读书就够了》的便签拆书法(Reading / Interpretation / Appropriation)
- TV:Triple Verification,三重验证
- ++:面向 agent 执行的扩展 —— E(Execution 可执行步骤)+ B(Boundary 边界与盲点)
阶段 0:Adler 整体内容理解
借鉴 Mortimer Adler《如何阅读一本书》的分析阅读法,对整份内容做四步拆解:
- 结构:这本书在讲什么?整体骨架是什么?
- 解释:核心论点是什么?关键概念怎么定义?
- 批判:作者的论证有哪些盲点或局限?
- 应用:这本书的方法论适用于哪类问题?
产出BOOK_OVERVIEW.md,并展示给用户确认框架理解是否准确,再进入提取阶段。这一步的价值:后续所有 skill 的边界判断(B 维度)都来自这里的「批判」结果。
阶段 1:5 个并行提取器
5 个 sub-agent 同时启动,各自独立阅读、独立提取: 框架提取器 → 决策框架 / 思维模型 原则提取器 → 原则 / 清单 / 规则 案例提取器 → 作者在内容里亲自使用过的实例 反例提取器 → 内容里警告的失败模式 术语提取器 → 关键概念词典 各自输出到 candidates/<type>.md并行提取而非串行的原因:不同类型的提取器读文本的「视角」不同。案例提取器在找「作者做了什么」,反例提取器在找「什么情况下会出错」—— 如果同一个 agent 顺序执行这两种任务,前一种任务的结果会影响后一种任务的视角。并行保证每种提取的独立性。
不支持并行时,可以串行执行同样的 5 个 extractor prompt,产出格式不变。
阶段 1.5:三重验证
这是整个流水线里最关键的质量门控,也是通过率只有 25-50% 的原因:
V1 跨域验证:书中至少 2 个独立段落(跨域,不能是同一论证链里的连续段落)有佐证。
V2 预测力:能用这个候选方法论回答一个书里没有明说的新问题?如果只能复述书里的内容而无法推断新情景,说明它不是独立的方法论单元,只是一段描述。
V3 独特性:这不是任何聪明人都会说的常识。「要诚实」「要努力」不是方法论,是废话。
三重验证全部通过才进入 verified.md,未通过的进入 rejected/ 并附原因 —— 保留审计轨迹,允许用户事后捞回。筛选完成后,把「通过 N 个 / 淘汰 M 个」列表给用户轻确认,再进入后续阶段(阶段 2-4 是最耗时的部分,这个确认能避免大量返工)。
阶段 2:RIA++ 六维度构造
每个通过验证的候选单元,按六个维度构造成一个 SKILL.md:
| 维度 | 内容 | 说明 |
|---|---|---|
| R(Reading) | 原文引用,≤150 字/段 | 确保可追溯,不是发明出来的 |
| I(Interpretation) | 用自己的话重写方法论骨架 | 避免照搬译本,强迫理解 |
| A1(Past Application) | 原内容里作者亲自用过的案例 | 提供具体的应用锚点 |
| A2(Future Trigger)★ | 用户在什么场景下会需要这个 | 这变成 skill 的description字段,决定何时触发 |
| E(Execution) | 1-2-3 可执行步骤 | 面向执行,不是面向理解 |
| B(Boundary) | 什么时候不适用 / 作者盲点 | 来自阶段 0 的批判分析 |
A2 Future Trigger 是最关键的维度 —— 它决定 agent 在什么情境下会想到调用这个 skill。一个没有清晰触发条件的 skill 等同于摆设。
阶段 3:Zettelkasten 链接
参考 Zettelkasten 卡片笔记法,在 skill 之间建立关系图:
- 引用(A 依赖 B):skill A 在某种情况下需要先用 skill B
- 对比(A 对比 B):skill A 和 skill B 处理相似问题但方法不同
- 组合(A 组合 B):skill A 和 skill B 联合使用效果更好
输出:
INDEX.md:所有 skill 的总览 + Mermaid 引用图GLOSSARY.md:整个 skill pack 的共享术语词典(从 candidates/glossary.md 整理而来)- 回填每个 SKILL.md 末尾的「相关 skills」段
单个孤立的 skill 和一套有关联关系的 skill 网络,复用价值完全不同。
阶段 4:压力测试(darwin 兼容)
每个 skill 设计 5-10 条测试 prompt,必须包含三种类型:
- 应调用:这个场景下应该触发此 skill
- 不应调用(诱饵):这个场景看似相关但不应触发
- 边界模糊:需要判断的模糊场景
诱饵测试里,至少有 1 条是「应该触发同一本书里另一个 skill」的场景 —— 这是跨 skill 混淆测试,防止 agent 在选择 skill 时乱枪打鸟。
测试未通过的 skill 回炉重做阶段 2,不做表面修补。结果写入<skill-dir>/test-results.md。
测试文件格式严格遵循 darwin-skill 的 JSON 格式,意味着这些 skill 生成后可以直接接入 darwin-skill 做自动进化。
阶段 5:交付
DIGEST.md ← 面向读者的精华长文:不读全书,只看这篇 安装到 skills 目录 ← 没有这一步,产出的 skill 无法被真正调用 询问用户安装位置: - 全局:~/.claude/skills/ - 项目级:.claude/skills/ 或 .cursor/skills/DIGEST.md 解决的是另一个需求:你不一定需要调用 skill,有时只是想快速了解这本书到底讲了什么。
断点续跑机制
流水线每完成一个阶段,写入PIPELINE_STATE.md(当前阶段、已完成产物、各 skill 状态)。下次执行前先读这个文件,从上次中断处继续,不从头重来。
对于需要处理大量书籍的场景,这个机制保证了流水线的可靠性。
生态定位
nuwa-skill ──── 蒸馏「人」 思维方式、表达 DNA "马斯克会怎么想?" cangjie-skill ── 蒸馏「书/内容」 方法论、框架、原则 "这个框架应该什么时候用?" darwin-skill ─── 进化任意 skill 接收 test-prompts.json → 自动测试 → 迭代改进三者咬合的关键:cangjie-skill 产出的test-prompts.json严格遵循 darwin-skill 格式,产出物可以直接被 darwin 接管做自动进化,不需要额外适配。
质量红线
触犯以下任一条件则阻止输出:
- 每个 skill 必须通过全部三重验证
- 每个 skill 必须有完整的 R/I/A1/A2/E/B 六段
- 原文引用 ≤150 字/段(英文 ≤100 词/段)
- 每个 skill 必须有
test-prompts.json,且包含诱饵测试,至少 1 条是同书兄弟 skill 的场景 description字段必须明确触发条件,不能是「一个关于 X 的 skill」
参考资源
官方链接
- 🌟GitHub: kangarooking/cangjie-skill
- 🔗nuwa-skill: alchaincyf/nuwa-skill(蒸馏人)
- 🔗darwin-skill: alchaincyf/darwin-skill(进化 skill)
- 📦示例 skill pack: buffett-letters-skill
总结
cangjie-skill 的核心洞察是:知识可复用的前提是知识被工具化,而工具化的前提是结构化——不只是「提炼了什么」,还要有「什么时候该用」「怎么执行」「什么时候不该用」。
三重验证(跨域 + 预测力 + 独特性)是整个流水线里最重要的一道门:25-50% 的通过率意味着大量看起来有价值的内容被筛掉了。这不是 bug,而是 feature —— 只有经过严格筛选的内容才值得花时间构造成 skill,否则会产生大量在真实场景里用处不大的「伪工具」。
A2 Future Trigger 维度是整个六维度框架里最难写、但也最有价值的部分。它强迫你回答「这个工具在现实里什么时候会被需要」,而不是「这个工具描述了什么」。这个问题往往比蒸馏内容本身更难。
对于经常和书、长视频、播客打交道的人,cangjie-skill 提供了一条从「消费内容」到「部署方法论」的明确路径 —— 最终输出不是笔记,而是一套可以在 agent 工作流里被调用的工具包。
探索 PrimeSkills —— 精选 AI agent 和技能工具,每一个都经过真实工作流验证。没有炒作,只有真正好用的工具。
访问我的个人主页,获取更多见解和有趣的产品。