book-to-skill
Converts books and documents (PDF, EPUB, DOCX, HTML, Markdown, plain text, RTF, MOBI/AZW with Calibre) into structured agent skills, extracting frameworks…
Skill by lyh843
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/lyh843-book-to-skill
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, frontend, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/book-to-skill
What's inside
- Skill name
book-to-skill- Description
- Converts books and documents (PDF, EPUB, DOCX, HTML, Markdown, plain text, RTF, MOBI/AZW with Calibre) into structured agent skills, extracting frameworks, mental models, principles, techniques, and anti-patterns. Use when the user wants to study a document through GitHub Copilot CLI, Amp, or Claude Code, apply an author's frameworks while working, or build a reusable knowledge base from a file.
- License
- MIT
- Instructions
- 721 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
- Instructions read files in your home folder (~/.ssh, ~/.aws…)
Agent Skills spec issues
- body: 721 lines (spec recommends under 500)
Files (104)
- FUNDING.yml · .github/
- bug_report.md · .github/ISSUE_TEMPLATE/
- feature_request.md · .github/ISSUE_TEMPLATE/
- PULL_REQUEST_TEMPLATE.md · .github/
- dependabot.yml · .github/
- ci.yml · .github/workflows/
- codeql.yml · .github/workflows/
- deploy-docs.yml · .github/workflows/
- .gitignore
- AGENTS.md
- BACKERS.md
- CHANGELOG.md
- CLAUDE.md
- CONTRIBUTING.md
- LICENSE.md
- README.md
- README.ru.md
- SECURITY-NOTICE.md
- SECURITY.md
- SKILL.md
- __init__.py · book_to_skill/
- __main__.py · book_to_skill/
- cli.py · book_to_skill/
- config.py · book_to_skill/
- dependencies.py · book_to_skill/
- exceptions.py · book_to_skill/
- __init__.py · book_to_skill/parsers/
- calibre.py · book_to_skill/parsers/
- docx.py · book_to_skill/parsers/
- epub.py · book_to_skill/parsers/
- html.py · book_to_skill/parsers/
- pdf.py · book_to_skill/parsers/
- rtf.py · book_to_skill/parsers/
- text.py · book_to_skill/parsers/
- sanitize.py · book_to_skill/
- utils.py · book_to_skill/
- cliff.toml
- 404.md · docs/
- CNAME · docs/
- architecture.md · docs/
- banner.webp · docs/assets/
- booklin-casting.png · docs/assets/
- booklin-celebrating.png · docs/assets/
- booklin-confused.png · docs/assets/
- booklin.png · docs/assets/
- logo.png · docs/assets/
- og-card.jpg · docs/assets/
- faq.md · docs/
- how-it-works.md · docs/
- index.md · docs/
- install.md · docs/
- performance.md · docs/
- progressive-disclosure-evals.md · docs/research/
- robots.txt · docs/
- usage.md · docs/
- pd00-synthetic-book.txt · evals/fixtures/
- pd03-book.txt · evals/fixtures/
- pd03-metadata.json · evals/fixtures/
- replay_trajectories.json · evals/fixtures/
- mkdocs.yml
- …and 44 more
SKILL.md (first lines)
<!--
Cross-agent notes (informational; ignored by host agents):
- Compatible skill roots: GitHub Copilot CLI (~/.copilot/skills, ~/.agents/skills,
.github/skills, .claude/skills, .agents/skills), Amp (.agents/skills,
~/.config/agents/skills, ~/.config/amp/skills), Claude Code (~/.claude/skills).
- `allowed-tools` is intentionally omitted to stay agent-neutral: Copilot CLI uses
`shell`/MCP-server names, Claude uses `Bash`/`Read`/`Write`/`Glob`/`Grep`, Amp
adds `shell_command`. The skill needs shell (to run extract.py) and file
read/write — each host will prompt for those on first use.
- Argument hint: <path-to-document-folder-or-glob>... [skill-name-slug]
-->
# Book-to-Skill Converter
Transform written knowledge into actionable agent skills by extracting structure — not producing summaries.
## Philosophy
Books contain crystallized expertise: frameworks, principles, and techniques that took years to develop. This skill extracts that knowledge into a format GitHub Copilot CLI, Amp, Claude Code, or another compatible agent can leverage repeatedly.
**Extract structure, not summaries.** A skill isn't a book report. It's a toolkit of:
- Named frameworks (mental models with clear application)
- Actionable principles (rules that guide decisions)
- Techniques (step-by-step methods)
- Anti-patterns (what to avoid and why)
- Voice calibration (how the author thinks and communicates)
**Preserve the author's precision.** Frameworks often have specific names for reasons. "The 5 Whys" isn't interchangeable with "ask why multiple times." Capture the exact formulation.
**Layer depth appropriately.** Simple books → simple skills. Complex books with 10+ frameworks → skills with reference files and on-demand chapters.
---
## Modes of Operation
Four paths available. Route based on what the user asks:
### 1. Full Conversion (Default)
**Trigger:** User provides one or more document/directory/glob paths without special instructions
**Action:** Run all steps below (Steps 0–9)
**Output:** Complete skill with SKILL.md, chapters/, glossary, patterns, cheatsheet
### 2. Analyze Only
**Trigger:** User says "analyze", "just extract", or "I want to review before generating"
**Action:** Run Steps 0–3, then produce a structured extraction report (frameworks, principles, techniques found). Stop — do NOT generate skill files.
**Output:** Analysis report for user review
### 3. Generate from Prior Analysis
**Trigger:** User has existing analysis notes or previously ran analyze-only
**Action:** Skip Steps 0–3, use the provided analysis as input, run Steps 4–9
**Output:** Skill files from the provided analysis
### 4. Update / Fold-in (Existing Skill)
**Trigger:** User provides one or more new source paths and indicates they want to update an existing skill (either by pointing to the existing skill folder, providing a skill slug that already exists in `SKILLS_HOME`, or explicitly requesting an update).
**Action:** Run Step 0 (out-of-scope check), Step 1 (validate inputs), Step 1.5 (identify book type), and Step 2 (extract new files). Then skip to Step 5 (identify/detect existing skill path) and run the **Update / Fold-in Workflow** to merge the new content into the existing skill files.
**Output:** Updated existing skill with new/revised chapter summaries and merged indexes/glossaries.
---
## Skill Locations
This converter can run from multiple skill systems. When looking for this converter's helper script or writing the generated book skill, prefer these locations in order:
1. GitHub Copilot CLI personal skills: `~/.copilot/skills/`
2. Cross-agent personal skills (Copilot, Amp, Codex): `~/.agents/skills/`
3. Claude Code personal skills: `~/.claude/skills/`
4. Project-local Copilot skills: `.github/skills/`
5. Project-local Claude skills: `.claude/skills/`
6. Project-local Amp / Copilot skills: `.agents/skills/`
7. Amp global skills: `~/.config/agents/skills/`
8. Amp legacy global skills: `~/.config/amp/skills/`
For **generated** book skills, pick a destination that the user's host agent can actually discover (see Step 5). When more than one valid root exists, ask the user once and remember the answer for the session — do not silently default.
---
## Step 0 — Out-of-scope check
If no arguments are provided, stop and respond:
> "book-to-skill requires a supported document path, folder, or glob pattern. Usage: `book-to-skill <path-to-document-folder-or-glob>... [skill-name-slug]`"
Throughout the workflow:
- Identify the input paths and the optional skill slug.
- If the last argument is not a file, folder, or glob that exists or matches any files, and it looks like a skill slug (e.g. lowercase hyphens, alphanumeric), treat it as `SKILL_NAME`.
- Treat all other arguments as the list of `INPUT_PATHS`.
- If any input path is an existing skill directory (contains `SKILL.md` and a `chapters/` sub-folder), or if `SKILL_NAME` matches an existing skill slug in `SKILLS_HOME`, flag this run as an **Update/Fold-in** operation (Mode 4).
---
## Step 1 — Validate input
Verify that there is at least one supported file, directory, or glob pattern among the `INPUT_PATHS`.
For directories and globs, expand them to find matching supported files (`.pdf`, `.epub`, `.docx`, `.txt`, `.md`, `.markdown`, `.rst`, `.adoc`, `.html`, `.htm`, `.rtf`, `.mobi`, `.azw`, `.azw3`).
If no supported files are found, stop with a clear error message.
---
## Step 1.5 — Identify content type
Before extracting, ask the user:
> "What kind of content do these sources have? This helps me choose the best extraction method.
>
> 1. **Technical** — has code blocks, tables, formulas, diagrams (e.g. programming books, academic papers, architecture guides)
> 2. **Text-heavy** — mostly prose, few or no tables/code (e.g. management, productivity, narrative non-fiction)
> 3. **Not sure** — I'll use the fast method and warn you if quality seems limited"
Store the answer as `BOOK_TYPE`:
- Option 1 → `BOOK_TYPE=technical`
- Option 2 → `BOOK_TYPE=text`
- Option 3 → `BOOK_TYPE=text`
**If `BOOK_TYPE=technical`**, inform the user before proceeding:
> "📐 Technical mode selected — using Docling for structure-aware extraction (tables, code blocks, formulas preserved as markdown). This takes ~1.5s per page, so expect a few minutes for longer sources. Starting now…"
**If `BOOK_TYPE=text`**, inform:
> "📄 Text mode selected — using the fastest suitable extractor for each file type. Plain text/Markdown/HTML are usually ready in seconds; PDFs use pdftotext when available."From lyh843/AgentSkills, MIT.
More from lyh843/AgentSkills
- 0.552score
codebase-map
lyh843
Generate an interactive, self-contained HTML map of any codebase — a dependency graph of its modules, a zoomable lines-of-code treemap, and stack-specific…
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
ning-python-scientific-plotting
lyh843
Create, refine, or review scientific figures in Python using the bundled plotting notes.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
codebase-summary
lyh843
Generate a structured summary of any codebase — architecture overview, tech stack, module map, and full API inventory with a Mermaid diagram.
SkillBFreshness: B★ 1Claude Code +9 - 0.539score
codebase-overview
lyh843
Systematic codebase exploration and architecture mapping.
SkillBFreshness: B★ 1Claude Code +9 - 0.502score
battery-status
lyh843
Check the current battery and charging information on this Linux machine, especially when the user asks for charging wattage, battery percentage, charging…
SkillCFreshness: C★ 1Claude Code +9 - 0.502score
grounded-file-qa
lyh843
Read one or more local files, especially PDFs, and answer follow-up questions grounded in those sources.
SkillCFreshness: C★ 1Claude Code +9 - 0.502score
ai-paper-digest
lyh843
Collect and summarize recent AI papers with emphasis on major ML/AI venues, journals, arXiv, and paper-discovery sites.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
lecture-note-writer
lyh843
Use when the user wants course notes or study notes written from local slide PDFs, PPTs, or existing markdown notes, especially when the notes should match…
SkillCFreshness: C★ 1Claude Code +9 - 0.493score
concept-wiki-html
lyh843
Build a static, local-source-grounded HTML knowledge page from course notes and slides, organized as one big topic with clickable concept nodes and deeper…
SkillCFreshness: C★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 12, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/lyh843/AgentSkills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from lyh843
- 0.552score
codebase-map
lyh843
Generate an interactive, self-contained HTML map of any codebase — a dependency graph of its modules, a zoomable lines-of-code treemap, and stack-specific…
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
ning-python-scientific-plotting
lyh843
Create, refine, or review scientific figures in Python using the bundled plotting notes.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
codebase-summary
lyh843
Generate a structured summary of any codebase — architecture overview, tech stack, module map, and full API inventory with a Mermaid diagram.
SkillBFreshness: B★ 1Claude Code +9 - 0.539score
codebase-overview
lyh843
Systematic codebase exploration and architecture mapping.
SkillBFreshness: B★ 1Claude Code +9 - 0.502score
battery-status
lyh843
Check the current battery and charging information on this Linux machine, especially when the user asks for charging wattage, battery percentage, charging…
SkillCFreshness: C★ 1Claude Code +9 - 0.502score
grounded-file-qa
lyh843
Read one or more local files, especially PDFs, and answer follow-up questions grounded in those sources.
SkillCFreshness: C★ 1Claude Code +9
Cite this page
book-to-skill. Agent Mart. https://agentmart.dev/skills/lyh843-book-to-skill (last updated 2026-10-24)