Atlas / Skills / virgiliojr94 / Book To Skill

Book To SkillCAUTION

skills/virgiliojr94/book-to-skill

Turn any technical book PDF into a Claude Code skill — ready to study, reference, and use while you work.

Verdict
CAUTION
Grade
B
Trust score
86 /100
Version
—
Hosts
4 documented
License
MIT
Stars
35,466
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

book-to-skill

English · Русский · 简体中文

Turn any technical book, document folder, or collection of sources into a unified agent skill — ready to study, reference, and use while you work in GitHub Copilot CLI, Amp, Claude Code, Codex, Hermes Agent, OpenCode, or OpenClaw.

Read from source at commit 77cc86dc19a7OBSERVED · 2026-10-20
Advertisement
02

Install

Commands as the repository documents them. They are shown, not run.

git clone https://github.com/virgiliojr94/book-to-skill.git
pip install pytest ruff
npx skills add virgiliojr94/book-to-skill
git clone https://github.com/virgiliojr94/book-to-skill.git ~/.claude/skills/book-to-skill
npx skills add virgiliojr94/book-to-skill
git clone https://github.com/virgiliojr94/book-to-skill.git ~/.claude/skills/book-to-skill
03

Host compatibility

What the documentation claims. We have not run a compatibility test.

HostStatusNotes
claude-codementioned
codexmentioned
copilotmentioned
openclawmentioned
04

What it tells the agent

The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.

---
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, Claude Code, Hermes Agent, OpenCode, or OpenClaw, apply an author's frameworks while working, or build a reusable knowledge base from a file."
---

<!--
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),
    Hermes Agent ($HERMES_HOME/skills, .hermes/skills, .agents/skills),
    OpenClaw (${OPENCLAW_STATE_DIR:-~/.openclaw}/skills, .agents/skills, skills/;
    ~/.agents/skills only with the default state).
    OpenCode (~/.config/opencode/skills, ~/.claude/skills, .opencode/skills,
    ~/.agents/skills, .agents/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, Hermes Agent, OpenCode, OpenClaw, 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; OpenClaw with its default state): `~/.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 / OpenClaw skills: `.agents/skills/`
7. Amp global skills: `~/.config/agents/skills/`
8. Amp legacy global skills: `~/.config/amp/skills/`
9. Hermes Agent personal skills: `$HERMES_HOME/skills/` (defaults to `~/.hermes/skills/`)
10. Hermes Agent project skills: `.hermes/skills/` or `.agents/skills/`
11. OpenClaw personal skills: `${OPENCLAW_STATE_DIR:-~/.openclaw}/skills/` (active state; `~/.agents/skills/` is shared only with the default state)
12. OpenClaw project skills: `.agents/skills/` or `skills/`
11. OpenCode personal skills: `~/.config/opencode/skills/` or `~/.agents/skills/`
12. OpenCode project skills: `.opencode/skills/` or `.agents/skills/`

For **generated** book skills, prefer the user-level cross-agent root `~/.agents/skills/` — one physical copy serves the cross-agent hosts and OpenClaw when it uses its default state. Copilot CLI and Amp discover it natively; Claude Code needs a symlink from `~/.claude/skills/<skill_name>` (created in Step 10, see Step 5 for the rules). Pick a host-private or project-local root only when the user explicitly asks for one. `BOOK_TO_SKILL_SCOPE=project` or `personal` can make that choice explicit for automation; do not ask a mandatory scope question merely because both scopes are available.

---

## Step 0 — O
05

Trust audit

CAUTIONgrade B · trust 86/100 Install with care. The audit found things worth knowing before you trust its output.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
declared (2 observation(s))
Shell
none-observed
Dependencies
pinned
Secrets in source
none-found

Findings (18)

MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
tools/scan_generated_skill.py:272
"tool.exfiltration_shape",
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
tools/scan_generated_skill.py:273
"contains exfiltration-shaped tool or sensitive-data language",
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
book_to_skill/utils.py:404
m["سیام"] = 30  # ZWNJ spelling common in Persian typography
LOWNetwork egress · net.beacon_words · CWE-200, CWE-319
tests/test_scan_generated_skill.py:124
"tool.exfiltration_shape",
LOWObfuscation / stealth · obf.homoglyph · CWE-506, CWE-94
tests/test_book_to_skill.py:862
"Глава 1 Введение\nсодержание\n"
LOWObfuscation / stealth · obf.homoglyph · CWE-506, CWE-94
tests/test_book_to_skill.py:863
"ГЛАВА 2 Методы\nсодержание\n"
LOWObfuscation / stealth · obf.homoglyph · CWE-506, CWE-94
tests/test_book_to_skill.py:864
"Глава 3 Результаты\nсодержание"
LOWObfuscation / stealth · obf.homoglyph · CWE-506, CWE-94
tests/test_book_to_skill.py:869
text = "## Глава 1 Первая\nсодержание\n## Глава 2 Вторая\nсодержание"
LOWObfuscation / stealth · obf.homoglyph · CWE-506, CWE-94
tests/test_book_to_skill.py:883
"Κεφάλαιο 1 Εισαγωγή\nπεριεχόμενο\n"
LOWObfuscation / stealth · obf.rtl_override · CWE-506, CWE-94
tests/test_sanitize_bidi_controls.py:30
""  # LEFT-TO-RIGHT EMBEDDING
LOWObfuscation / stealth · obf.rtl_override · CWE-506, CWE-94
tests/test_sanitize_bidi_controls.py:31
""  # RIGHT-TO-LEFT EMBEDDING
LOWObfuscation / stealth · obf.rtl_override · CWE-506, CWE-94
tests/test_sanitize_bidi_controls.py:32
""  # POP DIRECTIONAL FORMATTING
LOWObfuscation / stealth · obf.rtl_override · CWE-506, CWE-94
tests/test_sanitize_bidi_controls.py:33
""  # LEFT-TO-RIGHT OVERRIDE
LOWObfuscation / stealth · obf.rtl_override · CWE-506, CWE-94
tests/test_sanitize_bidi_controls.py:34
""  # RIGHT-TO-LEFT OVERRIDE
LOWObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
tests/test_book_to_skill.py:722
"පරිච්ඡේදය ෨ ක්රම\nසාරාංශය\n"
LOWObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
tests/test_book_to_skill.py:723
"පරිච්ඡේදය 3 ප්රතිඵල\nසාරාංශය"
LOWObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
tests/test_book_to_skill.py:976
assert _chapter_number("فصل سیام") == 30
LOWObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
tests/test_book_to_skill.py:988
heading = "فصل سیام"

Gates applied: no_behavioural_pass.

Audited 2026-10-20 · audit v0.4.1 · source sha 77cc86dc19a7full audit observations/trust-audit/skill/virgiliojr94__book-to-skill.json · Report an issue / request a re-scan
06

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-2077cc86dc19a7CAUTIONB86first audit
07

Questions

What does the book-to-skill — virgiliojr94/book-to-skill skill do?

Turn any technical book PDF into a Claude Code skill — ready to study, reference, and use while you work.

Is book-to-skill — virgiliojr94/book-to-skill safe to install?

With care. The audit graded it B (86/100) and found 18 things worth knowing before you trust this skill, listed below with the exact line each was found on.

What can book-to-skill — virgiliojr94/book-to-skill access on my machine?

The audit observed that it reaches the network. Each of those is consistent with what it says it does. Secrets in the source: none found.

Which assistants does book-to-skill — virgiliojr94/book-to-skill work with?

Its documentation mentions claude-code, codex, copilot and openclaw. That is what the text claims, not a compatibility test we ran.

How current is this page?

The grade is for one exact copy of the source (77cc86dc19a7), read on 2026-10-20. The repository is watched, and a new audit runs when it changes — this is the first audit.

Add this badge to your README

Shows this page's audit result and links back to it. It updates when the audit does.

ModelsAtlas audit badge

Markdown
[![ModelsAtlas audit: Book To Skill](https://modelsatlas.com/skills/virgiliojr94/book-to-skill/badge.svg)](https://modelsatlas.com/skills/virgiliojr94/book-to-skill/)

Not your listing, or something out of date? Claim or update your listing.

Advertisement