74冊の読書メモを、
自分を映す7層のレポートに。
Kindleに書き溜めた1,900件超のハイライトと手書きメモを、Python抽出 × Claude定性分析の分業で 「価値観パターン」「横断テーマ」「人生の指針」など7層の示唆ドキュメントに変換。 さらに日記データと照合し、半期ごとの「人生設計書」としてレポート化するワークフローの全記録です。
つくったもの
読書のハイライトは溜まる一方で、半年後には何を読んだかも思い出せない——。 その「読んで終わり」を解消するため、Kindleの全ハイライト・手書きメモを構造化し、 7層の示唆ドキュメント(手書きメモ全集 / 価値観パターン分析 / 横断テーマ集 / 人生の指針 / ほか)として Obsidianに出力するワークフローを構築しました。
さらにこの示唆と日記データ(月次レポート)を突き合わせ、 「本で宣言したことが実生活でどれだけ実行されたか」を照合する半期ごとの 統合レポート「人生設計書」を生成しています。
システム全体フロー
データの流れと担当の分離に注目してください。機械的な工程と解釈が必要な工程を明確に分けています。
kindle/highlight/ に自動同期。
annotations.json。さらに自由記述(自分の言葉)だけを濃縮した voice_only.md を生成。LLMの解釈を混ぜない純粋な機械処理。
voice_only.md(約30K字)を読み、価値観の軸・葛藤・語彙のクセを抽出 → 横断テーマ比較 → 10指針+30日プランへ統合。出力はすべてObsidianのMD。
設計のキモ — 機械抽出とLLM解釈の分離
教材ジェネレーター(別事例)と共通する思想ですが、 このプロジェクトでは「数えられるものはPython、意味を読むのはClaude」という分離を最初に決めています。
母集団の生成は純粋な機械処理
- 1,906ブロックを正規表現で抽出し、カテゴリ×書籍×タグで整理した「手書きメモ全集」を自動生成
- LLMの解釈を一切混ぜないのがルール。集計・分類だけを行う
- 新しい本が増えたらスクリプト再実行で全再生成できる(再現性)
解釈は「自分の声」だけを素材に
- ハイライト(著者の言葉)は使わず、自由記述メモ(自分の言葉)2,209件だけを濃縮した voice_only.md を読ませる
- 価値観の軸・葛藤・語彙の指紋を抽出し、横断テーマ→総合指針へ段階的に統合
- プロンプトを調整しながら何度も対話する、泥臭い工程
人間の関与 — Phase 0「現状確認」
このワークフローで最も重要な人間の役割は、分析の前にあります。 読書メモは書いた時期の文脈を持っており、数年分を一括で分析すると 「当時の悩み」を「現在の課題」として扱ってしまう危険があるためです。
- 分析開始前に必ず「今と状況が違うメモはあるか」「仕事・住まい・家族などで最近大きく変わったことは」をユーザーに確認する
- 分析結果には「当時 vs 現在」を併記し、古い文脈の指針を現在に持ち込まない
- 状況が変わったら②④(価値観分析・指針)だけを差分更新する。過去の分析は消さず「時系列の注記」を追加する形で残す
実際のプロンプト・ルール(全文)
指示はチャットに都度書くのではなく、HANDOFF ドキュメント(AIへの引き継ぎ書)として ファイル化しています。その主要部分を掲載します(固有名詞のみ一般化)。
① Phase 2 で Claude に抽出させる項目(分析の設計図)
voice_only.md(自由記述メモの濃縮版・約30K字)を Claude が全部読む → 以下を Claude が抽出して書く: - **7つの軸**(自由・家族・行動・健康・内省・職業 など。データ次第で変動) - **6つの葛藤**(軸の対立として浮かぶ二項) - **語彙の指紋**(頻出表現とその意味) - **お守り本TOP10**(メモ件数順) - **結論:あなた像 1行サマリ** ⚠️ 必ず「当時 vs 現在」を併記。Phase 0 でユーザーから聞いた現状変化を反映。
② やってはいけないこと(5箇条)
1. 古い文脈のメモを現在の課題として書かない — 過去の悩みは過去の文脈で扱う 2. Phase 1(機械生成)に LLM の解釈を混ぜない — 純粋な抽出に留める 3. 本のハイライト本文を Phase 2 の素材にしない — 「自分の声」だけを使う。 voice_only.md を生成して、それを読む 4. メモリを読まずに開始しない — 文脈がない状態で書くと、 過去の指針を繰り返すだけになる 5. 新しいメモタグを勝手に追加しない — タグ一覧は既存タグ+家族分で運用。 追加するならユーザー確認
③ セッション開始時の確認テンプレート
人生の示唆ドキュメントを更新します。まず現状確認を: 1. 前回(XXXX-XX-XX)から変わったこと(仕事・住居・家族・健康など)はありますか? 2. ハイライトメモのうち「今と状況が違うな」というカテゴリはありますか? 3. 4ファイル全部更新 / ②④だけ更新 / ①の母集団だけ再生成、どれを希望しますか?
④ 抽出スクリプトの中核(extract_notes.py 抜粋)
ハイライト本文(— location: を含む行)とユーザーメモをブロック単位でペア抽出する部分です。
全コードは HANDOFF に埋め込まれており、/tmp/ に置いて実行するだけで再現できます。
HIGHLIGHT_RE = re.compile(r"^(.*?)\s+—\s+location:\s*\[")
def parse_file(path):
text = path.read_text(encoding="utf-8")
# YAMLメタデータから書名・著者を取得
m = re.search(r"kindle-title:\s*(.+)", text)
...
body = text.split("## Highlights", 1)[1]
blocks = re.split(r"\n---\n", body) # --- 区切りで1ブロック
for block in blocks:
highlight, annotations = None, []
for line in lines:
mh = HIGHLIGHT_RE.match(line)
if mh:
highlight = mh.group(1).strip() # 著者のハイライト
else:
annotations.append(line.strip()) # 自分の手書きメモ
if annotations: # メモ付きブロックだけを対象にする
yield {"book": title, "category": path.parent.name,
"highlight": highlight, "annotations": annotations}
運用の仕組み — HANDOFF ドキュメント
このワークフローの再現性を支えているのが HANDOFF-life-insights.md(563行)です。
冒頭にこう書いてあります:
「次のセッションのClaudeが、このファイル1つを読めば全工程を理解・再現できる。スクリプトコードも全部埋め込みなので、別ファイルを探さなくていい」。
- Pythonスクリプト3本を全文埋め込み — スクリプトは /tmp/ 実行で永続化せず、HANDOFFが唯一のソース
- Phase 0〜4 の手順・出力フォーマット規約・禁止事項を1ファイルに集約
- 変更履歴を末尾に持ち、更新したら追記するルール
- フォルダの
CLAUDE.mdには「この系統の依頼が来たら作業前に必ずHANDOFFを読むこと」とだけ書き、詳細はHANDOFFに委譲
差分更新の方針(ファイルごとに更新戦略を決めておく)
| ファイル | 更新方針 |
|---|---|
| ① 手書きメモ全集 | 新しい本・メモが増えたらスクリプト再実行で全再生成 |
| ② 価値観パターン分析 | 状況変化があったら「当時 vs 現在」を追記(全書き直ししない) |
| ③ 横断テーマ集 | 基本不変(著者の見解は変わらない)。新しい本の追加時のみ追記 |
| ④ 総合・人生の指針 | 状況変化があったら古い指針を打ち消して新指針を追加 |
「古い分析を消すと、過去の自分を再認識する価値が失われる」ため、消さずに注記を重ねるのが原則です。
成果物の全体像
タグ体系(読書中に書き込む手書きメモの分類)
| タグ | 意味 |
|---|---|
| 学び | 知的に重要と判定した箇所 |
| 肝に | 過去の失敗と紐付いた戒め |
| To Do | 即実行を宣言した行動 |
| 気づき | 盲点を突かれた瞬間 |
| ハッとした | 感情的な衝撃 |
| 家族タグ(3種) | 娘・息子・母それぞれへの応用メモ |
生成された示唆ドキュメント群(Obsidian内)
| ドキュメント | 役割 |
|---|---|
| ① 手書きメモ全集 | 母集団。1,906件をカテゴリ×書籍×タグで整理(機械生成) |
| ② 価値観パターン分析 | 鏡。自分の軸・葛藤・語彙のクセ |
| ③ 横断テーマ集 | 賢人会議。テーマ別に複数著者の見解を比較し自分のメモと照合 |
| ④ 総合・人生の指針 | 行動。10の指針+30日プラン |
| ⑤〜⑦ 発展分析 | リマインダー&未解決の問い / 時系列の人格変化 / 影の自己分析 |
| カテゴリ別示唆 ×10 | 全11カテゴリをカバーする補完分析 |
| 書籍別レポート ×25 | 74冊すべての復習用まとめ+示唆 |
| 統合レポート「人生設計書」 | 日記×Kindleの照合による半期レポート(実行スコアカード付き) |
統合レポートの構成イメージは デモ版(架空データ)で確認できます。
まとめ — 持ち帰れる3つの学び
数えられるものはPython、意味を読むのはLLM
1,906件の抽出・集計をLLMにやらせるとコストも精度も悪い。機械処理と定性分析を最初に切り分けることで、再現性と分析の深さを両立できます(教材ジェネレーター事例と共通の思想)。
分析対象は「著者の言葉」ではなく「自分の言葉」
ハイライト全文ではなく、その横に書いた手書きメモだけを濃縮して渡す(voice_only.md)。素材の切り分けひとつで、出てくる分析が「本の要約」から「自分の鏡」に変わります。
HANDOFF=AIへの引き継ぎ書で再現性を担保する
手順・スクリプト全文・禁止事項・確認テンプレートを1ファイルに集約しておけば、数ヶ月後の別セッションでも同じ品質で再実行できます。「AIとの作業の引き継ぎ書」を残すのは人間のチームと同じです。
統合レポートのデモ → 読書×日記 人生設計書(架空データ版) / 姉妹編 → 機械学習教材ジェネレーターの開発プロセス