[{"data":1,"prerenderedAt":454},["ShallowReactive",2],{"content-/book-import-batch-marathon":3,"related-/book-import-batch-marathon":410,"all-pages-for-dir":452,"og-image-/book-import-batch-marathon":453},{"id":4,"title":5,"body":6,"category":391,"description":392,"extension":393,"meta":394,"navigation":351,"path":395,"project_name":396,"published":397,"publishedAt":398,"seo":399,"stem":400,"tags":401,"todo":408,"unpublished":397,"updatedAt":408,"__hash__":409},"pages/2026-06/2026-06-14/book-import-batch-marathon.md","書籍取り込みパイプライン 1日マラソン — DD本／デザイン／コンサル／宅建／お金を /import-batch で連続投入",{"type":7,"value":8,"toc":378},"minimark",[9,18,23,133,141,145,152,155,158,161,165,168,175,181,185,188,195,201,204,214,217,221,227,232,239,242,246,269,276,280,290,295,301,304,337,340],[10,11,12,13,17],"p",{},"朝5時半に「あれ、確かインポートするのを計画してたはずなんだけど途中で終わってたんだよね」と引き継ぎ計画書を Claude に探させたところから1日が始まった。気付けば夜まで ",[14,15,16],"code",{},"/import-batch"," を回し続けて、不動産・DD・デザイン・コンサル・宅建・お金の6カテゴリを Turso DB に流し込んでいた。最後のお金・投資系10冊を流し終えたタイミングで「じゃあ残りは明日にしましょうか」と切り上げた。",[19,20,22],"h2",{"id":21},"今日の流れざっくり","今日の流れ（ざっくり）",[24,25,26,45],"table",{},[27,28,29],"thead",{},[30,31,32,36,39,42],"tr",{},[33,34,35],"th",{},"時刻帯",[33,37,38],{},"カテゴリ",[33,40,41],{},"冊数",[33,43,44],{},"備考",[46,47,48,63,77,91,107,120],"tbody",{},[30,49,50,54,57,60],{},[51,52,53],"td",{},"早朝〜午前",[51,55,56],{},"不動産投資の本（残り）",[51,58,59],{},"3冊",[51,61,62],{},"前日の積み残しを再開",[30,64,65,68,71,74],{},[51,66,67],{},"午前",[51,69,70],{},"ビジネス・デューデリジェンス系",[51,72,73],{},"8冊",[51,75,76],{},"あと6冊残っていた、と途中で発覚",[30,78,79,82,85,88],{},[51,80,81],{},"午前後半",[51,83,84],{},"デザイン系（実務スキル寄り）",[51,86,87],{},"4冊",[51,89,90],{},"キュー外。Dropbox から拾って追加",[30,92,93,96,99,102],{},[51,94,95],{},"昼前",[51,97,98],{},"コンサル系3点セット",[51,100,101],{},"10冊",[51,103,104,106],{},[14,105,16],{}," 1コマンドで一気に投入",[30,108,109,112,115,117],{},[51,110,111],{},"昼",[51,113,114],{},"宅建士の教科書系",[51,116,59],{},[51,118,119],{},"過去問アプリ別案件は明日に持ち越し",[30,121,122,125,128,130],{},[51,123,124],{},"夕方",[51,126,127],{},"お金・投資系",[51,129,101],{},[51,131,132],{},"最後で打ち切り、残り15冊は明日",[10,134,135,136,140],{},"合計 ",[137,138,139],"strong",{},"38冊","（スキップ1冊を除く）。",[19,142,144],{"id":143},"朝の再開-残っていた不動産3冊とあと6冊あるんでしたっけ","朝の再開 — 残っていた不動産3冊と「あと6冊あるんでしたっけ？」",[10,146,147,148,151],{},"冒頭の音声入力は「あの確かえっと インポートするのを 計画してたはずなんですけど 途中で終わってたんですよね」だった。Claude Code に ",[14,149,150],{},"bulk-import-plan.md"," を漁らせて、不動産カテゴリの取り込みが3冊残ったまま止まっていたのを発見した。",[10,153,154],{},"3冊（No200／No202／No201）の OCR を回しながら、ユーザー優先指定でビジネス・デューデリジェンスの本（No24）を割り込ませた。ここまでは順調で、合計4冊を一気にレストラクチャーまで完走した。完了報告を受けたあとに「あの、ちょっと待って。デューデリジェンスの本で、ビジネス・デューデリジェンスって1冊しかなかったでしたっけ。」と質問が飛んだ。",[10,156,157],{},"Claude が「タイトル一致は1冊だけです」と返したが、ユーザー側にはまだ DD カテゴリの本が6冊残っている記憶があった。再確認させたところ、M&A・DD カテゴリにあと6冊あったのが判明。「途中でやめたんですか？」と問われ、Claude は「Auto modeで一気に進めるべきでした」と詫びて、DD関連8冊を一気に投入し直した。",[10,159,160],{},"途中で1冊だけ、ファイル名が「図解でわかるM&A」なのに中身が「図解でわかる投資ファンド」になっていた本が見つかり、これはスキップにした。連番フォルダ運用の落とし穴。",[19,162,164],{"id":163},"デザイン系-googleのやつが通じる瞬間","デザイン系 — 「Googleのやつ」が通じる瞬間",[10,166,167],{},"不動産＋DD で12冊終わったあと、「デザイン系も取り入れてほしい」と注文が入った。キューには「デザイン」を含む本が2冊しか入っていなかったが、Dropbox の裁断PDFを漁ると思想系・実務系のデザイン本が10冊以上眠っていた。元の計画書では「自己啓発・プログラミング・語学・歴史」を除外していて、その流れでデザイン系も外していたらしい。",[10,169,170,171,174],{},"「実務スキルの方がいいですね。Googleのやつなかったですかね」という曖昧な指示で、Claude が ",[14,172,173],{},"No107_Google流資料作成術","（『Storytelling with Data』の日本語版）を当てた。「あ、そうそうそう、Googleのやつそれね」で確定。データ可視化＋プレゼン＋伝え方系の4冊を投入した。",[10,176,177,178,180],{},"このあと、別件で「蔵書レビューページにミラーカラムレイアウトの折りたたみを入れてくれ」という指示が画像付きで飛んできた。OCR を裏で回しながら eurekapu-nuxt4 の参考実装を読みに行き、3カラム折りたたみを実装して HMR で確認した。OCR の待ち時間が UI 実装の時間に化けた瞬間で、",[14,179,16],{}," の隙間時間は意外と使える。",[19,182,184],{"id":183},"セッション分担という気づき-ocr係とリストラクチャー係を分ける","セッション分担という気づき — 「OCR係」と「リストラクチャー係」を分ける",[10,186,187],{},"今日いちばんの収穫は、別セッションで投資・お金カテゴリを並行起動しようとして気付いた挙動の話。",[10,189,190,191,194],{},"yomitoku（OCR）は GPU(CUDA) を専有するので、",[14,192,193],{},"/c/Users/numbe/Git_repo/book-knowledge-base/data/.yomitoku.lock"," という排他ロックで「OCRは全セッション通じて同時1プロセス」に制限している。並走を試みた瞬間、ユーザーがこう言った。",[196,197,198],"blockquote",{},[10,199,200],{},"一連の流れを複数セッションでやるんじゃなくて、あるセッションでは OCR してもらって、あるセッションではリストラクチャーやってもらうっていうのを分担した方が早いってことですね、これ。",[10,202,203],{},"その通りで、OCR は GPU 律速で1冊ずつ順番待ち、一方でメタデータ判定／取込／restructure／DB 書き込みは GPU を使わないから別プロセスで並行できる。つまり、",[205,206,207,211],"ul",{},[208,209,210],"li",{},"セッションA: OCR をひたすら回す（GPUロック保持係）",[208,212,213],{},"セッションB: A が吐いた中間生成物を受け取って restructure と DB 投入を回す（CPU・I/O 係）",[10,215,216],{},"という分担にすると、A の OCR が次の本に進んでいる間に B が前の本を仕上げられる。今日のセッションは1人で両方やったので、OCR完了通知を待ってから取り込みに進む直列待ちが何度も発生した。明日からは分担する。",[19,218,220],{"id":219},"コンサル10冊-大胆に減りすぎとリストラクチャー再実行","コンサル10冊 — 「大胆に減りすぎ」とリストラクチャー再実行",[10,222,223,224,226],{},"コンサル系3点セット（10冊）は ",[14,225,16],{}," 1コマンドで朝10時台から流し始めた。途中で No764 のレストラクチャー結果を見て、ユーザーが違和感を拾った。",[196,228,229],{},[10,230,231],{},"確かにちょっと大胆すぎますね。なんか目次、小見出しなどもうちょっと細かくなっているっぽいですけど、なんでこんなに大胆に減っちゃったんですか？",[10,233,234,235,238],{},"調べると、章（年次）単位で7チャンクに統合されていて、第1〜3章が各40〜54KB の巨大チャンクに膨らんでいた。1チャンクに79項目を詰め込んでいる状態。subagent に再構造化を依頼して、",[137,236,237],{},"7チャンク→86チャンク"," に分解し直した。「001 インテレクチャルリーダーシップ VS『優しさ』のリーダーシップ」のような各 VS 項目が個別チャンクで section に格納され、全文検索で「論点マネジメント」「ケース設計」が個別ヒットするようになった。",[10,240,241],{},"リストラクチャーの「ちょうど良さ」は本ごとに違って、目次がフラットな実用書なら章単位の統合でいいが、項目数が多い大判の書籍だと項目単位まで割らないと検索が鈍る。AI 任せにすると章単位で大胆にまとめがちで、画面に出てくるチャンク数を見て「これは粒度が荒すぎる」と人間が拾わないと壊れたまま気付かない。",[19,243,245],{"id":244},"宅建系-みんなが欲しかったはもう入っていた","宅建系 — 「みんなが欲しかった！」はもう入っていた",[10,247,248,249,252,253,256,257,260,261,264,265,268],{},"宅建士の教科書3冊（No821／No820／No818）を投入したあと、ユーザーが「みんなが欲しかったのだったっけ？それはもう取り込み済みだったってことでしたっけ。」と尋ねた。Claude は最初「取り込んでいません」と答えたが、改めて ",[14,250,251],{},"amazon_metadata"," を引き直すと、",[14,254,255],{},"No819 みんなが欲しかった！宅建士の教科書 2025年度版"," が ",[137,258,259],{},"既に取り込み済み","（",[14,262,263],{},"takken-kyokasho-2025-01-takkengyoho"," で74チャンク登録済み）だった。",[14,266,267],{},"book_id"," で紐づいているせいでキューの候補から除外されていただけ。「キューに無い＝未取り込み」と即断するとミスる。",[10,270,271,272,275],{},"途中で「アップピリオド・アップハイフン・宅検」と聞こえた音声入力があり、Claude は最初これを「app-takken」（アップタッケン）と聞き間違えていたと気付いて、",[14,273,274],{},"app-takken"," プロジェクトの過去問JSONの存在を確認した。Turso DB への取り込みは別タスクで明日以降。",[19,277,279],{"id":278},"お金投資系10冊で打ち切り","お金・投資系10冊で打ち切り",[10,281,282,283,286,287,289],{},"夕方、",[14,284,285],{},"memo/2026-06-14/next-session-toushi-okane.md"," に書き出しておいた10冊（投資の聖典・名著系）を ",[14,288,16],{}," で投入した。No845（282p→104→27チャンク）から始めて、最後の No824 まで完走。全10冊終わったタイミングでユーザーから一言、",[196,291,292],{},[10,293,294],{},"じゃあそれは明日やりましょうか。",[10,296,297,298,300],{},"お金カテゴリの残り15冊（No589 など）は積み残し。1日 ",[14,299,16],{}," を回し続けて、「あと一歩で全カテゴリ揃う」のところで切り上げた。",[19,302,303],{"id":303},"今日の収穫",[205,305,306,311,322,325,334],{},[208,307,308,310],{},[14,309,16],{}," は1コマンドで10冊を順次回せて、1セッションで完結する設計が効いた",[208,312,313,314,317,318,321],{},"ただし1セッション内では OCR と restructure の直列待ちが発生する。",[137,315,316],{},"OCR係セッション","と",[137,319,320],{},"restructure係セッション","を分けるのが正解",[208,323,324],{},"AI のレストラクチャーは章単位で大胆にまとめがち。チャンク数を画面で見て「粒度が荒すぎる」と人間が拾わないと壊れる",[208,326,327,328,330,331,333],{},"「キューに無い＝未取り込み」と即断しない。",[14,329,251],{}," の ",[14,332,267],{}," で除外されているだけのケースがある",[208,335,336],{},"ファイル名と中身が一致しない PDF が混ざる。中身を冒頭ページで確認してからスクリプトを書くべし",[19,338,339],{"id":339},"明日やること",[205,341,344,354,363,372],{"className":342},[343],"contains-task-list",[208,345,348,353],{"className":346},[347],"task-list-item",[349,350],"input",{"disabled":351,"type":352},true,"checkbox"," OCR係セッションとリストラクチャー係セッションの分担運用を試す",[208,355,357,359,360,362],{"className":356},[347],[349,358],{"disabled":351,"type":352}," お金カテゴリ残り15冊（No589 ほか）を ",[14,361,16],{}," で投入する",[208,364,366,368,369,371],{"className":365},[347],[349,367],{"disabled":351,"type":352}," ",[14,370,274],{}," の過去問JSON群を Turso DB に取り込むかどうか方針を決める",[208,373,375,377],{"className":374},[347],[349,376],{"disabled":351,"type":352}," レストラクチャーの粒度判定を自動化できないか考える（チャンクあたりサイズが閾値を超えたら再分割する仕掛け）",{"title":379,"searchDepth":380,"depth":380,"links":381},"",2,[382,383,384,385,386,387,388,389,390],{"id":21,"depth":380,"text":22},{"id":143,"depth":380,"text":144},{"id":163,"depth":380,"text":164},{"id":183,"depth":380,"text":184},{"id":219,"depth":380,"text":220},{"id":244,"depth":380,"text":245},{"id":278,"depth":380,"text":279},{"id":303,"depth":380,"text":303},{"id":339,"depth":380,"text":339},"dev","book-knowledge-base に蓄えた裁断本のPDFを、/import-batch コマンドで朝5時から夜まで連続投入した1日。途中で止まっていた不動産系の再開から始まり、DD本、デザイン系、コンサル10冊、宅建教科書、最後にお金・投資系10冊までを Turso DB へ流し込んだ。OCR担当とリストラクチャー担当をセッションで分けると速くなるという気づきが今日の収穫。","md",{},"/book-import-batch-marathon","book-knowledge-base",false,"2026-06-14T00:00:00.000Z",{"title":5,"description":392},"2026-06/2026-06-14/book-import-batch-marathon",[402,403,404,405,406,407,396],"OCR","Turso","書籍取り込み","import-batch","yomitoku","restructure",null,"VkHoLQFm77ccsvsgdbMxPYfoy-pVADPTwAyE97RTMoM",[411,418,428,436,445],{"title":412,"description":413,"path":414,"tags":415,"publishedAt":417,"updatedAt":408},"自炊書籍3冊をyomitoku OCRで一括取り込み、TursoのEmbedded Replica読み取りハングをHTTP同期に切り替えた日","自炊した投資関連の実務書3冊をyomitoku OCRでMarkdown化しTurso DBへ取り込み。途中で再発したEmbedded Replicaの読み取りハングを調査し、pull側の未解決問題と特定してHTTP直接接続へ切り替えた記録。","/book-ocr-batch-and-replica-hang",[406,402,403,416,396],"Embedded Replica","2026-06-11T00:00:00.000Z",{"title":419,"description":420,"path":421,"tags":422,"publishedAt":427,"updatedAt":408},"yomitoku 0.13.0 アップグレードと自炊書籍の OCR 取り込み","yomitoku を 0.13.0 にアップグレードしたら torch が CPU 版に置き換わって速度が落ちた話と、自炊した1冊を全文検索 DB に取り込むまでの試行錯誤。","/yomitoku-and-textbook-ocr",[406,423,424,396,425,426],"ocr","turso","pytorch","cuda","2026-05-15T00:00:00.000Z",{"title":429,"description":430,"path":431,"tags":432,"publishedAt":435,"updatedAt":408},"Turso Embedded Replicaで書籍DBを移行 - OCRデータ格納からdev確認まで","book-knowledge-baseのSQLite書籍DBをTurso Embedded Replicaに移行した作業ログ。レプリカ配置の見直し、税法入門107ページのOCR→DB格納、Chrome DevToolsでのポート試行錯誤を経て表示確認まで完了","/turso-book-db-migration",[403,416,433,406,402,434,396],"SQLite","Chrome DevTools","2026-04-11T00:00:00.000Z",{"title":437,"description":438,"path":439,"tags":440,"publishedAt":444,"updatedAt":408},"書籍OCR取り込みをバッチ化して複数セッション並列で回す - キュー管理・GPUロック・AGENTS.md整備","yomitoku OCRとセクション統合の書籍取り込みパイプラインを/import-batchコマンドでバッチ化。取り込みキューのマークダウン1枚で複数セッションを並列運用し、Codexも参加できるようAGENTS.mdを整備した記録。","/book-import-batch-parallel",[441,402,406,403,442,443],"書籍ナレッジベース","並列処理","バッチ処理","2026-06-12T00:00:00.000Z",{"title":446,"description":447,"path":448,"tags":449,"publishedAt":451,"updatedAt":408},"NotionエクスポートのTurso取り込みとyomitoku OCRパイプラインで専門書をDB化した日","NotionのHTMLエクスポートを/notion-importでTurso DBに取り込み、yomitoku OCRと/restructure-bookで専門書をセクション単位にDB化。Embedded Replicaのsync詰まりも根治した記録。","/notion-import-and-book-ocr-pipeline",[450,406,402,403,441],"Notion","2026-06-09T00:00:00.000Z",[],"https://log.eurekapu.com/og/blog/book-import-batch-marathon.png?v=2026-06-14T00%3A00%3A00.000Z&title=%E6%9B%B8%E7%B1%8D%E5%8F%96%E3%82%8A%E8%BE%BC%E3%81%BF%E3%83%91%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3%201%E6%97%A5%E3%83%9E%E3%83%A9%E3%82%BD%E3%83%B3%20%E2%80%94%20DD%E6%9C%AC%EF%BC%8F%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%EF%BC%8F%E3%82%B3%E3%83%B3%E3%82%B5%E3%83%AB%EF%BC%8F%E5%AE%85%E5%BB%BA%EF%BC%8F%E3%81%8A%E9%87%91%E3%82%92%20%2Fimport-batch%20%E3%81%A7%E9%80%A3%E7%B6%9A%E6%8A%95%E5%85%A5&author=Kei%20Komatsu&sig=94ec744a1a259d76",1781483079104]