Verdict. The architecture is what I’d copy. Pay the structuring cost once at conversion, then load a chapter only when a question needs it.
what it is
Converts a technical book, or any folder of documents, into a structured Agent Skill an agent can query instead of re-reading the PDF every turn.
It works in two halves. A deterministic Python extractor turns PDF, EPUB, DOCX, HTML, RTF, MOBI or TXT into clean text with chapter metadata. Then the repo’s own SKILL.md has the agent distill that text into frameworks, decision rules and anti-patterns.
The output is a skill directory.
SKILL.md, about 4k tokens, with the core mental models and a chapter indexchapters/chNN-*.md, about 1k tokens each, loaded only when neededglossary.md,patterns.md,cheatsheet.md
Run it with /book-to-skill ./my-book.pdf after installing with npx skills add. It targets Claude Code, GitHub Copilot CLI and Amp through the same SKILL.md format. The extractor also runs on its own as a Python CLI.
what I found
| Stars | 24,628 (2,577 forks), GitHub API, 2026-08-23 |
| Created | 2026-05-01 |
| Contributors | 27 |
| Tests | 29 pytest files with real edge cases (CJK supplementary plane, unbalanced code fences, output-dir security) |
| Release | v1.4.0 (2026-08-10) |
- The README calls the problem the “Discovery Loop Tax.” An agent reading a PDF re-fetches the table of contents and re-processes navigation every turn. The claimed result is 24 to 51 times fewer tokens per question. The method is in
docs/performance.md, with a script that measures it. - It refuses scanned PDFs on purpose. It checks the first pages for a text layer and tells you to run
ocrmypdfinstead of producing an empty skill. - The license covers the converter only. It ships no book content, processing is local, and the README tells you to keep skills built from third-party books private.
- It went viral fast. The engineering is real, but the maintenance base is thin for the star count.
compared to
- GBrain does vector search over a whole markdown corpus. book-to-skill pre-structures a single source for lazy loading.