Skip to content
Business
Skill

/read-book

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

BOOST
From plugin
makerskills
86422 skills
Install
$ npx -y skills add coreyhaines31/makerskills --skill read-book --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/read-book

Context preview

The summary Claude sees to decide when to auto-load this skill.

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

SKILL.md

read-book.SKILL.md
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`:

{
  "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 + the second-brain-compatible frontmatter:

source: <file path or URL>
captured: YYYY-MM-DD
type: book
book_title: <title>
author: <author>
mode: notes
chunks: <count>
chunking: <strategy>

# <title> by <author>

## TL;DR
<2–3 sentences>

## Key takeaways
1. ...

## Chapter notes
...

## Cross-references (suggested for wiki)
- Could connect to [[Longevity Biomarkers]] (per Chapter 3 discussion of biomarkers)
- Could connect to [[Productivity & Systems]] (per Chapter 7 framework)

The cross-reference suggestions are advisory — they're suggestions for `/sb compile` to act on, not auto-applied. Keep responsibilities separated.

Step 6 — Offer to capture to second-brain

Ask:

> *"Want to capture this to second-brain? I'll write it to `${SECOND_BRAIN_VAULT:-$HOME/Documents/SecondBrain}/raw/highlights-<slug>.md` matching your vault's `highlights-` type prefix."*

Default is **ask**, never auto-write. If yes: 1. Copy the final `notes.md` (with the second-brain-compatible frontmatter at top) to `${SECOND_BRAIN_VAULT:-$HOME/Documents/SecondBrain}/raw/highlights-<slug>.md` 2. Tell the user the path 3. Suggest: *"Run `/sb compile` later to merge this into wiki pages — the cross-reference suggestions in the footer are starting points."*

If the user skips capture, the workdir still has everything — they can grab the file later.

Step 7 — Report

In chat:

  • One-line headline: `<title> · <author> · <total_pages or word count> · <mode> · <chunks processed>`
  • Workdir path
  • The TL;DR section
  • For `notes` / `study` modes: brief list of top 3 takeaways
  • For `quotes` mode: top 3 quotes
  • If captured to second-brain: that path too

Modes (quick invocations)

| Invocation | Mode | Behavior | |---|---|---| | `/read-book <input>` | notes | Full pipeline, default mode | | `/read-book <input> summary` | summary | Just TL;DR + key takeaways (1 read pass for short books, sampled chapters for long) | | `/read-book <input> quotes` | quotes | Chapter-by-chapter, but on

Read more
Ships withmakerskills

AI agent skills for the personal operator's craft. Decisions, research, second-brain workflows, content rotation, scenario modeling, CFO cadence, domain hunts, and the meta-skills to author more. Built for founders and indie operators.

Get the whole plugin

Other skills on makerskills.