Skill detail
read-book
Reads books and long PDFs in chunks and extracts per-chapter notes, summaries, quotes, or spaced-repetition study Q&A cards.
Why we recommend it: Extracts structured notes, summaries, and study Q&A from books and PDFs, directly serving student study notes.
Inspect before use
Read the source instructions and check the requirements before you install this skill.
SKILL.md
The saved excerpt is a snapshot from when this skill was listed. The external source remains the complete and most current version.
---
name: read-book
description: When you want to read and extract structured notes from a book — PDF, EPUB, MOBI, markdown, .txt, pasted text, or URL to a public-domain work. Reads in chunks (by chapter when a TOC exists, by 50-page blocks otherwise), extracts per-chapter TL;DR + key concepts + quotes + action items + frameworks, and offers to capture to second-brain raw/ as a highlights- file. Four modes — notes (default, chapter-by-chapter), summary (whole-book TL;DR + 3–5 takeaways), quotes (pull-quote highlights only), study (notes + Q&A spaced-rep prep). Triggers on "/read-book," "read this book," "extract notes from this PDF," "what's in this book," "summarize this ebook," "pull quotes from this." Sibling to watch-video (same content-consumption pattern, different medium).
metadata:
version: 0.1.1
---
# /read-book — Extract structured notes from books and long PDFs
Sibling to `watch-video`. Same content-consumption pattern: ingest → chunk → extract → optionally capture to second-brain.
## Step 1 — Parse input
Accept:
- **PDF**: file path (Claude reads PDFs natively in chunks via `Read pages:"X-Y"`)
- **EPUB / MOBI**: file path (needs `pandoc` or `ebook-convert` to extract — see `references/sources.md`)
- **Markdown / .txt**: file path (read directly)
- **Pasted text**: just use what was pasted
- **URL** to public-domain text: fetch it with your agent's URL-fetch tool or `curl` (Project Gutenberg, archive.org, etc.)
Detect type from file extension. If ambiguous, ask.
## Step 2 — Parse mode
| Invocation | Mode | What you get |
|---|---|---|
| `/read-book <input>` | **notes** (default) | Chapter-by-chapter: TL;DR + key concepts + quotes + action items + frameworks |
| `/read-book <input> summary` | summary | Whole-book TL;DR (1 paragraph) + 3–5 key takeaways + who-it's-for |
| `/read-book <input> quotes` | quotes | Pull-quote highlights only, with chapter context and page refs |
| `/read-book <input> study` | study | Notes mode + 10–20 spaced-repetition Q&A cards |
If the book is long (>200 pages) and mode is unspecified, default to `notes` but warn it'll take many tool calls.
## Step 3 — Get the text + chunk
See `references/sources.md` for per-source ingestion. Output of this step: text content + a chunking plan.
**Chunking strategy** (hybrid, in priority order):
1. **By chapter** if a TOC exists (PDF with bookmarks, EPUB/MOBI converted via pandoc preserves chapter headers)
- Use `pdfinfo <pdf> | grep "Pages"` for PDFs
- Use `pdftotext -layout <pdf> | grep -i "^chapter\|^part"` for chapter detection, or read TOC from page 1–5
- EPUB: after `pandoc <epub> -o tmp.md`, chunks are between `# Chapter X` headers
2. **By page count** for PDFs without TOC: 50 pages per chunk
3. **By character count** for text/markdown: 30,000 chars per chunk (~7,500 words)
Save the chunking plan as `~/Documents/books/<author>-<title-slug>-<YYYY-MM-DD>/chunks.json`:
```json
{
"source": "<path>",
"title": "<book title>",
"author": "<author>",
"type": "pdf",
"total_pages": 287,
"chunking": "by-chapter",
"chunks": [
{"i": 0, "label": "Introduction", "pages": "1-12"},
{"i": 1, "label": "Chapter 1: The Problem", "pages": "13-32"},
...
]
}
```
## Step 4 — Read each chunk
Loop:
1. Read chunk N (`Read` tool with `pages:` for PDF, full file for text/MD)
2. Extract per the chosen mode (see `references/output-modes.md` for templates)
3. Append the chunk's notes to `~/Documents/books/<workdir>/notes-<NNN>-<label-slug>.md`
For PDFs, **don't read the whole book in one call** — Claude's PDF tool maxes around 10 pages. Process chunks individually.
If a chunk fails to extract anything useful (e.g., it's mostly diagrams or front-matter), log the skip and continue.
## Step 5 — Aggregate into final notes file
Combine all chunk notes into a single `~/Documents/books/<workdir>/notes.md` matching the mode's full-book template (see `references/output-modes.md`).
Top of the file always has the metadata block + Read the full source on GitHub (opens external page)