[{"data":1,"prerenderedAt":530},["ShallowReactive",2],{"content-/2026-04-11-diary":3,"all-pages-for-dir":528,"og-image-/2026-04-11-diary":529},{"id":4,"title":5,"body":6,"category":508,"description":509,"extension":510,"meta":511,"navigation":450,"path":512,"project_name":513,"published":514,"publishedAt":515,"seo":516,"stem":517,"tags":518,"todo":526,"updatedAt":526,"__hash__":527},"pages/2026-04/2026-04-11/diary-2026-04-11.md","2026年4月11日の開発日記 - EDINET財務可視化とTurso書籍DB移行",{"type":7,"value":8,"toc":492},"minimark",[9,14,18,22,27,30,36,55,66,69,73,85,89,100,108,110,114,117,121,135,143,145,149,152,156,167,175,177,181,184,188,199,207,209,212,415,417,420,434,436,439,465,467,470],[10,11,13],"h1",{"id":12},"_2026年4月11日の開発日記","2026年4月11日の開発日記",[15,16,17],"p",{},"EDINET財務データの可視化ページを一から組み上げ、ウォーターフォール・比例縮尺BS/PL・時系列チャートが3カラムに並ぶところまで持っていった。並行してTurso Embedded Replicaへの書籍DB移行も進め、税法入門107ページのOCRからDB格納・表示確認まで完了。盛りだくさんの一日。",[19,20,21],"h2",{"id":21},"今日やったこと",[23,24,26],"h3",{"id":25},"_1-edinet財務データ可視化ページの新規実装","1. EDINET財務データ可視化ページの新規実装",[15,28,29],{},"Jリーグページのアーキテクチャを踏襲し、EDINET用のデータ変換レイヤー（composables 4ファイル + 型定義1ファイル）を新規作成。営業利益増減ウォーターフォール、比例縮尺BS/PL、時系列チャートを3カラムレイアウトで実装した。",[15,31,32],{},[33,34,35],"strong",{},"主な成果:",[37,38,39,43,46,49,52],"ul",{},[40,41,42],"li",{},"3カラムレイアウト（サイドバー + ウォーターフォール + チャートパネル）構築",[40,44,45],{},"BS内訳の詳細表示（現預金・売掛金・棚卸資産・有形固定資産等）",[40,47,48],{},"貸借不一致バグの原因追究（丸め誤差→按分ロジック）→テスト113件で検証",[40,50,51],{},"R&Dの桁間違い発見→TursoリモートDB直接修正",[40,53,54],{},"6コミット実施",[15,56,57,60,61],{},[33,58,59],{},"詳細:"," ",[62,63,65],"a",{"href":64},"/edinet-financial-visualization","EDINET財務データの可視化ページを新規実装",[67,68],"hr",{},[23,70,72],{"id":71},"_2-turso-embedded-replicaで書籍db移行","2. Turso Embedded Replicaで書籍DB移行",[15,74,75,76,80,81,84],{},"book-knowledge-baseのSQLite書籍DBをTurso Embedded Replicaに移行。レプリカ配置を",[77,78,79],"code",{},"~/.turso-replicas/","から",[77,82,83],{},"Git_repo/turso-replicas/","に見直し、turso-replicasリポジトリを新規初期化した。",[15,86,87],{},[33,88,35],{},[37,90,91,94,97],{},[40,92,93],{},"税法入門107ページをyomitoku OCR→14図ファイル抽出→Turso DB格納",[40,95,96],{},"Chrome DevToolsで表示確認（ポート衝突3000→3001→3003の試行錯誤あり）",[40,98,99],{},"Turso無料枠5GBに対しローカルDB 20MBで余裕を確認",[15,101,102,60,104],{},[33,103,59],{},[62,105,107],{"href":106},"/turso-book-db-migration","Turso Embedded Replicaで書籍DBを移行",[67,109],{},[23,111,113],{"id":112},"_3-比例縮尺財務諸表リファレンスとcodexレビュー","3. 比例縮尺財務諸表リファレンスとCodexレビュー",[15,115,116],{},"比例縮尺BS/PL + PL/CFウォーターフォールのコンポーネント群を別プロジェクトに渡すためのリファレンスドキュメントを作成。Codex（GPT-5.4）で3回レビューを回して品質を引き上げた。",[15,118,119],{},[33,120,35],{},[37,122,123,126,129,132],{},[40,124,125],{},"4つのサブエージェント並行調査でコンポーネント構造を把握",[40,127,128],{},"Codex 1回目: 5つの重大指摘→全修正",[40,130,131],{},"Codex 2回目: 「中核コンポーネントは概ね再実装可能」判定",[40,133,134],{},"Codex 3回目: スコープ明確化・日本企業向け探索順明記",[15,136,137,60,139],{},[33,138,59],{},[62,140,142],{"href":141},"/codex-review-financial-reference","比例縮尺財務諸表リファレンスをCodexで3回レビューして仕上げた",[67,144],{},[23,146,148],{"id":147},"_4-svgイラスト全35件の品質確認","4. SVGイラスト全35件の品質確認",[15,150,151],{},"eurekapu-nuxt4のSVGイラスト35件（readable 16件・donts 16件・naming 3件）をChrome DevToolsで品質確認。一括チェック用HTMLを作って全件テキスト重なりなし・NG/Good対比鮮明を確認した。",[15,153,154],{},[33,155,35],{},[37,157,158,161,164],{},[40,159,160],{},"一括表示HTML作成→画像大きすぎ→4件ずつグリッドに改良",[40,162,163],{},"MillerViewer実寸表示でも問題なし（代表4件をフォーカスモードで確認）",[40,165,166],{},"全35件OK",[15,168,169,60,171],{},[33,170,59],{},[62,172,174],{"href":173},"/svg-quality-check-35-items","SVGイラスト全35件の品質確認",[67,176],{},[23,178,180],{"id":179},"_5-投資銀行スタイルexcel書式設定の検証","5. 投資銀行スタイルExcel書式設定の検証",[15,182,183],{},"openpyxlでフォント色のみを変更する処理がセルの値・数式・書式を壊さないことを確認。IBモデルの設計思想（直接参照が原則、INDIRECT/名前付き範囲を使わない）が自動色分けと相性が良いことを整理した。",[15,185,186],{},[33,187,35],{},[37,189,190,196],{},[40,191,192,195],{},[77,193,194],{},"!","の有無だけで他シート参照を判定できる前提がIBモデルで成立",[40,197,198],{},"Excel演習シート（フォント色・罫線・セル色のショートカット練習）の構想",[15,200,201,60,203],{},[33,202,59],{},[62,204,206],{"href":205},"/ib-excel-format-template","投資銀行スタイルのExcel書式設定をPythonで自動適用できるか検証した",[67,208],{},[19,210,211],{"id":211},"今日の試行錯誤",[213,214,215,237],"table",{},[216,217,218],"thead",{},[219,220,221,225,228,231,234],"tr",{},[222,223,224],"th",{},"#",[222,226,227],{},"テーマ",[222,229,230],{},"試したこと",[222,232,233],{},"結果",[222,235,236],{},"気づき",[238,239,240,258,273,289,305,320,336,351,367,382,399],"tbody",{},[219,241,242,246,249,252,255],{},[243,244,245],"td",{},"1",[243,247,248],{},"BS貸借不一致",[243,250,251],{},"丸め誤差だと思い個別修正",[243,253,254],{},"失敗",[243,256,257],{},"按分ロジックの構造問題だった",[219,259,260,263,265,268,270],{},[243,261,262],{},"2",[243,264,248],{},[243,266,267],{},"内訳項目を比率で按分",[243,269,254],{},[243,271,272],{},"固定資産内訳合計が固定資産合計を超過",[219,274,275,278,280,283,286],{},[243,276,277],{},"3",[243,279,248],{},[243,281,282],{},"残余項目で吸収+Math.max除去",[243,284,285],{},"成功",[243,287,288],{},"テスト113件で全ケース一致",[219,290,291,294,297,300,302],{},[243,292,293],{},"4",[243,295,296],{},"R&D桁間違い",[243,298,299],{},"API値を信用して表示",[243,301,254],{},[243,303,304],{},"2023-2024は千円単位が抜けていた",[219,306,307,310,312,315,317],{},[243,308,309],{},"5",[243,311,296],{},[243,313,314],{},"TursoリモートDB直接修正",[243,316,285],{},[243,318,319],{},"API側のバグはDB修正で対応",[219,321,322,325,328,331,333],{},[243,323,324],{},"6",[243,326,327],{},"ポート衝突",[243,329,330],{},"localhost:3000でdev確認",[243,332,254],{},[243,334,335],{},"別プロジェクトが使用中",[219,337,338,341,343,346,348],{},[243,339,340],{},"7",[243,342,327],{},[243,344,345],{},"3001→3003で起動",[243,347,285],{},[243,349,350],{},"使用中ポートを事前確認すべき",[219,352,353,356,359,362,364],{},[243,354,355],{},"8",[243,357,358],{},"SVG一括表示",[243,360,361],{},"全35件を1ページに表示",[243,363,254],{},[243,365,366],{},"画像が大きすぎて確認不能",[219,368,369,372,374,377,379],{},[243,370,371],{},"9",[243,373,358],{},[243,375,376],{},"4件ずつグリッド表示",[243,378,285],{},[243,380,381],{},"セクション単位の撮影で効率化",[219,383,384,387,390,393,396],{},[243,385,386],{},"10",[243,388,389],{},"Codexレビュー",[243,391,392],{},"1回目投入",[243,394,395],{},"5件指摘",[243,397,398],{},"CFデータ変換・SVG座標等の漏れ",[219,400,401,404,406,409,412],{},[243,402,403],{},"11",[243,405,389],{},[243,407,408],{},"修正後2回目投入",[243,410,411],{},"概ね合格",[243,413,414],{},"「再実装可能」判定を獲得",[67,416],{},[19,418,419],{"id":419},"今日の学び",[37,421,422,425,428,431],{},[40,423,424],{},"貸借一致はフロントエンド表示に頼らず、テストコードで検証すべき。ブラウザで目視してから初めて気づくのでは遅い",[40,426,427],{},"Codexレビューは3回回すと品質が安定する。1回目は漏れの検出、2回目は修正の検証、3回目でスコープの明確化",[40,429,430],{},"Turso無料枠5GBはローカルDB 20MBの250倍。容量を気にせず書籍を追加できる",[40,432,433],{},"openpyxlでのIBフォーマット自動適用は、IBモデルの制約（INDIRECT不使用・直接参照のみ）が味方してくれる",[67,435],{},[19,437,438],{"id":438},"明日やること",[37,440,443,453,459],{"className":441},[442],"contains-task-list",[40,444,447,452],{"className":445},[446],"task-list-item",[448,449],"input",{"disabled":450,"type":451},true,"checkbox"," EDINET CF Waterfallの実装（計画書: memo/2026-04-11/edinet-cf-waterfall-plan.md）",[40,454,456,458],{"className":455},[446],[448,457],{"disabled":450,"type":451}," Turso FTS5検証スクリプトの実行",[40,460,462,464],{"className":461},[446],[448,463],{"disabled":450,"type":451}," IB Excel演習シートのプロトタイプ作成",[67,466],{},[19,468,469],{"id":469},"関連記事",[37,471,472,476,480,484,488],{},[40,473,474],{},[62,475,65],{"href":64},[40,477,478],{},[62,479,107],{"href":106},[40,481,482],{},[62,483,142],{"href":141},[40,485,486],{},[62,487,174],{"href":173},[40,489,490],{},[62,491,206],{"href":205},{"title":493,"searchDepth":494,"depth":494,"links":495},"",2,[496,504,505,506,507],{"id":21,"depth":494,"text":21,"children":497},[498,500,501,502,503],{"id":25,"depth":499,"text":26},3,{"id":71,"depth":499,"text":72},{"id":112,"depth":499,"text":113},{"id":147,"depth":499,"text":148},{"id":179,"depth":499,"text":180},{"id":211,"depth":494,"text":211},{"id":419,"depth":494,"text":419},{"id":438,"depth":494,"text":438},{"id":469,"depth":494,"text":469},"diary","EDINET財務データの3カラム可視化ページ新規実装、Turso Embedded Replicaへの書籍DB移行、SVG品質確認35件、IB Excel書式検証、Codexレビュー3回によるリファレンス品質向上","md",{},"/2026-04-11-diary","daily-log",false,"2026-04-11T00:00:00.000Z",{"title":5,"description":509},"2026-04/2026-04-11/diary-2026-04-11",[519,520,521,522,523,524,525],"日記","EDINET","Turso","SVG","Codex","投資銀行","財務可視化",null,"9ZhqjNOIIgrdUqO61lpXeyAmgGReBmGmLoUM9MajP2I",[],"https://log.eurekapu.com/favicon.svg",1776122261771]