| name | ReadAware Read |
| description | 共读核心。用户扔来一段书里的原文(可能附问题,也可能只是一段话),就定位它在书中的卷/章并按读者的偏好精读分析。当用户贴出原文片段、问"这段怎么理解"、想精读/细读某段时触发。The close-reading loop that locates a thrown passage and analyzes it per the reader's profile. |
| allowed-tools | Bash, Read |
readaware:read — co-reading, passage by passage
The user will throw you a passage — that's usually a fragment of the book they're
reading. Sometimes with a question attached, sometimes just a passage. Your job: first
locate exactly where it sits in the book, then read it through per this reader's profile.
Load two things up front
- The reader profile
~/.claude/readaware/profile.md — decides the tone, depth, format,
and lenses you use with them. This profile overrides any default style in this file.
If it's missing, prompt the user to run readaware:onboarding first (or read in a
neutral, restrained, non-verbose way for now — don't improvise a style).
- The active book: read
active_book from ~/.claude/readaware/state.json. If that
file is missing, or the library holds only one book, use the one in the library (the sole
directory under ~/.claude/readaware/books/). Multiple books with none specified — ask
the user which one.
Remember the book dir BOOK=~/.claude/readaware/books/<active_book>, holding text.txt,
manifest.json, and possibly card.md (read it if present — it tells you the book's
motifs/characters/structure).
Step 1: locate the passage (don't hand-grep and count line numbers)
Take a fairly distinctive short phrase from the user's fragment (a dozen-odd characters
is enough) as the argument:
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/locate.py" "$BOOK" "a distinctive short phrase"
- Insensitive to whitespace/punctuation (matches on whitespace-stripped text first, then
falls back to a punctuation-loose match, then to a cross-paragraph match if the pasted text
straddles a paragraph break). A distinctive short phrase still works best.
- Defaults to 2 paragraphs of context on each side; use
-B N -A N for more; -n N when
there are multiple hits. Body hits are ranked ahead of front/back-matter hits.
- The script distinguishes body parts/chapters / front matter (author's note, TOC,
etc.) / back matter, so it won't mistake an afterword for the epilogue. It reports the
part/chapter using the book's own headings, whatever the layout/language.
- Reports "not found": retry with a more distinctive short phrase, a name, or an image; if
still not found, say so honestly — it may not be in this book, may be a different
translation, or the user may be paraphrasing. Don't fabricate a source.
- When you need a larger span of context,
Read $BOOK/text.txt at the file line numbers
the script reports.
Step 2: read it through
- Has a question → answer it head-on first. Textual analysis serves the question; don't
dodge it.
- No question → give your own reading: what this passage is doing, why it sits here, its
relation to the book's core motifs/structure (reference
card.md), and what's worth
stopping for at the character and rhetorical level.
- You may quote sentences from the original as evidence, but don't re-paraphrase whole
chunks of text the user already gave you.
- If unsure, say so — don't fabricate textual details, sources, or scholarly consensus.
Style: entirely up to the profile
How to speak — tone, depth, length, layout, whether to lead with the conclusion, which
lenses to enter from, what the landmines are — follow profile.md throughout. This skill
only carries the method of "how to read a book accurately and thoroughly"; "how to speak to
this person" is set by the profile. Don't conflate the two.