[{"data":1,"prerenderedAt":681},["ShallowReactive",2],{"content-/2026-05-09-diary":3,"all-pages-for-dir":679,"og-image-/2026-05-09-diary":680},{"id":4,"title":5,"body":6,"category":661,"description":662,"extension":663,"meta":664,"navigation":586,"path":665,"project_name":666,"published":667,"publishedAt":668,"seo":669,"stem":670,"tags":671,"todo":677,"updatedAt":677,"__hash__":678},"pages/2026-05/2026-05-09/diary-2026-05-09.md","2026年5月9日の開発日記 - クイズ画面のBS/PL初期残高をCodex 5回レビューで詰める",{"type":7,"value":8,"toc":642},"minimark",[9,14,18,22,29,32,37,40,46,67,78,81,85,92,96,113,121,123,127,134,138,152,160,162,166,169,173,184,192,194,198,201,205,216,224,226,230,237,241,252,260,262,266,269,272,276,287,295,297,300,534,536,539,570,572,575,607,609,612],[10,11,13],"h1",{"id":12},"_2026年5月9日の開発日記","2026年5月9日の開発日記",[15,16,17],"p",{},"朝5時台から夜まで、Vue/Nuxt のUI改善とCodex連携、PC環境棚卸しまで広く触った日。前日の積み残しを掘り起こすところから始めて、クイズ画面の貸借バランス問題を計画書→Codex 5回レビュー→実装→テストまで一気通貫で抜けた。並行してコクピットのレスポンシブを1920〜375pxまで7段階で検証し、モーダルズームの自動fitとSVG viewBox補正で見た目の歪みを潰した。breadcrumbは130ファイルを一括変換、Dropbox 2.6万件同期の謎は古いPCの残骸で決着。",[19,20,21],"h2",{"id":21},"今日のタイムライン",[15,23,24],{},[25,26],"img",{"alt":27,"src":28},"タイムライン","/2026-05/2026-05-09/timeline-2026-05-09.png",[19,30,31],{"id":31},"今日やったこと",[33,34,36],"h3",{"id":35},"_1-クイズ画面のbspl全科目事前表示と動的初期残高codex-5回レビュー-実装","1. クイズ画面のBS/PL全科目事前表示と動的初期残高（Codex 5回レビュー → 実装）",[15,38,39],{},"問題ごとにBS/PLに勘定がセットされる方式から、chapter/sectionで問題セットを特定し、出てくる勘定科目を全部事前に枠表示して各科目の初期残高を動的算出する方式に切り替えた。資本金は1000固定、それ以外は問題系列を逆算して常にプラスを保つ。",[15,41,42],{},[43,44,45],"strong",{},"主な成果:",[47,48,49,58,61,64],"ul",{},[50,51,52,53,57],"li",{},"計画書を ",[54,55,56],"code",{},"memo/2026-05-09/quiz-bs-pl-preset-balance-plan.md"," に作成",[50,59,60],{},"Codex (gpt-5.5) で5回レビュー：1回目で動的算出方式へ発想転換、3回目で純資産マイナス防止、5回目OK",[50,62,63],{},"accountMapping.ts に新規関数追加、practice.vue 修正、22テストpass",[50,65,66],{},"dev サーバで24科目枠と貸借一致（11,200 = 3,100 + 8,100）を目視確認",[15,68,69,72,73],{},[43,70,71],{},"詳細:"," ",[74,75,77],"a",{"href":76},"/quiz-bs-pl-preset-balance","クイズ画面のBS/PL全科目事前表示と動的初期残高をCodex 5回レビューで実装",[79,80],"hr",{},[33,82,84],{"id":83},"_2-クイズ画面のcsbsplをコクピットスタイル統一delta-popup装飾点線","2. クイズ画面のCS/BS/PLをコクピットスタイル統一＋delta-popup・装飾点線",[15,86,87,88,91],{},"クイズの財務三表をコクピット側のスタイル（タイトルバー#d1d5db、テーブルベース、GL階調、0.825rem、カード枠撤去）に書き換え、BSは資産合計から流動/固定/その他流動でブレイクダウン。マイナス表記は▲統一。CS表示時だけbodyを1480pxへブレイクアウト、ヘッダーはmax-width維持。delta-popupを ",[54,89,90],{},"acct:"," prefix限定で実装し、PL→BS当期純利益・PL→CS税引前・CS→BS現金の3組の装飾点線をシーケンス制御。←/→/Ctrl+Enterのキーボードショートカットも追加。",[15,93,94],{},[43,95,45],{},[47,97,98,101,104,107],{},[50,99,100],{},"3表を同じ読み口で揃え、視線が一方向に流れる構造に",[50,102,103],{},"delta-popupを集計値に出さず個別科目だけに限定（花火大会化を防止）",[50,105,106],{},"カウントアップ完了1.7秒後に点線が1本ずつ出るシーケンス",[50,108,109,112],{},[54,110,111],{},"\u003Ckbd>"," タグ付きナビボタン",[15,114,115,72,117],{},[43,116,71],{},[74,118,120],{"href":119},"/quiz-cockpit-style-unification","クイズ画面のCS/BS/PLをコクピットスタイルに統一しdelta-popupと装飾点線で連携を可視化",[79,122],{},[33,124,126],{"id":125},"_3-コクピットのレスポンシブ強化モーダル自動ズーム","3. コクピットのレスポンシブ強化＋モーダル自動ズーム",[15,128,129,130,133],{},"cockpit-00-summaryを1920/1366/1280/1100/900/768/375の7幅で順に検証して横スクロールを撲滅。1920pxはwide-sectionを1480pxで頭打ちにしてセンタリング、375pxはBSテーブルを1列積みに変更。statements-grid狭幅版にssエリアが入っていなかったバグも修正。モーダル拡大時に自動でビューポートにフィットする ",[54,131,132],{},"applyFitZoom"," と±ズームボタンを追加。CSS zoom配下でSVGオーバーレイ座標が getBoundingClientRect 由来 path 座標とずれる問題は、SVGに動的viewBoxを当てて座標系を揃えて解決。",[15,135,136],{},[43,137,45],{},[47,139,140,143,146,149],{},[50,141,142],{},"1920〜375pxで横スクロール0px",[50,144,145],{},"iPadでモーダル拡大時、左ペインの巨大空白を解消",[50,147,148],{},"自動fit機能でユーザーが毎回−を押す手間が消えた",[50,150,151],{},"viewBox動的化でズーム中もオーバーレイがずれない",[15,153,154,72,156],{},[43,155,71],{},[74,157,159],{"href":158},"/cockpit-responsive-modal-zoom","コクピット財務三表ページのレスポンシブ強化とモーダルの自動ズーム機能",[79,161],{},[33,163,165],{"id":164},"_4-cfリファレンスのmillercolumnlayoutを企業ライフサイクル順に再構成","4. CFリファレンスのMillerColumnLayoutを企業ライフサイクル順に再構成",[15,167,168],{},"cashflow-statement/reference のトップエリアを280px→90pxまで圧縮し、右コンテンツに topic-header（タイトル＋グレー説明）を移設。31トピックを企業ライフサイクル順（基礎知識→株主資本→運転資本→借入金→固定資産→法人税）に並び替え、7セクションに区切って明示。型を拡張して section フィールドを追加、ナビ部分のテンプレート書き換え、CSSで nav-col を block レイアウトに、セクション内で2カラム保持。",[15,170,171],{},[43,172,45],{},[47,174,175,178,181],{},[50,176,177],{},"ファーストビューがコンテンツで埋まるレイアウトに",[50,179,180],{},"リスト全体が会社のストーリー順になった",[50,182,183],{},"簿記3級ノートのフェーズ表示と同じ読み口に揃った",[15,185,186,72,188],{},[43,187,71],{},[74,189,191],{"href":190},"/cf-reference-miller-layout-refinement","キャッシュフロー実務リファレンスのMillerColumnLayoutを企業ライフサイクル順に再構成",[79,193],{},[33,195,197],{"id":196},"_5-全レッスンページのbreadcrumb統一130ファイル一括変換","5. 全レッスンページのbreadcrumb統一（130ファイル一括変換）",[15,199,200],{},"簿記3級スライド・会計入門・case100ノート・cockpit・CFリファレンスなどでbreadcrumbの形がバラついていたのを、共通コンポーネントを作って10レイアウトを置換。case100ノート系130ファイルは一括変換スクリプトで処理。",[15,202,203],{},[43,204,45],{},[47,206,207,210,213],{},[50,208,209],{},"共通コンポーネント1箇所修正で10レイアウト同期",[50,211,212],{},"スクリプトで130ファイル10秒（手動なら65分換算）",[50,214,215],{},"別セッションがステージングしていてやり直しになる事故も経験",[15,217,218,72,220],{},[43,219,71],{},[74,221,223],{"href":222},"/breadcrumb-unification","全レッスンページのbreadcrumbを共通コンポーネント化して130ファイル一括変換",[79,225],{},[33,227,229],{"id":228},"_6-将棋盤デモにキーボードショートカット持ち駒ハイライトsvg駒","6. 将棋盤デモにキーボードショートカット＋持ち駒ハイライト＋SVG駒",[15,231,232,233,236],{},"mdx-playground の ",[54,234,235],{},"shogi-board-demo.vue"," に3機能を追加。←/→で局面進退、持ち駒選択中はその駒を青枠ハイライト、文字列表示の持ち駒をSVG駒画像に置換。",[15,238,239],{},[43,240,45],{},[47,242,243,246,249],{},[50,244,245],{},"onMounted/onBeforeUnmountでkeydownリスナー登録・解除",[50,247,248],{},"打ち予告 computed で青枠ハイライト",[50,250,251],{},"CSSをSVGにフィットさせて駒の見た目が本物に近づいた",[15,253,254,72,256],{},[43,255,71],{},[74,257,259],{"href":258},"/shogi-board-keyboard-svg","将棋盤デモにキーボードショートカットと持ち駒ハイライト・SVG駒を実装",[79,261],{},[33,263,265],{"id":264},"_7-dropbox古いpc残骸の謎解きsql-serverサービス棚卸し","7. Dropbox古いPC残骸の謎解き＋SQL Serverサービス棚卸し",[15,267,268],{},"Dropboxが2.6万件のファイルを延々同期している原因を調査。仮説1（PCバックアップでDownloads丸ごと）→Documentsしかチェックされておらず却下、仮説2（Documents暴走）→ローカルは830件だけだが、ユーザー仮説「古いPCの残骸」が正解だった（ホスト名で確定）。Pictures/ClipboardImages の自動アップロードはバックアップ対象外と判明。",[15,270,271],{},"並行してWindowsスタートアップ整理。SQL Server 2014（会計ソフトC=弥生のインスタンス）と2016（税務ソフト系=達人のDB、約1.4GB）と2017（インストーラ残骸）を発見。会計ソフトC側は本体アンインストール済みなのに残骸サービスだけ動いていて空のmasterのみ。Codex (gpt-5.5) でStartType Manual/Disabled運用が永続的に効くこと確認、UAC承認で会計ソフトCを停止+Disabledにして117MB解放。税務ソフト側は手動起動が面倒なので据え置き。",[15,273,274],{},[43,275,45],{},[47,277,278,281,284],{},[50,279,280],{},"古いPC残骸のクラウドバックアップを削除画面まで誘導",[50,282,283],{},"会計ソフトC残骸サービスをStop+Disabledに（117MB解放）",[50,285,286],{},"StartTypeレジストリ書き換えで永続的に効くことをCodexで確認",[15,288,289,72,291],{},[43,290,71],{},[74,292,294],{"href":293},"/pc-environment-cleanup","Dropboxが2.6万件同期する謎とSQL Serverの残骸を整理した話",[79,296],{},[19,298,299],{"id":299},"今日の試行錯誤",[301,302,303,325],"table",{},[304,305,306],"thead",{},[307,308,309,313,316,319,322],"tr",{},[310,311,312],"th",{},"#",[310,314,315],{},"テーマ",[310,317,318],{},"試したこと",[310,320,321],{},"結果",[310,323,324],{},"気づき",[326,327,328,346,362,379,396,413,432,449,466,483,500,517],"tbody",{},[307,329,330,334,337,340,343],{},[331,332,333],"td",{},"1",[331,335,336],{},"クイズ初期残高",[331,338,339],{},"スクリプトで事前生成",[331,341,342],{},"Codex指摘で却下",[331,344,345],{},"動的算出のほうがシンプル、自動生成ファイル不要",[307,347,348,351,353,356,359],{},[331,349,350],{},"2",[331,352,336],{},[331,354,355],{},"動的算出に切り替え",[331,357,358],{},"5回レビューでOK",[331,360,361],{},"純資産マイナス防止・判定式統一など3回目までで詰まる",[307,363,364,367,370,373,376],{},[331,365,366],{},"3",[331,368,369],{},"コクピットモバイル",[331,371,372],{},"モーダル左ペイン min-height: 100dvh",[331,374,375],{},"巨大空白発生",[331,377,378],{},"デスクトップ2列時だけ高さ揃える条件を追加",[307,380,381,384,387,390,393],{},[331,382,383],{},"4",[331,385,386],{},"コクピットズーム",[331,388,389],{},"CSS zoom + getBoundingClientRect",[331,391,392],{},"SVGオーバーレイずれ",[331,394,395],{},"viewBox動的化で座標系を揃えて解決",[307,397,398,401,404,407,410],{},[331,399,400],{},"5",[331,402,403],{},"quizブレイクアウト",[331,405,406],{},"全画面でwide-section化",[331,408,409],{},"累積/単体ヘッダーまで広がる",[331,411,412],{},"bodyだけ広げてヘッダーはmax-width維持",[307,414,415,418,421,424,427],{},[331,416,417],{},"6",[331,419,420],{},"delta-popup",[331,422,423],{},"全要素に適用",[331,425,426],{},"集計値も光って花火大会",[331,428,429,431],{},[54,430,90],{}," prefix限定で個別科目だけに",[307,433,434,437,440,443,446],{},[331,435,436],{},"7",[331,438,439],{},"装飾点線",[331,441,442],{},"カウントアップ中に出す",[331,444,445],{},"注意が散る",[331,447,448],{},"1700ms待ってから1本ずつシーケンス描画",[307,450,451,454,457,460,463],{},[331,452,453],{},"8",[331,455,456],{},"breadcrumb",[331,458,459],{},"個別ファイル手修正",[331,461,462],{},"10レイアウト分が辛い",[331,464,465],{},"共通コンポーネント化＋130ファイル一括変換",[307,467,468,471,474,477,480],{},[331,469,470],{},"9",[331,472,473],{},"Dropbox 2.6万件",[331,475,476],{},"PCバックアップ仮説",[331,478,479],{},"Documentsだけだった",[331,481,482],{},"古いPCの残骸クラウドバックアップが正体",[307,484,485,488,491,494,497],{},[331,486,487],{},"10",[331,489,490],{},"スタートアップ調査",[331,492,493],{},"Win32_StartupCommandだけ参照",[331,495,496],{},"オフ判定が漏れる",[331,498,499],{},"StartupApprovedレジストリで照合し直す",[307,501,502,505,508,511,514],{},[331,503,504],{},"11",[331,506,507],{},"Chrome DevTools",[331,509,510],{},"resize_pageを使う",[331,512,513],{},"メディアクエリが追従しない瞬間あり",[331,515,516],{},"emulateで切り替えると安定",[307,518,519,522,525,528,531],{},[331,520,521],{},"12",[331,523,524],{},"git ステージング",[331,526,527],{},"breadcrumb直後にコミット",[331,529,530],{},"別セッションが先にステージしていた",[331,532,533],{},"unstage→自分の担当分だけ再ステージ",[79,535],{},[19,537,538],{"id":538},"今日の学び",[47,540,541,544,547,550,553,556,559],{},[50,542,543],{},"事前生成スクリプトより動的算出を疑う：成生成ファイル2本がそのまま消えた",[50,545,546],{},"Codex 5回は重くない：本文を毎回渡せばresume --lastで文脈が続く",[50,548,549],{},"判定式は1箇所に集約：会社設立特例を §5.3 / §6 / §7 で揃えるだけで指摘が消えた",[50,551,552],{},"CSS zoom はオーバーレイの天敵：SVGの座標系をviewBoxで明示すればズーム下でも保つ",[50,554,555],{},"共通コンポーネント化は30ファイルあたりで逆転する：手動65分とスクリプト10秒の差",[50,557,558],{},"残骸サービスはアンインストーラの仕様：本体は消えてもSQL Serverインスタンスだけ残ることがある",[50,560,561,562,565,566,569],{},"Codexにセカンドオピニオン依頼するときは ",[54,563,564],{},"-m gpt-5.5"," を必ず付ける、",[54,567,568],{},"resume --last"," で文脈を引き継ぐ",[79,571],{},[19,573,574],{"id":574},"明日やること",[47,576,579,589,595,601],{"className":577},[578],"contains-task-list",[50,580,583,588],{"className":581},[582],"task-list-item",[584,585],"input",{"disabled":586,"type":587},true,"checkbox"," クイズ chapter=8 のアクセス制限解除して目視確認",[50,590,592,594],{"className":591},[582],[584,593],{"disabled":586,"type":587}," 達人を Stream Deck の Multi Action で Start-Service+起動連鎖（やる気になったら）",[50,596,598,600],{"className":597},[582],[584,599],{"disabled":586,"type":587}," cockpit-01-foundation 以降の他ページもbreadcrumb確認",[50,602,604,606],{"className":603},[582],[584,605],{"disabled":586,"type":587}," 将棋盤デモのその他駒（飛・桂・香）もSVG化",[79,608],{},[19,610,611],{"id":611},"関連記事",[47,613,614,618,622,626,630,634,638],{},[50,615,616],{},[74,617,77],{"href":76},[50,619,620],{},[74,621,120],{"href":119},[50,623,624],{},[74,625,159],{"href":158},[50,627,628],{},[74,629,191],{"href":190},[50,631,632],{},[74,633,223],{"href":222},[50,635,636],{},[74,637,259],{"href":258},[50,639,640],{},[74,641,294],{"href":293},{"title":643,"searchDepth":644,"depth":644,"links":645},"",2,[646,647,657,658,659,660],{"id":21,"depth":644,"text":21},{"id":31,"depth":644,"text":31,"children":648},[649,651,652,653,654,655,656],{"id":35,"depth":650,"text":36},3,{"id":83,"depth":650,"text":84},{"id":125,"depth":650,"text":126},{"id":164,"depth":650,"text":165},{"id":196,"depth":650,"text":197},{"id":228,"depth":650,"text":229},{"id":264,"depth":650,"text":265},{"id":299,"depth":644,"text":299},{"id":538,"depth":644,"text":538},{"id":574,"depth":644,"text":574},{"id":611,"depth":644,"text":611},"diary","クイズ画面のBS/PL全科目事前表示と動的初期残高をCodex 5回レビューで実装、コクピットのレスポンシブ7段階検証＋モーダル自動ズーム、quiz画面のスタイル統一とdelta-popup・装飾点線、CFリファレンスのライフサイクル順再構成、breadcrumb 130ファイル一括統一、Dropbox古いPC残骸の謎解きとSQL Serverサービス棚卸し、将棋盤のキーボード操作。","md",{},"/2026-05-09-diary","daily-log",false,"2026-05-09T00:00:00.000Z",{"title":5,"description":662},"2026-05/2026-05-09/diary-2026-05-09",[672,673,674,675,676],"日記","Vue","Codexレビュー","簿記","Windows",null,"wKAB68BtACyQRvp9ukV-ZRi5MlCEmgEkVKRXOiZ65LE",[],"https://log.eurekapu.com/favicon.svg",1778379991804]