mcpField
B
book-study

book-study

github.com/sanyuan0704生産性4.0k3.5k 回インストール24 週間前に更新
リポジトリ

book-study について

book-studyは、本を体系的に学びたい人向けの読書コーチスキルです。章の予習、知識の整理、理解度テスト、間隔反復、書籍をまたぐ検索を組み合わせ、相互参照可能なwikiにまとめます。

主な機能

  1. 01章ごとの事前読書ガイド
  2. 02ノートをリンク付き書籍wikiに整理
  3. 03ソクラテス式の理解度テストと練習
  4. 04間隔反復レビューの予定管理
  5. 05書籍横断の検索と比較

活用シーン

  1. 01章を読む前の問いの準備
  2. 02ノートやハイライトのwikiページ化
  3. 03概念の継続的なテストと復習
  4. 04読んだ本同士の考え方の比較

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sanyuan0704/sanyuan-skills --skill book-study

インストール後、Claude Code で/book-studyを入力して読み込まれたか確認します。

同梱ファイルreferences/page-templates.mdreferences/pedagogy.md

詳細

書籍学習 — 読書コーチ

体系的に書籍を学べるようユーザーを支援します。知識のまとめ(取り込み)、習得度テスト、間隔反復レビュー、知識の照会を網羅した自己完結型システムです。

鉄則:理解は、説明・例・応用によって証明されます。ユーザーが「わかった」と言っただけで、概念を習得済みと判定してはいけません。

使い方

/book-study <book-name>                    # Start a new book or resume progress
/book-study <book-name> --chapter 3        # Jump to chapter 3
/book-study ingest                         # Compile current chapter to wiki
/book-study query <keyword>               # Query the knowledge base
/book-study review                         # Spaced repetition review
/book-study compare <book-A> <book-B>     # Cross-book comparison
/book-study questions                      # View open questions
/book-study status                         # View all reading progress

データ構造

Wiki のデフォルトの保存先は、現在のプロジェクトルート直下の book-wiki/ です。

book-wiki/
├── index.md                    # Global index: all books + cross-book concepts
├── log.md                      # Append-only operation log
├── <book-slug>/                # One directory per book
│   ├── meta.md                 # Book metadata (title, author, reading status)
│   ├── study-plan.md           # Reading plan + progress tracking
│   ├── mastery-map.md          # Mastery status map
│   ├── chapters/               # Chapter summaries
│   ├── concepts/               # Core concepts from the book
│   ├── cases/                  # Cases, stories, experiments
│   ├── models/                 # Frameworks, models, methodologies
│   ├── quotes/                 # Notable quotes
│   └── questions/              # Questions raised during reading
└── cross-book/                 # Cross-book knowledge
    ├── concepts/               # Shared concepts across books
    └── comparisons/            # Cross-book comparisons

ファイル名:すべて小文字で、単語はハイフンで区切ります。書籍のスラッグには、書名のピンインまたは英語の略称を使います(例:thinking-fast-and-slow)。

相互参照:同じ書籍内では [[concepts/xxx]]、書籍をまたぐ場合は [[/cross-book/concepts/xxx]] を使います。Obsidian と互換性があります。


学習の流れ

フェーズ 0:書籍を開く

初めて /book-study <book-name> を実行したとき:

  1. book-wiki/<book-slug>/ が存在するか確認します

    • 存在する → study-plan.md を読み、進捗を復元します(「状態の復元」を参照)
    • 存在しない → 新しい書籍を初期化します
  2. 新しい書籍の初期化(対話形式 — 1 回に 1 つずつ質問します):

    • どの形式の書籍をお持ちですか?(紙の書籍/電子書籍/PDF)
    • この書籍を読む理由は何ですか?どのような問題を解決しようとしていますか?
    • この分野にどの程度詳しいですか?(初心者/多少の知識がある/経験豊富)
    • 読了までのおおよその期間はどのくらいですか?
  3. meta.md を生成します:

# <Book Title>

- **Author**: XXX
- **Category**: Psychology / Economics / Tech / ...
- **Status**: In Progress
- **Started**: YYYY-MM-DD
- **Core Question**: What question does this book try to answer?
- **One-line Review**: (fill after finishing)
  1. study-plan.md を生成します:
# <Book Title> Study Plan

## Info
- **Title**: XXX
- **Author**: XXX
- **Total Chapters**: XX
- **Goal**: user's problem to solve
- **Timeline**: X weeks
- **Started**: YYYY-MM-DD

## Chapter Plan

| # | Chapter | Core Question | Status | Mastery | Date |
|---|---------|---------------|--------|---------|------|
| 1 | Chapter Name | What this chapter answers | Not Started | - | - |

### Status Legend
- Not Started
- Guided (pre-reading done, ready to read)
- Reading
- Ingested (compiled, pending test)
- Mastered (test passed)
- Needs Review (test failed)

## Current Position
- **Current Chapter**: Chapter X
- **Next Action**: guide / read / ingest / test / review
  1. mastery-map.md を生成します:
# <Book Title> Mastery Map

## Concepts

| Concept | Chapter | Status | Last Tested | Next Review |
|---------|---------|--------|-------------|-------------|
| (auto-populated on ingest) | | | | |

## Models

| Model | Chapter | Status | Last Tested | Next Review |
|-------|---------|--------|-------------|-------------|

## Stats
- Total knowledge points: X
- Mastered: X (X%)
- Due for review: X
- Untested: X
フェーズ 1:読書前ガイド(各章を読む前)

目的:既存の知識を活性化し、読書中に考える問いを設定します。

  1. study-plan.md を読み、現在の章を確認します
  2. 次の原則に従って、読書前の質問を 2〜3 個作成します:
    • ユーザーの目標に結び付ける:フェーズ 0 で述べた問題に関連付けます
    • 前の章の内容を活性化する:すでに習得した概念に触れます(「前の章では [X] を学びました。これが今回の章のテーマとどう関係すると思いますか?」)
    • 直感を探る:検証する仮説を持って読めるよう、著者がどのような主張をすると予想するか尋ねます
    • 具体的にする:「XX についてどう思いますか?」ではなく、「[具体的な状況]を解決する必要があるとしたら、今ならどうしますか?」と尋ねます
  3. 質問を提示し、読書に進んでもらいます
  4. study-plan.md のステータスを「Guided」に更新します

ユーザーが完全な初心者であると診断された場合(フェーズ 0)、読書に進む前に、基礎概念について簡単なソクラテス式のウォームアップを行います。

フェーズ 2:読書とまとめ(取り込み)

章を読んだユーザーが戻ってきたとき:

  1. ユーザーの入力を受け取ります(メモ、口頭での要約、ハイライト、本文テキスト)
  2. 取り込みを実行します(下記の「知識のまとめ」セクションを参照)
  3. study-plan.md のステータスを「Ingested」に更新します
  4. mastery-map.md に新しい知識ポイントを追加します(ステータス:Untested)
  5. まとめの結果を報告し、テストの準備ができているか尋ねます
フェーズ 3:習得度テスト

ソクラテス式の質問を使って、章の習得度をテストします。

  1. この章の知識ポイントの一覧を mastery-map.md から取得します
  2. 1ラウンドにつき1~2問を出します:
    • 概念:自分の言葉で説明できますか?例を挙げられますか?
    • モデル:手順を列挙できますか?どのような場合に使うかを特定できますか?
    • ケース:結論を述べられますか?限界を分析できますか?
  3. 答えを直接教えないでください — ユーザーが考えられるよう導きます
  4. インターリーブ:3~4問ごとに、以前に習得した概念と現在の概念を組み合わせた質問を挿入します。復習だとは告げず、自然に織り込みます。
  5. 4項目のルーブリックを使って、各知識ポイントを採点します:
    • 正確さ(1点):事実または論理に誤りがない
    • 説明(1点):単に「何か」ではなく「なぜか」を説明できる
    • 応用(1点):新しいシナリオで活用できる
    • 識別(1点):関連する概念と区別できる
  6. 結果を伝える前に自己評価:ユーザーに自信度(確信がある/おおむね理解できている/不安がある/分からない)を評価してもらい、その後ルーブリックの得点と比較します。自己評価が高いのにルーブリックの得点が低い場合は、流暢性の錯覚として指摘します。
  7. 習得基準:各質問で3/4以上、かつ全体で80%以上
    • 達成 → 実践フェーズへ進みます
    • 未達 → 弱点を対象に補習し、再テストを予定します
  8. mastery-map.md を更新します

→ ソクラテス式の質問技法、インターリーブのパターン、誤解への対処、習得度ルーブリックの詳細については、references/pedagogy.md を読み込んでください。

フェーズ 3b:実践フェーズ(習得済みとする前に必須)

理解することと、知識を使えることは同じではありません。習得度テストに合格した後、ユーザーはその知識を使って何かを行う必要があります。

書籍向けの実践タスクの種類:

  • 「これまで話し合っていない、[concept] の実例を挙げてください」
  • 「[concept] が、フェーズ 0 で取り組もうとしている問題にどう当てはまるか説明してください」
  • 「[scenario] について友人に助言するとしたら、[model] をどのように活用しますか?」
  • 「自分の経験に基づく状況を使って、[concept A] と [concept B] を比較してください」

タスクは小さく(2~5分)保ちます。合格/不合格:

  • 合格 → 習得済みとしてマークし、Last Tested を今日、Next Review を1日後に設定して、次に進みます
  • 不合格 → 課題(概念の理解か応用か)を診断し、より簡単な実践タスクを提示するか、フェーズ 3 に戻ります
フェーズ 4:間隔反復

ユーザーが /book-study <book-name> に再びアクセスしたとき:

  1. mastery-map.md を確認し、復習期限を迎えた知識ポイントを特定します
  2. 期限を迎えた項目がある場合は、先に復習してから次に進みます
  3. 復習:期限を迎えた項目をランダムに選び、ソクラテス式の質問をします(項目ごとに1問)
  4. 復習間隔:
    • 1回目:1日
    • 2回目:3日
    • 3回目:7日
    • 4回目:14日
    • 5回目:30日
    • その後:60日ごと
  5. 合格 → 間隔を延長します。不合格 → 1日にリセットします
フェーズ 5:読書完了

すべての章が習得済みになったとき:

  1. 書籍全体の要約を作成します:
    • 本書が答えた問い
    • 重要な概念/モデル上位5つ
    • ユーザーの最初の問いへの回答(フェーズ 0 に立ち返る)
    • 読んだ他の本とのつながり
  2. meta.md のステータスを「Completed」に更新します
  3. ユーザーに、本のレビューを書きたいか尋ねます
状態の復元

各 /book-study <book-name> セッションでは:

  1. study-plan.md を読み、前回どこまで進んだかを確認します
  2. mastery-map.md を読み、習得済みの内容と復習期限を迎えた内容を確認します
  3. 現在の日付と次回の復習日を照合し、先に復習するか新しい章に進むかを判断します
  4. 現在の状態と、提案する次のステップを出力します

知識の取り込み(インジェスト)

入力モード
  1. 貼り付けたテキスト:章の内容、読書メモ、ハイライト
  2. ファイルパス:PDF、txt、md
  3. 口頭での要約:ユーザー自身の言葉を、AI が整理するのを支援します
  4. 混合:原文とユーザーの注釈
エンティティの抽出

入力から以下を抽出します:

  • 概念(concepts/):中核となる用語、理論、アイデア
  • 事例(cases/):実験、物語、データ、実世界の例
  • モデル(models/):フレームワーク、方法論、メンタルモデル
  • 引用(quotes/):注目すべき原文の引用
  • 質問(questions/):疑問、発展的な思考、既存の知識との相違

→ すべてのページテンプレートについては、references/page-templates.mdを読み込みます。

相互参照の更新

取り込みのたびに:

  • 他の書籍の Wiki に新しい概念が登場しているか確認します
  • 複数の書籍で共通している場合 → cross-book/concepts/に集約ページを作成/更新します
  • 関連するすべてのページの「関連」セクションを更新します
取り込み後の整理
  1. book-wiki/index.mdを更新します
  2. book-wiki/log.mdに追記します:
## YYYY-MM-DD: Ingest <Book Title> Chapter X

**Input type**: chapter text / reading notes / verbal summary
**New pages**: list
**Updated pages**: list
**New cross-references**: list
**New questions**: list
  1. 新規ページ、更新したページ、新しい相互参照、新しい質問を報告します

ナレッジの検索

概念の検索(デフォルト)

すべての書籍のconcepts/、models/とcross-book/concepts/を検索 → 出典を示しながら回答をまとめる → 関連する概念を列挙 → 関連する未解決の質問を確認するよう促します。

書籍間の比較

関連ページを各書籍から検索 → 見解、根拠、フレームワークを抽出 → 表形式で比較 → 共通点と相違点を示します。

トピックの要約

書籍全体から関連する概念、モデル、事例を検索 → 書籍ごとではなく論理に沿って整理 → 出典を注記します。

質問の追跡

すべてのquestions/ディレクトリを確認 → ステータス別(未解決/解決済み)に分類 → その後の取り込みで回答された質問がないか確認 → 次のステップを提案します。

読書状況の概要

book-wiki/index.mdを読み込む → 書籍ごとの統計(進捗、ページ数) → 書籍間の相互参照の密度 → 提案を示します。

検索の優先順位
  1. 完全一致:ページタイトル
  2. 概念の一致:一行の定義
  3. 全文検索:詳細セクション
  4. 関連検索:相互参照
  5. 書籍間検索:cross-book/
回答の原則
  • 原文よりも、ユーザー自身の理解(「自分の理解」セクション)を優先して引用します
  • ユーザーの理解が原文と異なる場合は、穏やかに指摘します
  • 回答の後、さらに探求するための関連概念を2~3個提案します
  • Wiki に関連する内容がない場合は、正直にそう伝え、該当する章の取り込みを提案します
  • Wiki にない内容を捏造しません

ガイドライン

学習の流れ
  • 予習ガイドを省略しないでください。既有知識を呼び起こすために重要です
  • 習得度テストは厳密に行います。「分かった」だけでは不十分です。例や応用を求めてください
  • 間隔反復は長期記憶の中核となる仕組みです。再開時には必ず確認してください
  • ユーザーのペースを尊重します。今日はテストを受けたくない場合は、取り込みだけを行います
  • ユーザーが特定の概念に強い関心を示した場合は、ソクラテス式の質問で深く探求するよう促します。これは厳格な章順に従うよりも価値があります
  • 速度より習得を優先します
知識の整理
  • ページの重複を避けるため、まずbook-wiki/を確認します
  • 一行の定義は、書籍からの抜き書きではなく、ユーザー自身の言葉で記述します(ファインマンの原則)
  • ユーザーがまだ考えを示していない場合は、「自分の理解」と「自分の要点」セクションをプレースホルダーのままにし、後で記入するよう促します
  • 引用の原文を保持し、ページ番号を記録します
  • 質問はこのシステムの要です。ユーザーが質問を出すよう促してください。質問がなければ、本当に読んだとは言えません
ナレッジの検索
  • 検索する前にbook-wiki/index.mdを読み込みます
  • Wiki にあるユーザー自身の考察を尊重し、軽々しく否定しません
  • 復習モードでは、まず質問し、ユーザーが回答してから答えを明かします
  • Wiki のページ同士に矛盾がある場合は、積極的に指摘します

コメント