[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-44":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":15,"starSnapshotCount":15,"syncStatus":28,"lastSyncTime":29,"discoverSource":30},44,"book-to-skill","virgiliojr94\u002Fbook-to-skill","virgiliojr94","Turn any technical book PDF into a Claude Code skill — ready to study, reference, and use while you work.",null,"Python",4937,619,34,1,0,493,2052,4364,1479,30.38,false,"master",true,[],"2026-06-12 02:00:07","\u003Ch1 align=\"center\">📚 book-to-skill\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>Turn any technical book (PDF or EPUB) into a Claude Code skill — ready to study, reference, and use while you work.\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FClaude_Code-Skill-blueviolet?style=for-the-badge\" alt=\"Claude Code Skill\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPDF%20%2B%20EPUB-supported-green?style=for-the-badge\" alt=\"PDF + EPUB\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Feffort-high-orange?style=for-the-badge\" alt=\"Effort: high\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-blue?style=for-the-badge\" alt=\"MIT License\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#-why\">Why\u003C\u002Fa> ·\n  \u003Ca href=\"#-what-it-generates\">What it generates\u003C\u002Fa> ·\n  \u003Ca href=\"#-usage\">Usage\u003C\u002Fa> ·\n  \u003Ca href=\"#-requirements\">Requirements\u003C\u002Fa> ·\n  \u003Ca href=\"#-how-it-works\">How it works\u003C\u002Fa> ·\n  \u003Ca href=\"#-faq\">FAQ\u003C\u002Fa> ·\n  \u003Ca href=\"#-install\">Install\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n## 🤔 Why\n\nYou buy a great technical book. You read it once. Three months later you can't remember chapter 7 existed.\n\nThe usual workarounds don't help:\n- 📄 \"Let me just search the PDF\" → you get a list of pages, not answers\n- 🧠 \"I'll ask Claude about this book\" → it either hallucinates or says it doesn't have the content\n- 📝 \"I'll take notes as I read\" → you end up with a 200-line doc you never open again\n\n**book-to-skill solves this by turning the book into a structured skill Claude loads on demand.**\n\nOnce installed, you just type `\u002Fyour-book-slug replication` and Claude reads the right chapter and answers from the actual content. No hallucination. No digging through PDFs. The book becomes part of your workflow.\n\n---\n\n## 📦 What it generates\n\nRunning `\u002Fbook-to-skill your-book.pdf` (or `.epub`) creates a full skill at `~\u002F.claude\u002Fskills\u002F\u003Cslug>\u002F`:\n\n| File | Purpose | Size |\n|------|---------|------|\n| `SKILL.md` | Core mental models + chapter index | ~4,000 tokens |\n| `chapters\u002Fch01-*.md` … | One file per chapter, loaded on-demand | ~1,000 tokens each |\n| `glossary.md` | Every key term, alphabetically sorted with chapter refs | ~1,500 tokens |\n| `patterns.md` | All techniques, algorithms, and design patterns | ~2,000 tokens |\n| `cheatsheet.md` | Decision tables and quick-reference rules | ~1,000 tokens |\n\n**Chapter files are loaded on-demand** — they don't count against the skill budget until you ask about that topic.\n\n---\n\n## 🚀 Usage\n\n```\n\u002Fbook-to-skill \u003Cpath-to-pdf-or-epub> [skill-name-slug]\n```\n\n**Examples:**\n\n```bash\n# PDF — derive skill name from filename\n\u002Fbook-to-skill ~\u002FDownloads\u002Fdesigning-data-intensive-applications.pdf\n\n# EPUB — specify a custom slug\n\u002Fbook-to-skill ~\u002Fbooks\u002Fclean-code.epub clean-code\n\n# Full path with explicit name\n\u002Fbook-to-skill \u002Ftmp\u002Fddd-evans.pdf domain-driven-design\n```\n\nAfter the skill is created, use it like any other Claude Code skill:\n\n```bash\n\u002Fdesigning-data-intensive-apps                  # load core mental models\n\u002Fdesigning-data-intensive-apps replication      # find and explain a topic\n\u002Fdesigning-data-intensive-apps ch05             # dive into chapter 5\n\u002Fdesigning-data-intensive-apps \"what chapters do you have?\"\n```\n\n---\n\n## 🔧 Requirements\n\nAt least one extraction tool must be installed.\n\n**For PDF — choose by book type:**\n\n| Book type | Tool | Install | Speed |\n|-----------|------|---------|-------|\n| Text-heavy (prose, few tables) | `pdftotext` (poppler) | `sudo apt install poppler-utils` | ⚡ instant |\n| Text-heavy fallback | `PyPDF2` | `pip3 install PyPDF2` | ⚡ instant |\n| Text-heavy fallback | `pdfminer.six` | `pip3 install pdfminer.six` | ⚡ instant |\n| **Technical (code, tables, formulas)** | **`docling`** | `pip3 install docling` | ~1.5s\u002Fpage |\n\n> Before extraction begins, the skill asks you whether the book is **technical** or **text-heavy** and picks the right tool automatically. Docling preserves markdown tables and code blocks; pdftotext is faster for prose-only books.\n\n**For EPUB:**\n\n| Tool | Install | Quality |\n|------|---------|---------|\n| `ebooklib` + `beautifulsoup4` | `pip3 install ebooklib beautifulsoup4` | ⭐⭐⭐ Best |\n| stdlib `zipfile` | built-in — no install needed | ⭐⭐ Always available |\n\nThe extraction script tries tools in order and uses the first available. If nothing is found, it tells you exactly which command to run.\n\n---\n\n## ⚙️ How it works\n\n```\nPDF or EPUB\n     │\n     ▼\nStep 1.5 — \"Technical or text-heavy book?\"\n     │\n     ├── technical → Docling  (tables + code blocks as markdown, ~1.5s\u002Fpage)\n     └── text      → pdftotext → PyPDF2 → pdfminer  (instant)\n     │\n     ▼\nscripts\u002Fextract.py --mode \u003Ctechnical|text>\n  EPUB → ebooklib → stdlib zipfile\n     │\n     ├── \u002Ftmp\u002Fbook_skill_work\u002Ffull_text.txt\n     └── \u002Ftmp\u002Fbook_skill_work\u002Fmetadata.json\n               │\n               ▼\n          Claude analyzes structure\n          (title, author, chapters, ToC)\n               │\n               ▼\n          Generates per-chapter summaries  (800–1,200 tokens each)\n          technical → includes Code Examples + Reference Tables sections\n          Generates glossary, patterns, cheatsheet\n          Generates master SKILL.md with core mental models\n               │\n               ▼\n          ~\u002F.claude\u002Fskills\u002F\u003Cslug>\u002F  ✅ written\n          \u002Ftmp\u002Fbook_skill_work\u002F     🗑️  cleaned up\n```\n\n**Extraction benchmark** (103-page technical book, CPU only):\n\n| Method | Time | Tokens | Tables | Code blocks |\n|--------|------|--------|--------|-------------|\n| pdftotext | 0.1s | 27K | 0 | 0 |\n| Docling | 164s | 27K (+1.2%) | 48 | 36 |\n\n\u003Cdetails>\n\u003Csummary>Design principles (click to expand)\u003C\u002Fsummary>\n\n1. **Density over completeness** — a 1,000-token summary beats a 10,000-token excerpt\n2. **Practitioner voice** — \"Use X when Y\", not \"The book explains X\"\n3. **Front-loaded SKILL.md** — compaction keeps the first ~5,000 tokens; the most important content comes first\n4. **On-demand chapters** — the topic index tells Claude which file to read; chapters load only when needed\n5. **Never raw text** — always synthesize, summarize, extract signal from the source\n\n\u003C\u002Fdetails>\n\n---\n\n## ❓ FAQ\n\n**\"Can't I just dump the PDF\u002FEPUB into my Claude project context?\"**\n\nYou can — but every conversation will burn that token budget upfront. A 400-page book is ~200K tokens. With a skill, only the chapters relevant to your question load. The rest stays on disk until you need it.\n\nMore importantly: raw text injection is retrieval. A skill is reasoning. When you load a chapter file, Claude isn't searching for keyword matches — it's working with pre-extracted named frameworks, principles, and mental models structured for application, not for reading.\n\n---\n\n**\"Isn't this just RAG?\"**\n\nRAG works at query time: chunk the book → embed everything → find similar vectors → inject into prompt. It's optimized for \"find me the part that talks about X.\"\n\nbook-to-skill works at compile time: one deep analysis run extracts the author's actual frameworks, names them, describes when to use each, captures the anti-patterns. The output is structure the author spent years building — not a similarity search over their sentences.\n\nRAG answers: *\"here are chunks close to your query.\"*  \nA skill answers: *\"here are the 12 frameworks this author built, ready to reason with.\"*\n\nFor searching across 50+ books, RAG wins. For going deep on one book and using its frameworks while you work, a skill wins.\n\n---\n\n**\"Popular books are already in Claude's training data. Why bother?\"**\n\nFor widely-known books (Clean Code, DDIA, Pragmatic Programmer), Claude has general knowledge — but it's compressed, averaged across the entire internet's discussion of the book, and may hallucinate specific quotes or chapter locations.\n\nbook-to-skill works from your actual copy. Every framework name, every anti-pattern list, every chapter number is grounded in the text you provided. No training data drift, no hallucinated chapter titles.\n\nIt also shines for books Claude doesn't know at all: niche technical references, internal company documentation, recent publications, translated works.\n\n---\n\n**\"NotebookLM handles multiple books better.\"**\n\nAbsolutely true — if your workflow is \"I have 80 books and I want to search across all of them,\" NotebookLM is the right tool.\n\nbook-to-skill is built for a different job: you want to go deep on one book and have its frameworks embedded in your coding or writing workflow, not in a separate browser tab. It's less \"library search\" and more \"the author is sitting next to you while you work.\"\n\n---\n\n## 📥 Install\n\nCopy this into your Claude Code session:\n\n```\nInstall book-to-skill: https:\u002F\u002Fraw.githubusercontent.com\u002Fvirgiliojr94\u002Fbook-to-skill\u002Fmaster\u002FSKILL.md\n```\n\nOr manually:\n\n```bash\nmkdir -p ~\u002F.claude\u002Fskills\u002Fbook-to-skill\u002Fscripts\n\ncurl -o ~\u002F.claude\u002Fskills\u002Fbook-to-skill\u002FSKILL.md \\\n  https:\u002F\u002Fraw.githubusercontent.com\u002Fvirgiliojr94\u002Fbook-to-skill\u002Fmaster\u002FSKILL.md\n\ncurl -o ~\u002F.claude\u002Fskills\u002Fbook-to-skill\u002Fscripts\u002Fextract.py \\\n  https:\u002F\u002Fraw.githubusercontent.com\u002Fvirgiliojr94\u002Fbook-to-skill\u002Fmaster\u002Fscripts\u002Fextract.py\n```\n\nThen in any Claude Code session:\n\n```bash\n\u002Fbook-to-skill ~\u002Fpath\u002Fto\u002Fyour-book.pdf\n# or\n\u002Fbook-to-skill ~\u002Fpath\u002Fto\u002Fyour-book.epub\n```\n\n---\n\n## 📁 Repository structure\n\n```\nbook-to-skill\u002F\n├── SKILL.md              # Skill definition + step-by-step instructions\n├── scripts\u002F\n│   └── extract.py        # PDF + EPUB extraction (pdftotext \u002F PyPDF2 \u002F pdfminer \u002F ebooklib \u002F zipfile)\n└── README.md             # This file\n```\n\n---\n\n## License\n\nMIT\n\n## Star History\n\n\u003Ca href=\"https:\u002F\u002Fwww.star-history.com\u002F?repos=virgiliojr94%2Fbook-to-skill&type=date&legend=top-left\">\n \u003Cpicture>\n   \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=virgiliojr94\u002Fbook-to-skill&type=date&theme=dark&legend=top-left\" \u002F>\n   \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=virgiliojr94\u002Fbook-to-skill&type=date&legend=top-left\" \u002F>\n   \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=virgiliojr94\u002Fbook-to-skill&type=date&legend=top-left\" \u002F>\n \u003C\u002Fpicture>\n\u003C\u002Fa>\n","book-to-skill 是一个将技术书籍（PDF 或 EPUB 格式）转换为 Claude Code 技能的工具，方便用户在工作时学习、参考和使用。其核心功能是将书籍内容结构化处理后生成多个文件，包括章节索引、术语表、模式和技术总结等，并支持按需加载章节内容以节省技能预算。项目采用 Python 编写，适合需要频繁查阅技术书籍资料的开发者或研究人员使用，在提高工作效率的同时避免了传统方法如手动搜索 PDF 或依赖不可靠的记忆所带来的不便。",2,"2026-06-11 02:30:36","CREATED_QUERY"]