[{"data":1,"prerenderedAt":677},["ShallowReactive",2],{"content-/2026-05-12-diary":3,"all-pages-for-dir":675,"og-image-/2026-05-12-diary":676},{"id":4,"title":5,"body":6,"category":656,"description":657,"extension":658,"meta":659,"navigation":596,"ogImage":660,"path":661,"project_name":662,"published":663,"publishedAt":664,"seo":665,"stem":666,"tags":667,"todo":660,"unpublished":663,"updatedAt":660,"__hash__":674},"pages/2026-05/2026-05-12/diary-2026-05-12.md","2026年5月12日の開発日記 - SVG対照表とTurso DB取り込み、財務諸表クイズの並列展開",{"type":7,"value":8,"toc":640},"minimark",[9,14,18,22,29,32,37,40,46,88,99,102,106,109,113,159,167,169,173,176,180,219,227,229,233,236,240,276,284,286,289,533,535,538,580,582,585,617,619,622],[10,11,13],"h1",{"id":12},"_2026年5月12日の開発日記","2026年5月12日の開発日記",[15,16,17],"p",{},"朝6時台のレビューで前日の積み残しのズレを画面で見つけ、そこからマッピング修正→画像対照への方針転換→4セッション並列展開と一気に進めた。午後はBS/PL/CFのSVG図解を整え、財務諸表クイズPhase 1→Phase 3まで展開。夜にNotion書籍のTurso取り込みを完成させた。1日でファイルを跨ぐ大きい流れが3本走った日。",[19,20,21],"h2",{"id":21},"今日のタイムライン",[15,23,24],{},[25,26],"img",{"alt":27,"src":28},"タイムライン","/2026-05/2026-05-12/timeline-2026-05-12.png",[19,30,31],{"id":31},"今日やったこと",[33,34,36],"h3",{"id":35},"_1-cockpit-slides-原稿対照プロジェクト","1. cockpit-slides 原稿対照プロジェクト",[15,38,39],{},"朝の積み残し確認から、1日かけて1286枚のSVG↔Kindle原稿の対照表を完成させた。",[15,41,42],{},[43,44,45],"strong",{},"主な成果:",[47,48,49,53,64,71,74,77],"ul",{},[50,51,52],"li",{},"自動マッピングのロジックを章ごとに戦略分岐（5n/3n形式・LEGACY系・h3扉一般則）",[50,54,55,59,60,63],{},[56,57,58],"code",{},"_overrides.json"," の適用順を step 3 より前に移動して ",[56,61,62],{},"_00"," を予約済みにする根本修正",[50,65,66,67,70],{},"監査ページ ",[56,68,69],{},"_audit.vue"," に confidence フィルタとソート機能を追加",[50,72,73],{},"Playwright で全SVGをPNG化→Claude Codeに画像対照させる方針に切替え",[50,75,76],{},"13セッション → 4セッション並列に統合、マージスクリプトで1286/1286全件カバー",[50,78,79,80,83,84,87],{},"スライドビューアの戻るボタン、chapter跨ぎ時の最終ページに飛ばないバグを修正（コンポーネント再生成が原因、",[56,81,82],{},"router.push"," の query で ",[56,85,86],{},"jumpTo=last"," を渡す方式に変更）",[15,89,90,93,94],{},[43,91,92],{},"詳細:"," ",[95,96,98],"a",{"href":97},"/cockpit-slides-script-mapping","SVGスライドとKindle原稿の対照表を作った話",[100,101],"hr",{},[33,103,105],{"id":104},"_2-財務諸表クイズphase-1-phase-3","2. 財務諸表クイズ（Phase 1 → Phase 3）",[15,107,108],{},"決算書の入門書（2026年版）をTurso DBから引き出し、ハイライト連動の財務諸表クイズページを実装した。",[15,110,111],{},[43,112,45],{},[47,114,115,122,125,136,139,150,153,156],{},[50,116,117,118,121],{},"BS/PL/CFのブラケット構造SVGを ",[56,119,120],{},"svg-diagram"," スキルで作成、印刷マゼンタ（#ed1e79）に統一",[50,123,124],{},"図セット（BS/PL/CF）の外周マージン整合ルールをスキルに追加",[50,126,127,128,131,132,135],{},"トピック6から18問のクイズを生成、",[56,129,130],{},"\u003CBsShikumi>"," Vueコンポーネント化して ",[56,133,134],{},"highlight"," フィールドで強調箇所を制御",[50,137,138],{},"左固定SVG / 右スクロールクイズの2カラムレイアウト、Q1→Q2の自動センタリング",[50,140,141,142,145,146,149],{},"当初 ",[56,143,144],{},"all"," ハイライトが広すぎた問題を ",[56,147,148],{},"balance"," に再割り当て、易→難に問題順序を並べ替え",[50,151,152],{},"Phase 2（B/S編 12トピック・236問）完了",[50,154,155],{},"Phase 3（P/L編 トピック18〜26）を Agent サブエージェント並列で展開（R1: T18-21 / R2: T22-25 / R3: T26）",[50,157,158],{},"SVG図解タイポグラフィガイド（フォント階層L1〜L9）を作成し Pl* 9ファイルを監査・修正",[15,160,161,93,163],{},[43,162,92],{},[95,164,166],{"href":165},"/financial-statements-quiz","財務諸表クイズの実装 - SVGハイライト連動と左右2カラムレイアウト",[100,168],{},[33,170,172],{"id":171},"_3-notion書籍データのturso-db取り込み","3. Notion書籍データのTurso DB取り込み",[15,174,175],{},"裁断した実務書をNotionに貯めていたページ群を、書籍ナレッジベース（Turso DB）に取り込み、横断検索できるところまで進めた。",[15,177,178],{},[43,179,45],{},[47,181,182,185,188,195,210,213],{},[50,183,184],{},"Codex CLI（gpt-5.5）に計画書を3周回レビューさせ、致命的指摘ゼロまで磨いた",[50,186,187],{},"ファイル名から章を推定する案 → NotionルートCSVのプロパティ参照に切り替え",[50,189,190,191,194],{},"純粋関数 ",[56,192,193],{},"replace_book_with_chunks"," と副作用シェルを分離、テスト26→30件パス",[50,196,197,198,201,202,205,206,209],{},"画像URL書き換え（",[56,199,200],{},"/api/figures/\u003Cbook_id>/figures/Untitled-*.png","）、画像ラッパー ",[56,203,204],{},"\u003Ca>"," 除去、",[56,207,208],{},"\u003Ctitle>"," text化とTOC除去、ページタイトル重複の根本解決を順次対応",[50,211,212],{},"agent-browser で別ポート（3100）の Nuxt を開いて画像クリックでモーダル拡大まで動作確認",[50,214,215,218],{},[56,216,217],{},"/notion-import"," スラッシュコマンドを作成して CLAUDE.md に追記",[15,220,221,93,223],{},[43,222,92],{},[95,224,226],{"href":225},"/notion-export-to-turso-db","Notionの裁断書籍データをTurso DBに取り込むパイプライン構築",[100,228],{},[33,230,232],{"id":231},"_4-ga4設置とドメイン取り違えの修正","4. GA4設置とドメイン取り違えの修正",[15,234,235],{},"Nuxt 4 プロジェクトにGA4を設置する作業中、AI（私）が思い込みでドメインを書き間違えた。",[15,237,238],{},[43,239,45],{},[47,241,242,252,266,273],{},[50,243,244,247,248,251],{},[56,245,246],{},"nuxt.config.ts"," の ",[56,249,250],{},"app.head.script"," にGA4タグ（gtag.js本体 + 初期化）を追加",[50,253,254,255,257,258,261,262,265],{},"AI が ",[56,256,246],{}," の i18n baseUrl 1行だけを根拠に ",[56,259,260],{},"eurekapu.com"," と書いたが、実際は ",[56,263,264],{},"info-accounting.com"," だった、というミスを発見",[50,267,268,269,272],{},"baseUrl・ogUrl・README の3箇所を修正、",[56,270,271],{},"runtimeConfig.public.siteUrl"," で絶対URLを一元化",[50,274,275],{},"「コンテンツ=個人ブランド / 運営=合同会社」の立て付けをCLAUDE.mdのConventionsに2項目追記",[15,277,278,93,280],{},[43,279,92],{},[95,281,283],{"href":282},"/ga4-domain-and-ops-docs","GA4設置とドメインの取り違え - runtimeConfig一元化と運営体制のドキュメント化",[100,285],{},[19,287,288],{"id":288},"今日の試行錯誤",[290,291,292,314],"table",{},[293,294,295],"thead",{},[296,297,298,302,305,308,311],"tr",{},[299,300,301],"th",{},"#",[299,303,304],{},"テーマ",[299,306,307],{},"試したこと",[299,309,310],{},"結果",[299,312,313],{},"気づき",[315,316,317,335,355,371,388,405,425,442,461,479,496,512],"tbody",{},[296,318,319,323,326,329,332],{},[320,321,322],"td",{},"1",[320,324,325],{},"SVG↔原稿の自動マッピング",[320,327,328],{},"5n/3n形式・LEGACY系の戦略分岐＋h3扉一般則",[320,330,331],{},"退化解消したが完璧にはならず",[320,333,334],{},"ロジックで詰めるほど例外が増える",[296,336,337,340,343,346,352],{},[320,338,339],{},"2",[320,341,342],{},"同上",[320,344,345],{},"override適用順をstep 3より前に移動",[320,347,348,351],{},[56,349,350],{},"_01〜_05","が正しい原稿に対応",[320,353,354],{},"順序制御は機械化と相性が悪い",[296,356,357,360,362,365,368],{},[320,358,359],{},"3",[320,361,342],{},[320,363,364],{},"Playwrightで全SVG→PNG化、Claude画像対照に切替え",[320,366,367],{},"1286/1286全件カバー",[320,369,370],{},"自動化の境界を見極める判断が一番効いた",[296,372,373,376,379,382,385],{},[320,374,375],{},"4",[320,377,378],{},"4セッション分割",[320,380,381],{},"13セッション→4セッションに統合",[320,383,384],{},"並列の依存関係が単純化",[320,386,387],{},"分割しすぎは合流コストで損する",[296,389,390,393,396,399,402],{},[320,391,392],{},"5",[320,394,395],{},"スライドビューア戻るボタン",[320,397,398],{},"watchで pending state を設定",[320,400,401],{},"動かなかった（コンポーネント再生成のため）",[320,403,404],{},"「自分で動かして確認」を AI 任せにしない",[296,406,407,410,412,419,422],{},[320,408,409],{},"6",[320,411,342],{},[320,413,414,83,416,418],{},[56,415,82],{},[56,417,86],{}," を渡す",[320,420,421],{},"6/6 に着地、テストもパス",[320,423,424],{},"URL に状態を持たせる方が SPA再生成に強い",[296,426,427,430,433,436,439],{},[320,428,429],{},"7",[320,431,432],{},"BS/PL/CF の外周マージン",[320,434,435],{},"viewBoxを揃える",[320,437,438],{},"3枚が均等に並んだ",[320,440,441],{},"スキルにルール追加して次から自動で揃う",[296,443,444,447,450,455,458],{},[320,445,446],{},"8",[320,448,449],{},"クイズハイライト",[320,451,452,454],{},[56,453,144],{},"（全体）でマゼンタ",[320,456,457],{},"「広すぎる」と指摘された",[320,459,460],{},"認知負荷を上げると学習効果が落ちる",[296,462,463,466,468,473,476],{},[320,464,465],{},"9",[320,467,342],{},[320,469,470,472],{},[56,471,148],{},"（運用形態+調達源泉の両軸）",[320,474,475],{},"意図が伝わる強調になった",[320,477,478],{},"ハイライトは「示したいもの」と1対1にする",[296,480,481,484,487,490,493],{},[320,482,483],{},"10",[320,485,486],{},"Notion→Turso 計画書",[320,488,489],{},"Codex に1回レビュー",[320,491,492],{},"致命的指摘4点",[320,494,495],{},"計画書はAIに3周回レビューさせると安定",[296,497,498,501,503,506,509],{},[320,499,500],{},"11",[320,502,342],{},[320,504,505],{},"章をファイル名から推定",[320,507,508],{},"NotionルートCSVに章立列があり不要だった",[320,510,511],{},"メタデータの所在をgrepで先に確認",[296,513,514,517,520,525,530],{},[320,515,516],{},"12",[320,518,519],{},"GA4設置",[320,521,522,524],{},[56,523,246],{}," の i18n baseUrlを唯一の根拠にドメイン名を決め打ち",[320,526,527,529],{},[56,528,264],{}," と食い違っていた",[320,531,532],{},"AIが1行を根拠に推測するのは事故る",[100,534],{},[19,536,537],{"id":537},"今日の学び",[47,539,540,546,552,558,574],{},[50,541,542,545],{},[43,543,544],{},"自動化の境界を引く判断が一番効く",": 自動マッピングのロジックを章ごとに分岐させるほど例外が増え、最終的に画像対照（Claudeに目で見させる）に切り替えたのが1286/1286カバーに繋がった",[50,547,548,551],{},[43,549,550],{},"AIがコードだけ見て「直った」と報告したら疑う",": スライドビューアの戻るボタンは、コード上は正しく見えたが、Chrome DevToolsを開くまでバグは消えていなかった。今後はブラウザで動作確認するまで「修正完了」と言わないルールにした",[50,553,554,557],{},[43,555,556],{},"計画書はCodexに3周回レビューさせる",": Notion取り込みの計画書は1回目で致命的指摘4点。3周回かけたら致命点ゼロまで磨けた。1回目で出すとほぼ何か穴がある",[50,559,560,563,564,566,567,569,570,573],{},[43,561,562],{},"設定ファイル1行を根拠に推測すると事故る",": ",[56,565,260],{}," と ",[56,568,264],{}," の取り違えは、i18n baseUrl 1行を全体の根拠に拡張したのが原因。",[56,571,572],{},"grep"," で他の参照を確認するクセを CLAUDE.md に書いた",[50,575,576,579],{},[43,577,578],{},"メタデータは取り込み前にgrepで探す",": Notion DB のルートCSVに章立・概要が揃っていたのに、最初はファイル名から推定するアルゴリズムを書いていた。先に grep していれば実装を捨てずに済んだ",[100,581],{},[19,583,584],{"id":584},"明日やること",[47,586,589,599,605,611],{"className":587},[588],"contains-task-list",[50,590,593,598],{"className":591},[592],"task-list-item",[594,595],"input",{"disabled":596,"type":597},true,"checkbox"," cockpit-slides 監査ページの uncertain 88件を目視レビュー",[50,600,602,604],{"className":601},[592],[594,603],{"disabled":596,"type":597}," Phase 3（P/L編）のクイズページにTOC遷移を組み込む",[50,606,608,610],{"className":607},[592],[594,609],{"disabled":596,"type":597}," Notion取り込みの2冊目（別の実務書）を試す",[50,612,614,616],{"className":613},[592],[594,615],{"disabled":596,"type":597}," CLAUDE.md に書いた「AIがドメインを推測しない」ルールが守られているか次のセッションで確認",[100,618],{},[19,620,621],{"id":621},"関連記事",[47,623,624,628,632,636],{},[50,625,626],{},[95,627,98],{"href":97},[50,629,630],{},[95,631,166],{"href":165},[50,633,634],{},[95,635,226],{"href":225},[50,637,638],{},[95,639,283],{"href":282},{"title":641,"searchDepth":642,"depth":642,"links":643},"",2,[644,645,652,653,654,655],{"id":21,"depth":642,"text":21},{"id":31,"depth":642,"text":31,"children":646},[647,649,650,651],{"id":35,"depth":648,"text":36},3,{"id":104,"depth":648,"text":105},{"id":171,"depth":648,"text":172},{"id":231,"depth":648,"text":232},{"id":288,"depth":642,"text":288},{"id":537,"depth":642,"text":537},{"id":584,"depth":642,"text":584},{"id":621,"depth":642,"text":621},"diary","Notion書籍データのTurso取り込み、1286枚のSVG↔Kindle原稿対照、財務諸表クイズPhase 3並列展開、GA4設置とドメイン取り違えの修正まで、AIと役割分担しながら一日を回した記録。","md",{},null,"/2026-05-12-diary","daily-log",false,"2026-05-12T00:00:00.000Z",{"title":5,"description":657},"2026-05/2026-05-12/diary-2026-05-12",[668,669,670,671,672,673],"日記","Turso","SVG","Nuxt","Codex","サブエージェント並列","yy2hFYAcAdBLyvzstRCCbHW59m3CeWvVZ0a8IOv4pk0",[],"https://log.eurekapu.com/og/blog/2026-05-12-diary.png?v=2026-05-12T00%3A00%3A00.000Z&title=2026%E5%B9%B45%E6%9C%8812%E6%97%A5%E3%81%AE%E9%96%8B%E7%99%BA%E6%97%A5%E8%A8%98%20-%20SVG%E5%AF%BE%E7%85%A7%E8%A1%A8%E3%81%A8Turso%20DB%E5%8F%96%E3%82%8A%E8%BE%BC%E3%81%BF%E3%80%81%E8%B2%A1%E5%8B%99%E8%AB%B8%E8%A1%A8%E3%82%AF%E3%82%A4%E3%82%BA%E3%81%AE%E4%B8%A6%E5%88%97%E5%B1%95%E9%96%8B&author=Kei%20Komatsu&sig=e6b62dfc8581009c",1782528835638]