開発book-knowledge-base

何をしたか

Kindle 蔵書を OCR して Turso DB に取り込むワークフローが回り始めたので、「次にどの本を入れるか」を全件リストで管理することにした。521 冊を Python で分類して、カテゴリ別の優先順位+チェックボックスで進捗を追える Markdown を生成した。

明日のセッションでそのまま上から手をつけられる状態にして寝る、というのが今日のゴール。

最初に作った計画書がズレていた

午前中に 5 冊バッチ取り込み(消費税の本、地政学、世界史と地理、植物史、ほか)を完走した直後、memo/2026-06-19/kindle-kaikei-no-sekaishi-plan.md を眺めて違和感を覚えた。

その計画書は「個別の取り込み手順書」になっていた。1 冊ごとに ASIN、撮影方向、想定ページ数、OCR コマンドが並んでいる。自分が本当に欲しかったのは、Kindle 全 521 冊を見渡したうえで「次の 5 冊を選ぶための優先順位リスト」だった。

これ、Kindle系をこんな感じでデータベースに入れていく作業をMarkdownで管理してほしいんですけど、こういうドキュメントがありますけど、これの6番のバッチ候補1っていうのが今終わったと思うんですよ。だけど、これ5個しかないんで、そうじゃなくて、Kindleの全ての書籍を出した上で優先順位をつけて並び替えて、上から順にカテゴリーごとにやっていきたいなという感じです。

「5 冊単位のバッチ計画書」と「全件の優先順位ロードマップ」は別物だった。前者を何枚作っても、次の 5 冊を選ぶときに毎回 521 冊から目で拾うことになる。

全件分類スクリプトを書かせた

Claude Code に Python の分類スクリプトを書いてもらった。Turso の kindle_library テーブルから全件取って、書名・著者・カテゴリタグからヒューリスティックでジャンル分類して、Markdown に吐き出す方針。

核心はだいたいこんな感じ。

def classify(book):
    title = book["title"].lower()
    if any(k in title for k in ["", "会計", "簿記", "決算"]):
        return "会計・税務"
    if any(k in title for k in ["地政学", "世界史", "歴史"]):
        return "歴史・地政学"
    if book["is_comic"]:
        return "コミック(除外)"
    # ...

完璧な分類は目指さない。後で手で並び替える前提で、ざっくり 15 カテゴリに振り分ける。各カテゴリの中では「ビジネスで使えそう」「読み終えている本を優先」の順で並べた。

生成された Markdown は 67KB / 625 行。チェックボックス - [ ] で 1 冊 1 行、ASIN・タイトル・推定ページ数・取り込み済みフラグが入っている。

漫画 157 冊は除外して 437 冊

ファイルを開いて最初に思ったのが「こんなにあったっけ?」だった。Kindle のライブラリ画面ではスクロールしないと全体感がつかめないので、521 という数字が出てきて少し驚いた。

内訳を取り直した。

  • 通常書籍: 437 冊
  • コミック: 157 冊
  • Kindle Unlimited で借りているだけ: 27 冊

コミック 157 冊は最初から除外していた。OCR してナレッジベースに入れても検索クエリで引っかかる用途がないので、今回は対象外。KU 借中の 27 冊は「期限内に取り込めれば取り込む、外れたら諦める」という扱いにした。

「次セッションクイックスタート」を冒頭に追加

ここで自分の翌日の動き出しを想像した。

明日この 625 行の Markdown を開いて、「えーと、今日はどこから手をつければいいんだっけ」と先頭から読み始めると、優先順位の議論を読み直すだけで 10 分溶ける。それは嫌だ。

OK、これ明日からやっていきたいんで、ドキュメントしといてくださいね。これ今途中まで入ってるんでしたっけ?

ファイル冒頭に「次セッションクイックスタート」セクションを差し込んでもらった。中身は 3 行だけ。

  • 今日終わった 5 冊(消費税の本、地政学、世界史と地理、植物史、KU 1 冊)
  • 次に取り掛かるカテゴリ(会計・税務の残り 12 冊)
  • 1 セッションあたりの推奨バッチサイズ(5 冊)

明日 /kindle-import 相当のコマンドを叩く前にここを 30 秒見れば、その日の作戦が決まる。

学び

計画書の「粒度」と「視座」は別の軸だった。 個別の手順書を 5 冊分書くのと、全件を俯瞰して優先順位を決めるのは、書く労力が同じくらいでも得られるものがまったく違う。前者は「次のバッチをどう回すか」に答え、後者は「そもそも次に何をやるか」に答える。

両方ある状態がベストで、今日の修正で memo/2026-06-19/kindle-import-priority-plan.md が後者、既存の個別計画書が前者、という役割分担になった。既存ファイルにも「全体ロードマップは priority-plan を見ろ」という誘導を 1 行入れた。

もう一つ、「明日の自分」を 1 人のユーザーとして扱うと、ドキュメントの先頭 30 秒で読める部分が一番大事になる。 「次セッションクイックスタート」は文字数で言えば全体の 1% 未満だが、明日の意思決定の 80% はそこで決まる気がする。

明日やること

  • 会計・税務カテゴリの残り 12 冊から、次の 5 冊バッチを選ぶ
  • /kindle-import&ref_=kwl_kr_iv_rec_2 付き URL で叩く
  • バッチ完了したら priority-plan のチェックボックスを [x] に倒す

関連ファイル

  • 進捗管理: memo/2026-06-19/kindle-import-priority-plan.md(625 行 / 521 冊 / カテゴリ別)
  • 個別バッチ手順: memo/2026-06-19/kindle-kaikei-no-sekaishi-plan.md(冒頭に priority-plan への誘導を追加)