Communitygithub.com

firelive/agent-skills

將一本書、長影片逐字稿、播客、課程或訪談,蒸餾成一組可執行的技能。當使用者要求「拆書」/「蒸餾一本書」/「把 XX 書做成 skill」/「把這個影片/播客/課程蒸餾成 skill」/「turn a book or video into skills」時使用,亦即使用者希望將長篇內容中的框架、原則與方法論,萃取成原子化、可複用的 Claude 技能,讓 agent 能在真實情境中調用。不適用於單純摘要、書評或扮演作者(後者是 nuwa-skill 的工作)。

agent-skills 是什麼?

cangjie-skill 是一個專門用於將書籍、長影片、播客、課程或訪談等長篇內容,蒸餾成一組可執行技能的「元技能」。其核心目標是將內容中沉澱的方法論、決策框架、操作流程等,拆解為原子化、可被 AI agent 在真實場景下調用的能力,而非單純的摘要或書評。該技能採用 RIA-TV++(v2.5 Bundle 版)方法論,包含五個階段:從 Adler 整書理解開始,然後由五個子代理並行提取框架、原則、案例、反例和術語,接著進行三重驗證篩選、獨立技能晉級門(產品化驗證)、RIA++ 能力卡建構、Zettelkasten 連結,最後進行壓力測試與編譯交付。支援主流 AI agent 平台(如 Claude Code、Cursor、Codex),輸出結構包含 Capability Bundle、能力卡、術語詞典等,並與 nuwa-skill(蒸餾人)和 darwin-skill(進化技能)形成生態系。其設計強調可追溯性、品質紅線(如三重驗證通過、完整六段能力卡等),並確保執行的每個階段都有明確的輸出與使用者確認點。

相容平台✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/firelive/agent-skills/tree/HEAD/.agents/skills/book-to-skill-distill

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

來源 / 上游

  • 上游: https://github.com/kangarooking/cangjie-skill
  • 授權: MIT
  • 內置於: .agents/skills/book-to-skill-distill/SKILL.md 供 Moi/Codex 共享安裝
  • 注意: 完整流程也需要上游儲存庫中的 methodology/ 和 extractors/。

此檔案可能是內置副本或簡短指標。當上游儲存庫包含資產、腳本或 AGPL 義務時,建議安裝/複製上游儲存庫。

cangjie-skill — 把一本書蒸餾成一組可執行 skills 的元 skill

使命

把一本書裡沉澱的方法論,拆解成原子化、可被 agent 在真實場景下調用的能力,並按使用者目的編譯成合適數量的 skill,讓讀者真正用起來。

術語約定: 本文檔及 methodology/、extractors/ 中所有的「書」,泛指一切被蒸餾的長內容 — 書籍、長影片轉寫、播客文字稿、課程、訪談、長文、資料集。

邊界:

  • ✅ 做: 方法論 / 決策框架 / 操作流程 / 計算規則 / 排障 / 清單 / 原則的蒸餾,概念體系作為參考支撐
  • ❌ 不做: 書摘 / 讀後感 / 作者人設角色扮演 (後者請用 nuwa-skill)

核心方法論: RIA-TV++(v2.5 Bundle 版)

一個五階段 + 並行提取 + 三重驗證 + 晉級門 + darwin 相容測試的流水線。詳見 methodology/00-overview.md。

階段 0:   Adler 整書理解        → BOOK_OVERVIEW.md
階段 1:   5 個 agent 並行提取    → 候選方法論單元池
階段 1.5: 三重驗證篩選(知識驗證) → 通過的單元 (使用者輕確認)
階段 1.6: 獨立 Skill 晉級門(產品化驗證)→ promoted / router 去向
階段 2:   RIA++ 建構能力卡       → .cangjie/capabilities/cards/<slug>.md
階段 3:   Zettelkasten 連結      → verified.yaml 的 also_read + GLOSSARY
階段 4:   壓力測試 (darwin 相容)  → 評測用例 + 回爐淘汰
階段 5:   編譯與交付             → cangjie.py compile(single/pack)+ DIGEST.md + 安裝

v2.5 關鍵變化(ADR-002): 階段 2–4 不再直接把每個單元寫成獨立的 Skill 目錄,而是產出一份 Capability Bundle(books/<slug>/.cangjie/capabilities/verified.yaml + cards/*.md)。single 與 pack 都從這同一份 Bundle 由 scripts/cangjie.py compile 確定性編譯,兩者引用同一組穩定 capability_id。舊的 one-to-one 輸出仍受支援(legacy-pack,見 docs/migrations/2026-08-25-v2.0-to-v2.1.md)。

何時呼叫此 skill

使用者說類似:

  • 「幫我拆《窮查理寶典》」
  • 「把毛選蒸餾成 skill」
  • 「把這個 B 站影片/播客/課程蒸餾成 skill」
  • 「distill this book into skills: 」
  • 「我想把這本書的方法論做成可用的 skill」

輸入要求

在開始前必須從使用者處確認:

腳本依賴: 確定性腳本(scripts/)需要 Python 3.10+ 與 PyYAML(python3 -m pip install pyyaml)。缺 PyYAML 時先執行 python3 scripts/cangjie.py doctor 自檢,它會給出安裝指引。

  1. 內容文字來源: PDF / EPUB / TXT / 字幕檔案 / 轉寫稿路徑,或可存取的純文字。不要在沒有文字的情況下「憑記憶」蒸餾 — 寧可停下來問使用者要。(影片/播客建議先用 video-downloader 類工具拿到轉寫文字)
  2. 內容元資訊: 書籍是「書名 + 作者 + 出版年」; 影片/播客/課程是「標題 + 作者(UP 主/主播/講者) + 發布時間」。用於目錄命名和稽核。
  3. 使用目的(決定輸出模式推薦): 學習/查閱這本書 → 傾向 single;接入日常工作流、跨書組合 → 傾向 pack。不確定時按 single-first 原則先推薦 single。
  4. 是否首次試點: 如果使用者是第一次用 cangjie-skill,建議先蒸餾 1 份內容驗證流程再批量。

非書籍內容的欄位映射: 章節類欄位對影片填時間戳或分 P,對播客填集數,對課程填講次 — 保證可追溯即可。

輸出結構

books/<book-slug>/
├── PIPELINE_STATE.md          # 流水線狀態: 目前階段 + 進度 (斷點續跑用)
├── BOOK_OVERVIEW.md           # 階段 0 產出: 主旨/骨架/術語/批判
├── verified.md                # 階段 1.5 產出: 通過三重驗證的單元 + 判定理由
├── coverage-audit.md          # 原書關鍵任務 → 候選 → 判定 → 實際交付去向
├── references.md              # 有依據但不執行的參考內容及交付映射
├── needs-review.md            # 來源/條件/測試缺口;不編譯為 active 能力
├── GLOSSARY.md                # 階段 3 產出: 全書共享術語詞典
├── DIGEST.md                  # 階段 5 產出: 面向讀者的精華長文
├── candidates/                # 階段 1 產出: 原始候選池 (稽核用)
├── rejected/                  # 階段 1.5 淘汰的單元 + 原因 (稽核用)
└── .cangjie/                  # v2.5 側車層(編譯事實來源 + 執行記錄)
    ├── capabilities/
    │   ├── verified.yaml      # Capability Bundle(唯一編譯事實來源, capability-bundle.schema.json)
    │   ├── cards/<slug>.md    # RIA 能力卡(R/I/A1/A2/E/B, 階段 2 產出)
    │   ├── resources/         # 能力明確宣告的 UTF-8 腳本、CSV/JSON/Markdown 模板(可選)
    │   ├── destinations.json  # 晉級/路由去向映射(階段 1.6 產出)
    │   └── book/{overview.md,glossary.md}
    ├── runs/<run-id>/         # 每次編譯/更新的決策報告與校驗日誌
    └── snapshots/             # 發布前快照(rollback 用)

最終交付物由 scripts/cangjie.py compile 從 Bundle 編譯(--output single 得到 1 個入口 + 能力卡;--output pack 得到 1 個來源路由入口 + 少量晉級 Skill)。

執行流程 (嚴格按順序)

斷點續跑: 開始前先檢查 books/<slug>/PIPELINE_STATE.md 是否存在。存在則讀取並從記錄的階段續跑,不要從頭重來。每完成一個階段,更新該檔案。

階段 0 — 整書理解

  1. 讀取使用者提供的書本文字。大檔案分塊閱讀。
  2. 執行 methodology/01-stage0-adler.md 中的 Adler 四步 (結構 / 解釋 / 批判 / 應用)。
  3. 按 templates/BOOK_OVERVIEW.md.template 填充,寫入 books/<slug>/BOOK_OVERVIEW.md。
  4. 把產出展示給使用者確認:「骨架我理解對了嗎?有沒有你希望重點突出的方向?」 得到確認再進入階段 1。

階段 1 — 5 個 sub-agent 並行提取

並行 spawn 5 個 Task sub-agents(使用 Agent 工具,一次呼叫中發起 5 個):

sub-agent讀取的 prompt上下文策略產出
框架提取器extractors/framework-extractor.md全量掃描(兼顧跨章節與單處完整機制)決策框架 / 思維模型 / 流程 / 排障
原則提取器extractors/principle-extractor.md全量掃描(含公式、表格、腳註)原則 / 清單 / 規則 / 計算口徑
案例提取器extractors/case-extractor.md檢索式取塊(局部命中型)書中實例、轉述案例、例題,標明類型
反例提取器extractors/counter-example-extractor.md檢索式取塊(局部命中型)書中警告的失敗模式
術語提取器extractors/glossary-extractor.md檢索式取塊 + 腳本預篩關鍵概念詞典

每個 sub-agent 獨立判斷、獨立輸出到 books/<slug>/candidates/<type>.md。

  • 長文字: 超出單個 sub-agent 上下文的內容,按 methodology/02-stage1-parallel-extract.md 的分塊策略處理;已建立內容索引(.cangjie/index/)時,檢索式 extractor 按索引取相關塊。
  • 覆蓋率硬門: 同時對照全量掃描候選和階段 0 的原書關鍵任務清單,不只檢查舊版通過項。重要任務須有候選及明確去向;有未解釋遺漏時補讀/退回全量掃描,不虛報零遺漏。
  • 降級方案: 目前環境不支援並行 sub-agent 時,用同樣 5 個 extractor prompt 串行執行,產出格式不變。

階段 1.5 — 三重驗證篩選(知識驗證)

讀取 methodology/03-stage1.5-triple-verify.md,對每個候選單元執行:

  • V1 來源充分性: 可定位原文足以支援限定範圍內的做法嗎?完整機制在一處講透也可通過。
  • V2 可執行性: 用合法的新輸入能完成任務並核驗結果嗎?不強求跨領域外推。
  • V3 任務增益: 能減少遺漏、統一口徑或穩定交付嗎?不要求作者獨創。

按 verified / reference / needs_review / rejected 分流,記錄依據及缺口;參考內容須映射到實際交付的 overview/glossary,不是所有未通過項都淘汰。更新 coverage-audit.md。

使用者輕確認 ★: 展示可執行候選、參考、待核查、淘汰四類及重要缺口,再進入階段 1.6;確認不能替代來源驗證。

階段 1.6 — 獨立 Skill 晉級門(產品化驗證)

讀取 methodology/03b-stage1.6-promotion-gate.md。知識驗證通過 ≠ 值得成為獨立 Skill。對每個單元評審五條判據(獨立意圖/獨立契約/獨立執行/獨立複用/獨立評測,前 3 條必須通過,後 2 條至少 1 條),把去向寫入 Bundle 的 promotion.destination(promoted / router)。未晉級單元不淘汰,保留為來源路由入口內的能力卡。可發現入口軟預算預設 8(含 1 個來源路由入口)。

階段 2 — RIA++ 建構能力卡

對每個通過的單元,按 methodology/04-stage2-ria-plus.md 建構 R / I / A1 / A2 / E / B 六段能力卡:

  • 卡片正文寫入 books/<slug>/.cangjie/capabilities/cards/<slug>.md(不帶 frontmatter,frontmatter 數據記入 Bundle);
  • 同時在 verified.yaml 登記該能力: 穩定 capability_id、intents、keywords、one_liner、importance(附依據)、frontmatter.description(A2 濃縮版)。
  • A1 區分原書案例與明確標記的合成演練;E 明確輸入、輸出、分支和完成標準。必要時透過 resources 明確宣告配套文字資源,見階段 2 說明。

階段 3 — Zettelkasten 連結

按 methodology/05-stage3-zettelkasten.md:

  1. 找出能力之間的引用關係,寫入 Bundle 中各能力的 also_read,並回填 A2 的「與相鄰能力的區分」
  2. 把 candidates/glossary.md 整理成 books/<slug>/GLOSSARY.md,並複製到 .cangjie/capabilities/book/glossary.md
  3. INDEX/路由表由編譯器從 Bundle 生成,不再手寫
  4. 把 references.md 中需保留的內容併入 Bundle 的 book/overview.md 或 book/glossary.md,在覆蓋稽核登記實際路徑;不把待核查內容偽裝為可執行方法

階段 4 — 壓力測試 (darwin 相容)

按 methodology/06-stage4-pressure-test.md,晉級能力測觸發,router 能力測可達;兩類都要實際完成代表任務並核對輸出,不能用「會呼叫」替代「做得對」。缺失輸出計入評測分母,未完成不得宣告通過。未過的回爐重做階段 2。

階段 5 — 編譯與交付

按 methodology/07-stage5-deliver.md:

  1. 生成 books/<slug>/DIGEST.md — 面向讀者的精華長文
  2. 執行 python3 scripts/cangjie.py compile --bundle books/<slug>/.cangjie/capabilities --out <目標目錄> --output auto,把決策報告展示給使用者輕確認(按推薦 / 改 single / 改 pack)
  3. 詢問使用者安裝位置,把編譯產物複製或 symlink 過去
  4. 告知使用者: 「已完成,可一鍵餵給 darwin-skill 自動進化」

品質紅線 (違反則阻止輸出)

  1. 每個能力必須通過全部三重驗證
  2. 每張能力卡必須有完整的 R / I / A1 / A2 / E / B 六段;A1 無原書案例時如實標註,合成演練不冒充書中事實
  3. 原文引用 ≤150 字/段 (英文 ≤100 詞/段)
  4. 每個 active 能力在 destinations.json 中恰好一個去向(promoted_to 或 served_by);未晉級能力必須可經來源路由入口到達
  5. 晉級 Skill 的 description 必須明確 trigger 條件,並與來源路由入口互有近鄰負例
  6. 編譯產物必須通過 scripts/validate_skill_pack.py(格式/相對引用/frontmatter 100%)
  7. 生成目錄唯讀:偵測到本地手改時不得靜默覆蓋(編譯器強制三選一)
  8. 關鍵任務覆蓋有可追溯去向;實際輸出評測與來源核查分別記錄。存在重要缺口只能交付明確標註範圍的草稿,不能宣稱完整通過

與 nuwa-skill / darwin-skill 的生態定位

  • nuwa-skill: 蒸餾人 (思維方式 / 表達 DNA)
  • cangjie-skill (本 skill): 蒸餾書 (方法論 / 框架 / 原則)
  • darwin-skill: 進化任意 skill

三者咬合: 本 skill 輸出的評測用例遵循 darwin-skill 格式,以便產出的 skill 可直接接入 darwin 做自動進化。

呼叫慣例

  • 永遠先試點 1 本 — 除非使用者明確說「批量」
  • 階段之間主動彙報進度 — 不要靜默跑完再 dump 結果
  • 不憑記憶拆書 — 沒文字就停下來問
  • 保留稽核軌跡 — candidates/ 和 rejected/ 都要留
  • 隨時可續跑 — 每完成一個階段就更新 PIPELINE_STATE.md,中斷後從狀態檔案恢復
  • 輸出策略持久化 — update/repair 預設沿用原輸出模式,不因新增材料靜默改變產物型態

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相關技能