daily-log

2026年5月25日の開発日記

今日は1冊の本が、紙の山からデータベースを経由して、教材のコラムに化けていくのを追いかけた一日だった。裁断スキャンした投資の参考書をOCRしてTursoに流し込み、47セクションに整え、そこから「数値ベンチマーク」と「逆張りの読み方」を抜き出して財務諸表教材のページに編み込んだ。途中でWALロックがスクリプトを240秒黙らせ、別セッションのgit操作がファイルを消し、決算スキャンが3週間前の決算を拾ってきた。判断は自分が下し、実行はClaude Codeに回す——その分業を何度もくり返した。

今日のタイムライン

タイムライン

今日やったこと

1. 投資の参考書をOCRしてTurso DBに取り込む(WALロック救出)

約39MB・214ページの裁断スキャンPDFを /yomitoku でOCRし、図60枚を抜き出してTursoに61チャンクで格納。続く /restructure-book のセクション統合スクリプトが出力ゼロのまま240秒沈黙した。原因はEmbedded ReplicaのWALロック——先行プロセスのロックが残り、新しい BEGIN が待ちぼうけを食らっていた。ハングしたPythonプロセス群だけをkillしてHTTP直接接続版に書き換えたら、すでにcommitは済んでいて、最後の sync() だけが固まっていたと判明した。

主な成果:

  • 214ページOCR → 61チャンクでTurso格納、セクション統合で47チャンクに正規化
  • WALロックの正体(commit済み・sync()だけハング)を突き止めた
  • restructure-book テンプレートの sync() 7箇所を除去し、HTTP直接接続化で再発を断った

詳細: 裁断スキャンした参考書をOCRしてTursoに取り込む:WALロックからの救出


2. 投資の名著の知見を財務諸表教材に統合する

DBに整えた知見から「指標がいくつ以上なら優良か」という数値ベンチマークと、教科書の常識を覆す逆張りの読み方を抜き出し、教材のコラムとfigureに落とし込んだ。固有名(人名・書名)は出さず、「経済的な堀(moat)」という概念だけを統合する方針で進めた。計画書をcodex(GPT-5.5)でレビューに回したら出力が812KBに膨れ、ツールがパースエラーを連発——引き継ぎメモで一度仕切り直し、次セッションで実装を完走した。

主な成果:

  • 共通コラム基盤 InvestorColumn.vue を新設(教材にコラムボックスがゼロだったため)
  • 粗利率(コカ・コーラ約60%・GM約12%)など実名企業のFY2024概算を裏取りしてfigure化(T2/T3/T4)
  • codex指摘(投資助言トーンの緩和+免責、書籍出典と財務データ出典の分離)を反映

詳細: 投資の名著の知見を財務諸表教材に統合した話


3. 決算ビートスキャンに「発表日ゲート」を新設

毎朝のパイプライン末尾で回す earnings-beat-scan が、米国休場日で0件のはずなのにPLTR(5月4日決算)を拾ってきた。x-searchは投稿日でしか絞らず、発表日が24時間窓の内かを検証するゲートが無かった。「あくまで1日分だけ見てほしい、24時間外は全部弾いて」と方針を決め、Step 1.5の発表日ゲートを新設して4重ガードで強制。0件こそ正しい結果として受け入れる形に直した。

詳細: 決算ビートスキャンに「発表日ゲート」を新設した話 — 0件こそ正しい結果


4. 正二十面体の3D図解と、並行セッションのgit事故

「正二十面体は60の同じ形に分割できる」という一文を、触って動かせる図解にしたかった。調べたら頼んでいない885行の未コミット実装が既にあり、しかも上書き直前に別の何かが「なぜファージ頭部は正二十面体なのか」というウイルス学版へ作り替えていた。全上書きで壊すのを避け、回転対称アニメと60分割展開アニメだけを差し込んだ。だが検証後、本体.vueと自分のissueが消えた——並行セッションの破壊的なgit操作(git stash -u / git clean)が未追跡ファイルを巻き込んだと疑い、書き戻さず手を止めた。

詳細: 正二十面体の対称性を触れる3D図解にする:幽霊実装とgit事故


5. 議論まとめを公開記事化+歴史考証

ダウンロードしておいた「フィクションと労働と資本」の議論まとめを公開記事に仕立て、ブラウザで目視確認まで通した。タグが11個も並んでいたので「最大3つ」に絞り、そのルールをcontent-managementスキルにも追記。薩摩藩が外様になった経緯を補足する際、自分が「源平合戦で敗れた」と勘違いしていたのを「関ヶ原(1600)で西軍につき敗れた」と訂正してもらい、史実ベースで書き直した。

関連記事: フィクションと労働と資本


今日の試行錯誤

#テーマ試したこと結果気づき
1セクション統合Embedded Replicaでスクリプト実行→240秒沈黙失敗(ハング)先行プロセスのWALロックが残り新しいBEGINが待ちになる既知問題
2統合の救出プロセス群をkillしHTTP直接接続版に書き換え成功実はcommit済みでsync()だけハングしていた。kill後もクラウドに反映済み
3再発防止テンプレートのsync()7箇所を除去成功接続のたびにsyncしない設計に変えればロック地獄を踏まない
4計画のcodexレビュー812KBの巨大出力をツールで受けようとした失敗(パースエラー連発)巨大出力は引き継ぎメモで仕切り直すのが速い
5教材へのfigure統合実名企業の粗利率・設備投資比率を裏取りしてfigure化成功既存教材は計算式は教えるが「目安」が薄く、ベンチマークが補完になる
6決算スキャン休場日に実行したらPLTR(5/4決算)が混入失敗(検証漏れ)x-searchは投稿日しか見ない。発表日ゲートが要る。0件は恐れない
73D図解の上書き既存885行が並行でファージ版に化けていた回避全上書きせずアニメだけ差し込んで再構成を守った
8git事故検証後に未追跡の本体.vueとissueが消失事故並行セッションのstash -u/git cleanは未追跡ファイルを巻き込む

今日の学び

  • WALロックでスクリプトが固まっても、commitは済んでいることがある。kill前に「どこまで進んだか」を疑う癖をつける。
  • 巨大なレビュー出力をツールで丸ごと受けようとすると詰まる。引き継ぎメモで一度区切ると次が速い。
  • 自動抽出(x-search)はノイズを拾う。「24時間以内に発表されたものか」を機械で検証するゲートを入れ、0件を正しい結果として受け入れる。
  • 未追跡ファイルはgitの保護対象外。複数セッションを同時に走らせる日は、こまめにコミットしておかないと巻き添えで消える。
  • 史実を補足するときは、自分の記憶(源平合戦)を疑ってAIに突き合わせさせる。違和感を拾うのは人間、裏取りはAIの分業が効く。

明日やること

  • 並行セッションで消えた正二十面体ページの復元方針を確定する(stash退避か作り直しか)
  • 投資の名著統合の残テーマ(Part2/CH8〜12への横展開)を進める
  • WALロック回避を他のbook取り込みフローにも横展開できるか確認

関連記事