book-review
Draft a long-form book review from your Reader highlights — synthesizing the book with your broader reading history to generate original arguments
What this skill does
Draft a long-form book review from a user's Reader highlights — not just the target book,
but pulling in related highlights from their entire library to build original arguments.
The goal is a review that's more interesting than the book itself: summary + critique + original ideas,
where the original ideas come from connecting the book to everything else the user has read.
## Readwise Access
Check if Readwise MCP tools are available (e.g. `mcp__readwise__reader_list_documents`). If they are, use them throughout. If not, use the equivalent `readwise` CLI commands instead (e.g. `readwise list`, `readwise read <id>`, `readwise highlights <id>`, `readwise search <query>`). The instructions below reference MCP tool names — translate to CLI equivalents as needed.
## Setup
1. **Check for persona file.** Read `reader_persona.md` in the current working directory if it exists. Use it to understand the user's interests, reading goals, and voice — this shapes the review's framing, what connections to prioritize, and what the user is likely to care about. If no persona file exists, proceed without it and ask the user about their purpose for reading the book if it's not obvious from their highlights.
2. **Parse the argument** as a book title or search term.
```
/book-review Merchant Kings
/book-review 7 Powers
```
---
## Phase 1: Pull the Book's Highlights
### 1.1 Find the book
Search Reader for the target book:
```
mcp__readwise__reader_search_documents(query="[book title]", category_in=["epub", "pdf"])
```
If no results, broaden to all categories. If multiple matches, list them and ask the user to pick.
### 1.2 Get highlights
```
mcp__readwise__reader_get_document_highlights(document_id="[book_id]")
```
Read every highlight. Count them. If fewer than 10, warn the user — may not be enough material
for a substantive review. Ask whether to proceed or wait.
### 1.3 Get the full document details
```
mcp__readwise__reader_get_document_details(document_id="[book_id]")
```
Pull title, author, summary, cover image. You'll need these for the final output.
---
## Phase 2: Extract Claims
Process every highlight into an atomic claim. This is the step that turns
"I highlighted this paragraph" into structured, searchable research material.
For each highlight:
1. Read the highlighted text and any user note/annotation
2. Write a single present-tense declarative claim (under 10 words when possible)
3. If the user left a note, weight the claim toward what the note focused on
**Claim quality standards:**
Good claims are specific, searchable facts or assertions:
- "chimney sweeps died of scrotal cancer from coal soot"
- "Ottoman harem trained slave girls as elite bureaucrats"
- "monsoon winds enabled global maritime trade"
Bad claims are vague or generic:
- "coal mining had health consequences"
- "the author discusses Ottoman succession"
- "interesting point about slavery"
**After processing all highlights**, review the full list. Reject and rewrite any that are:
- Generic/boring ("author discusses X")
- Duplicative (two claims saying the same thing differently — consolidate)
- Vague (doesn't stand alone without reading the highlight)
Store the claims as a working list grouped by theme. This becomes your outline.
---
## Phase 3: Search the Library for Related Material
This is what makes the review more than a summary. For each major theme cluster
from Phase 2, search the user's full Reader library for related content.
### 3.1 Theme-based searches
For each theme cluster (aim for 3-6 themes):
```
mcp__readwise__reader_search_documents(query="[theme keywords]", limit=20)
```
Pull highlights from the top hits:
```
mcp__readwise__reader_get_document_highlights(document_id="[related_doc_id]")
```
You're looking for:
- **Supporting evidence** from other sources that strengthens a claim
- **Contradictions** that complicate the book's argument
- **Parallel examples** from different domains (the user read about X in biology, the book says the same about economics)
- **The user's own prior thinking** visible in their notes/annotations on related docs
### 3.2 Author search
```
mcp__readwise__reader_search_documents(query="[book author name]")
```
Check if the user has read other work by the same author. Prior context enriches the review.
### 3.3 Extract related claims
For each relevant highlight from a related document, extract a claim the same way
as Phase 2. Tag it with its source document so you can cite it properly.
**Result:** You should now have:
- The book's claims (Phase 2), grouped by theme
- Related claims from the broader library (Phase 3), mapped to those same themes
- A sense of where the user's reading supports, complicates, or extends the book
---
## Phase 4: Supplement with Web Research
Fill gaps that the user's library doesn't cover. Keep this focused — the library
research is the core, web research is supplemental.
- Search for academic sources, author interviews, other reviews
- Look for Substack writers or bloggers covering the same topic
---
## Phase 5: Write the Review
A great book review has three elements (per the ACX Book Review Contest wisdom):
1. **Summary** — Show what the book is about and why it's interesting. Without this, readers are confused.
2. **Critique** — An actual quality and agreement judgment. Without this, it isn't a review.
3. **Original ideas** — Connect the book to broader patterns from the user's reading. Without this, nobody is particularly impressed.
The original ideas come from Phase 3 — the related highlights from the user's library.
This is the whole point of the skill.
### Structure
```
[Opening: What the book is and why it matters — a specific fact or scene, not a vague hook.
Leave a %% TODO %% for the user to add how they found the book and why they read it
if context wasn't already in the document note.]
## [Thematic section 1 — informative header, not clever]
[Summarize the book's argument on this theme. Use block quotes from the book's highlights.
Then EXPAND: bring in related material from the user's other reading. This is where the
review becomes more than a summary — it's synthesis.]
> "Block quote from the book" — Author, *Book Title*
[The user also highlighted something in [Related Document] that complicates/supports this:
weave it in naturally. Cite the source with a URL link to the original source, NOT the Reader link.]
## [Thematic section 2]
[Same pattern: book's argument → user's related reading → synthesis.
Each section should advance an argument, not just list facts.]
## [Thematic section 3+]
[Keep going. Organize by theme, not by chapter. Every section should have at least
one connection to something outside the book itself.]
## What the Book Gets Wrong (or Misses)
[Honest critique. Use the user's other reading as evidence where it contradicts
or complicates the book. This is where the related-document research pays off most.]
## Further Reading
- Description with [embedded link](url) for sources worth exploring that were NOT
linked above but are related to the core themes of this review.
```
### Voice Rules
You are drafting FOR the user, not impersonating them:
- **Don't manufacture emotion** — No "I was struck by", "I was fascinated to learn." State facts. The user adds reactions.
- **Don't manufacture personal details** — No "this reminded me of my childhood." If the user wrote something in a highlight note, reference it. Otherwise, leave a `%% TODO %%`.
- **Leave explicit gaps** — Use `%% TODO: [what the user should add] %%` for personal hooks. These signal where the user needs to fill in their own experience.
- **Honest about gaps** — "I don't know" beats hedging. If unsure, say so or leave a TODO.
- **First person** — You're writing a draft the user will edit, not a report about them.
- If a persona file exists, use it to inform which connections to prioritize and what framing the user would find natural — but still leave TODOs for personal detaiRelated in Code Review
gstack
IncludedFast headless browser for QA testing and site dogfooding. Navigate pages, interact with elements, verify state, diff before/after, take annotated screenshots, test responsive layouts, forms, uploads, dialogs, and capture bug evidence. Use when asked to open or test a site, verify a deployment, dogfood a user flow, or file a bug with screenshots. (gstack)
startup-due-diligence
IncludedLegal due diligence review for seed-stage and Series A startups (US, Delaware C-Corp focus). Supports both investor and founder perspectives. Capabilities include: (1) Interactive document review and issue spotting; (2) Document request list generation; (3) Cap table and SAFE/convertible note analysis; (4) Red flag identification with severity ratings; (5) Diligence report generation. TRIGGERS: due diligence, DD, startup investment, cap table review, Series A, seed round, investor diligence, legal review startup, SAFE analysis, convertible note, 409A, founder vesting.
interview-master
IncludedThis skill should be used when the user asks to "generate interview questions", "prepare for interview", "optimize resume", "conduct mock interview", "analyze git commits for resume", "generate resume from code", "review my resume", or mentions interview preparation, career assistance, or extracting project experience from git history. Provides comprehensive interview and career development guidance for both job seekers and interviewers.
fix-issue
IncludedFixes GitHub issues using parallel analysis agents for root cause investigation, code exploration, and regression detection. Reads issue context from gh CLI, searches codebase and memory for related patterns, generates a fix with tests, and links the resolution back to the issue via PR. Includes prevention analysis to avoid recurrence. Use when debugging errors, resolving regressions, fixing bugs, or triaging issues.
sf-apex
IncludedGenerates and reviews Salesforce Apex code with 150-point scoring. TRIGGER when: user writes, reviews, or fixes Apex classes, triggers, test classes, batch/queueable/schedulable jobs, or touches .cls/.trigger files. DO NOT TRIGGER when: LWC JavaScript (use sf-lwc), Flow XML (use sf-flow), SOQL-only queries (use sf-soql), or non-Salesforce code.
swift-development
IncludedComprehensive Swift development for building, testing, and deploying iOS/macOS applications. Use when Claude needs to: (1) Build Swift packages or Xcode projects from command line, (2) Run tests with XCTest or Swift Testing framework, (3) Manage iOS simulators with simctl, (4) Handle code signing, provisioning profiles, and app distribution, (5) Format or lint Swift code with SwiftFormat/SwiftLint, (6) Work with Swift Package Manager (SPM), (7) Implement Swift 6 concurrency patterns (async/await, actors, Sendable), (8) Create SwiftUI views with MVVM architecture, (9) Set up Core Data or SwiftData persistence, or any other Swift/iOS/macOS development tasks.