FIRE Card to EPUB
Turn FIRE analysis cards into a small validated EPUB book.
Use this skill when the user asks:
FIRE 卡片變成電子書把分析卡做成 EPUB教我怎麼從 FIRE 到電子書上傳 GitHub 成為技能,附上電子書檔案把 Obsidian 知識卡整理成 EPUB
This skill bridges two workflows:
| Source Skill | Role |
|---|---|
fire-analysis-card | Analyze article/note material into Fact, Index, Relation, Encyclopedia |
project-note-json-to-epub | Package structured notes into EPUB with TOC, index, links, and validation |
Core Workflow
-
Create or collect FIRE cards.
- Each card should have a stable
code,title,body,keywords, and optionalfire_card. - Keep each body chunk compact: one concept per card.
- Each card should have a stable
-
Build a project-note JSON manuscript.
- Use
assets/fire-to-epub-tutorial.jsonas the starting schema. - Required top-level fields:
title,creator,language,chunks. - Optional but recommended fields:
subtitle,index,orthogonal_check.
- Use
-
Generate EPUB.
bashpython3 scripts/fire_cards_to_epub.py assets/fire-to-epub-tutorial.json --out assets/fire-to-epub-tutorial.epub --download-copy assets/download.epub
-
Verify the output.
- The script validates XML, href targets, anchors, backlink counts, index links, and file type.
- Delivery is acceptable only when
errors: 0.
-
Upload as a GitHub Skill asset.
- Include
SKILL.md,scripts/fire_cards_to_epub.py, the sample JSON, and the sample EPUB. - Keep the EPUB in
assets/so users can download or inspect it from GitHub.
- Include
JSON Schema
Minimal manuscript:
json{ "title": "FIRE 卡片變成電子書", "creator": "Codex", "language": "zh-Hant", "chunks": [ { "code": "1.1", "title": "FIRE 先成卡", "body": "正文內容。", "keywords": ["FIRE", "知識卡"], "fire_card": "可選:固定寬度 FIRE 卡文字" } ] }
Recommended manuscript:
json{ "title": "FIRE 卡片變成電子書", "subtitle": "從分析卡到 EPUB 的最小流程", "creator": "Codex", "language": "zh-Hant", "chunks": [ { "code": "1.1", "title": "FIRE 先成卡", "body": "先把文章壓成穩定知識卡,再進入電子書結構。", "keywords": ["FIRE", "知識卡", "Fact"] } ], "index": [ {"id": "K001", "keyword": "FIRE", "weight": 100} ], "orthogonal_check": { "ok": true, "axes": { "analysis_axis": "Fact、Index、Relation、Encyclopedia", "book_axis": "TOC、正文、索引、驗證" } } }
If index is missing, the script derives it from chunks[].keywords.
EPUB Output
The generator writes:
| EPUB File | Purpose |
|---|---|
mimetype | EPUB signature, first and uncompressed |
META-INF/container.xml | Rootfile pointer |
OEBPS/content.opf | Metadata, manifest, spine |
OEBPS/nav.xhtml | EPUB navigation |
OEBPS/Text/toc.xhtml | Directory card |
OEBPS/Text/part001.xhtml | Chapter/card pages |
OEBPS/Text/index.xhtml | Keyword index cards |
OEBPS/Styles/style.css | Readable style |
Validation Contract
Before delivery, report:
texterrors: 0 title: ... all_href_count: ... index_forward_links_tested: ... body_return_links_tested: ... index_entries: ... true_body_cjk_count: ... file type: EPUB document
If errors is not 0, fix the JSON or generator and rebuild.
Teaching Script
Explain the workflow to the user like this:
fire-analysis-card把文章變成穩定知識卡。- 把多張 FIRE 卡整理成
chunks[]。 - 從
keywords建立K001、K002等索引卡。 - EPUB 由三層組成:目錄卡、正文卡、書末索引卡。
- 每個正文關鍵詞回鏈到索引卡;索引卡再連回正文。
- 驗證所有 EPUB 連結,確認
errors: 0。
Notes
- Keep EPUB attachments in
assets/. - Do not hand-edit generated EPUB internals after validation; fix JSON or script and rebuild.
- Use short Chinese card bodies; EPUB is a sequence of cards, not a long essay dump.


