read-book について
read-book は書籍や長い PDF から構造化ノートを作るスキルです。章や分量ごとに処理し、要約、引用、学習カードを生成できます。研究や意思決定に使え、second-brain への保存も選べます。
主な機能
- 01PDF、EPUB、MOBI、Markdown、テキストを読み込み
- 02章や分量ごとに分割して処理
- 03ノート、要約、引用、Q&A カードを生成
- 04メタデータ付きノートに集約
- 05second-brain への保存を選択可能
活用シーン
- 01長い書籍の章ごとの要点を抽出
- 02間隔反復用の学習カードを作成
- 03章の情報付きで引用を収集
- 04書籍ノートを second-brain に整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ coreyhaines31/ makerskills --skill read-bookインストール後、Claude Code で/read-bookを入力して読み込まれたか確認します。
同梱ファイルreferences/output-modes.mdreferences/sources.md
詳細
/read-book — 書籍や長い PDF から構造化されたノートを抽出する
watch-video の関連機能です。同じコンテンツ消費パターンを使用します:取り込み → 分割 → 抽出 → 必要に応じてセカンドブレインに保存。
ステップ 1 — 入力を解析する
次の入力を受け付けます:
- PDF:ファイルパス(Claude は
Read pages:"X-Y"を使って PDF をチャンク単位でネイティブに読み取ります) - EPUB / MOBI:ファイルパス(抽出には
pandocまたはebook-convertが必要です。references/sources.mdを参照してください) - Markdown / .txt:ファイルパス(そのまま読み取ります)
- 貼り付けたテキスト:貼り付けられた内容をそのまま使います
- パブリックドメインのテキストの URL:エージェントの URL 取得ツールまたは
curlを使って取得します(Project Gutenberg、archive.org など)
ファイル拡張子から種類を判別します。不明な場合は確認してください。
ステップ 2 — モードを解析する
| 呼び出し | モード | 出力内容 |
|---|---|---|
/read-book <input> | notes(デフォルト) | 章ごとの内容:要約 + 主要な概念 + 引用 + アクション項目 + フレームワーク |
/read-book <input> summary | summary | 書籍全体の要約(1 段落)+ 重要なポイント 3~5 個 + 対象読者 |
/read-book <input> quotes | quotes | 章の文脈とページ参照を付けた、引用文のハイライトのみ |
/read-book <input> study | study | ノートモードの内容 + 間隔反復用の Q&A カード 10~20 枚 |
書籍が長く(200 ページ超)、モードが指定されていない場合は、デフォルトで notes を使いますが、多数のツール呼び出しが必要になることを警告してください。
ステップ 3 — テキストを取得して分割する
ソースごとの取り込み方法は references/sources.md を参照してください。このステップの出力は、テキストコンテンツとチャンク分割計画です。
チャンク分割戦略(優先順位順のハイブリッド方式):
-
目次がある場合は章ごと(しおり付き PDF、または pandoc で変換した際に章の見出しが保持される EPUB/MOBI)
- PDF の場合は
pdfinfo <pdf> | grep "Pages"を使います - 章を検出するには
pdftotext -layout <pdf> | grep -i "^chapter\|^part"を使うか、1~5 ページの目次を読み取ります - EPUB:
pandoc <epub> -o tmp.mdの実行後、# Chapter Xの見出し間をチャンクにします
- PDF の場合は
-
目次がない PDF は、ページ数ごとに分割します:1 チャンクあたり 50 ページ
-
テキスト/Markdown は、文字数ごとに分割します:1 チャンクあたり 30,000 文字(約 7,500 語)
チャンク分割計画を ~/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"},
...
]
}
ステップ 4 — 各チャンクを読む
次のループを実行します:
- チャンク N を読み取ります(PDF は
pages:を指定してReadツールを使い、テキスト/MD はファイル全体を読み取ります) - 選択したモードに従って抽出します(テンプレートは
references/output-modes.mdを参照してください) - チャンクのノートを
~/Documents/books/<workdir>/notes-<NNN>-<label-slug>.mdに追加します
PDF の場合、書籍全体を 1 回の呼び出しで読まないでください。Claude の PDF ツールは最大で約 10 ページまでです。チャンクごとに処理してください。
チャンクから役立つ情報を抽出できなかった場合(図が大半を占める場合や、前付け部分など)は、スキップしたことを記録して続行してください。
ステップ 5 — ノートを集約して最終ファイルを作成する
すべてのチャンクのノートを、選択したモードの書籍全体用テンプレート(references/output-modes.md を参照)に沿って、1 つの ~/Documents/books/<workdir>/notes.md にまとめます。
ファイルの先頭には、常にメタデータブロックとセカンドブレイン互換のフロントマターを置きます:
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)
相互参照の提案は参考情報です。/sb compile が実行するための提案であり、自動適用はされません。それぞれの役割を分けてください。
ステップ 6 — セカンドブレインへの保存を提案する
次のように確認します:
「これをセカンドブレインに保存しますか?ボルトの
highlights-種別プレフィックスに合わせて、${SECOND_BRAIN_VAULT:-$HOME/Documents/SecondBrain}/raw/highlights-<slug>.mdに書き込みます。」
デフォルトは確認であり、自動書き込みはしません。ユーザーが希望する場合:
- 最終版の
notes.md(先頭にセカンドブレイン互換のフロントマターがあるもの)を${SECOND_BRAIN_VAULT:-$HOME/Documents/SecondBrain}/raw/highlights-<slug>.mdにコピーします - パスをユーザーに伝えます
- 次のように提案します:「後で
/sb compileを実行すると、これを Wiki ページに統合できます。フッターの相互参照の提案は出発点として使えます。」
ユーザーが保存を見送った場合も、作業ディレクトリにはすべてのファイルが残ります。後でファイルを取得できます。
ステップ 7 — レポート
チャットで以下を報告します。
- 1 行の見出し:
<title> · <author> · <total_pages or word count> · <mode> · <chunks processed> - 作業ディレクトリのパス
- TL;DR セクション
notes/studyモードの場合:主なポイントを 3 つ簡潔に列挙quotesモードの場合:引用を 3 つ- second-brain に保存した場合:そのパスも報告
モード(簡単な呼び出し)
| 呼び出し | モード | 動作 |
|---|---|---|
/read-book <input> | notes | パイプライン全体を実行するデフォルトのモード |
/read-book <input> summary | summary | TL;DR と主なポイントのみ(短い本は 1 回の読み取り、長い本は章をサンプリング) |
/read-book <input> quotes | quotes | 章ごとに処理しますが、引用のみを出力 |
/read-book <input> study | study | メモ + 間隔反復カード形式の Q&A |
/read-book <input> --capture | (any) | 確認手順を省略し、second-brain の raw/ に自動で書き込み |
/read-book <input> --render pdf | (any) | 最終版の notes.md も pandoc で PDF に変換します(~/.local/share/makerskills/render.css を使用)。references/output-modes.md を参照してください。 |
/read-book <input> --render html | (any) | 上記と同じですが、HTML に変換します |
連携先
second-brain— 主な連携先です。highlights-<slug>.mdをraw/に書き込みます。その後、/sb compileで wiki ページに統合します。deep-research— リサーチの質問から本が見つかった場合は、次に/read-bookを実行します。メモはリサーチ概要にフィードバックされます。business-brainstorm— アイデアを評価する際(例:類似モデルを扱うビジネス書)、read-book が構造化された根拠を提示します。decide— 権威ある人物の著作が意思決定の鍵となる場合(例:「VC から資金を調達すべきか?」→ Naval / Jason Cohen を読む)、read-bookが関連する章を抽出します。slide-deck— 本の要点から講演資料を作成します(ブックトークのパターン)。watch-video— 関連するスキルで、同じコンテンツ消費のパターンを使います。オーディオブックの場合は、watch-video transcriptモードを使います。nonfictionskills/fictionskills— 本を書くためにリサーチする場合、このスキルで比較対象となるタイトルを読みます。
エラー処理
| 失敗 | 対応 |
|---|---|
| pandoc / ebook-convert がない状態で EPUB/MOBI を処理 | ユーザーに brew install pandoc または brew install calibre を案内します(calibre には ebook-convert が含まれます)。 |
| PDF がスキャン画像である(テキストレイヤーがない) | 先に OCR を行うよう提案します:brew install ocrmypdf && ocrmypdf <pdf> <pdf-ocr.pdf> |
| PDF に検出可能な目次がない | 50 ページごとのチャンクに切り替えます。メタデータにその旨を記載します。 |
| 本が異例に長い(500 ページ超) | コストと所要時間を警告し、全メモの代わりに要約モードを希望するかユーザーに尋ねます。 |
| チャンクの抽出結果が空 | そのチャンクをスキップして記録し、続行します。処理全体を失敗させないでください。 |
品質に関する注意事項
- 元の内容が分からなくなるほど要約しないでください。 30 ページの章なら、メモは 3 行ではなく 8~15 行にします。圧縮はよいことですが、内容を平板化するのはよくありません。
- 具体的な情報を保持してください。 名前、数字、日付、引用はそのまま残します。後で「Andy Wilkinson は X について何と言ったか」を検索して見つけられることが、重要な目的です。
- 引用は厳密に扱ってください。 引用として示す場合は、一字一句そのまま書き写します。可能であればページ番号も記載します。
- アクション項目を明示してください。 本を読んで「X をするべきだ」と思った場合は、明示的に示します。これらは最も価値の高い成果です。
- フレームワークは個別の箇条書きにしてください。 著者がフレームワーク(例:「9 次元フィルター」、「Save the Cat のビート」)に名前を付けている場合は、メモ内でその名前を挙げます。