[{"data":1,"prerenderedAt":496},["ShallowReactive",2],{"content-/2026-04-20-diary":3,"all-pages-for-dir":494,"og-image-/2026-04-20-diary":495},{"id":4,"title":5,"body":6,"category":474,"description":475,"extension":476,"meta":477,"navigation":478,"path":479,"project_name":480,"published":481,"publishedAt":482,"seo":483,"stem":484,"tags":485,"todo":492,"updatedAt":492,"__hash__":493},"pages/2026-04/2026-04-20/diary-2026-04-20.md","2026年4月20日の開発日記 - CF教材のビューア・リファレンス・SVG図解を一気に構築",{"type":7,"value":8,"toc":458},"minimark",[9,14,18,22,29,32,37,40,46,62,73,76,80,83,87,101,109,111,115,118,122,136,144,146,150,153,157,174,182,184,187,369,371,375,382,388,391,408,411,413,416,435,437,440],[10,11,13],"h1",{"id":12},"_2026年4月20日の開発日記","2026年4月20日の開発日記",[15,16,17],"p",{},"eurekapu-nuxt4のCF計算書教材を1日中磨き続けた。条文ビューアの解決率を100%に押し上げ、実務リファレンスページをゼロから立ち上げ、ステップ学習コンテンツをVueページとして量産し、テーブルとpreブロックを59件のSVGに置き換えた。朝5時台から夜まで、10セッション・14時間の集中開発。",[19,20,21],"h2",{"id":21},"今日のタイムライン",[15,23,24],{},[25,26],"img",{"alt":27,"src":28},"タイムライン","/2026-04/2026-04-20/timeline-2026-04-20.png",[19,30,31],{"id":31},"今日やったこと",[33,34,36],"h3",{"id":35},"_1-cf基準条文ビューアの機能拡張","1. CF基準条文ビューアの機能拡張",[15,38,39],{},"Phase Fの解決率を90%→100%に引き上げた。未解決26件は全て「作成基準」への条文番号なし参照で、general provisionを追加して一括解消。そこから全条文を取得して2カラムHTML（左=条文、右=書籍での引用コンテキスト）に変換し、基準ごとに34ページに分割してパフォーマンスを改善した。Intersection Observerでサイドバーのスクロール追従ハイライト、引用済みフィルターも追加。",[15,41,42],{},[43,44,45],"strong",{},"主な成果:",[47,48,49,53,56,59],"ul",{},[50,51,52],"li",{},"解決率 261/261 = 100%",[50,54,55],{},"全条文の2カラムHTML化 + 34ページ分割",[50,57,58],{},"citations.jsonに前後文脈テキスト追加",[50,60,61],{},"「引用済みのみ表示」フィルター",[15,63,64,67,68],{},[43,65,66],{},"詳細:"," ",[69,70,72],"a",{"href":71},"/cf-standards-viewer-enhancement","CF基準条文ビューアの機能拡張",[74,75],"hr",{},[33,77,79],{"id":78},"_2-cf実務リファレンスページの新規構築","2. CF実務リファレンスページの新規構築",[15,81,82],{},"ライブラリを一切使わず、全文検索可能な実務リファレンスページを新規作成した。TursoDBから書籍のキーワードを取得して31論点・130キーワードに拡充。2カラムレイアウト（左: stickyな論点ナビ2列表示、右: キーワード一覧）、レベルタグ(3級/2級/実務)フィルター、基準条文のクリック展開、矢印キーナビゲーションまで実装。Codexレビューで条文の根拠間違いを5件修正。",[15,84,85],{},[43,86,45],{},[47,88,89,92,95,98],{},[50,90,91],{},"31論点・130キーワードの実務リファレンス",[50,93,94],{},"ライブラリなし全文検索",[50,96,97],{},"レベルフィルター + 矢印キーナビ",[50,99,100],{},"条文ポップオーバー（マウスオーバーで展開、クリックでトグル）",[15,102,103,67,105],{},[43,104,66],{},[69,106,108],{"href":107},"/cf-reference-page-development","ライブラリなしで全文検索つきCF実務リファレンスページを構築した記録",[74,110],{},[33,112,114],{"id":113},"_3-cf精算表ステップ学習ページの構築","3. CF精算表ステップ学習ページの構築",[15,116,117],{},"ドラフトMDを経由せず、直接Vueページとして教材コンテンツを構築した。Codexレビューで致命的問題2点（① memo/配下はCloudflare Pagesで配信不可、② v-htmlでグローバルCSS汚染）を事前に潰し、ExcelHtmlViewerコンポーネントを作って全9ページを完成させた。3カラムレイアウト、ドラフトビューアー、StandardRef.vueも実装。",[15,119,120],{},[43,121,45],{},[47,123,124,127,130,133],{},[50,125,126],{},"全9ページ（ch0 + step1〜7 + index）",[50,128,129],{},"ExcelHtmlViewer（クリックでモーダル拡大）",[50,131,132],{},"3カラムレイアウト（左: ステップ一覧、中: コンテンツ、右: 目次追従）",[50,134,135],{},"書籍キーワードDD（カバー率52%確認）",[15,137,138,67,140],{},[43,139,66],{},[69,141,143],{"href":142},"/cf-step-learning-pages","CF精算表ステップ学習ページの構築",[74,145],{},[33,147,149],{"id":148},"_4-svg図解一括変換","4. SVG図解一括変換",[15,151,152],{},"ch0〜step7のHTMLテーブルとpreブロックを、全てSVG図解に置き換えた。グレー8段階のトンマナルールを確立し、6サブエージェントを並列起動して59件のSVGを一気に生成。ウォーターフォールチャート、CFラベル付き仕訳、マゼンタ4段階の追加、K表記→円単位の統一まで完了。",[15,154,155],{},[43,156,45],{},[47,158,159,162,165,168,171],{},[50,160,161],{},"59件のSVG生成（6並列エージェント）",[50,163,164],{},"グレー8段階トンマナルール確立",[50,166,167],{},"ウォーターフォールチャート（売掛金・商品・買掛金の増減内訳）",[50,169,170],{},"CFラベル付き仕訳SVG + マゼンタ4段階",[50,172,173],{},"SVG図解スキル（.claude/skills/svg-diagram）新規作成",[15,175,176,67,178],{},[43,177,66],{},[69,179,181],{"href":180},"/svg-diagram-conversion","テーブルとpreブロックをSVG図解に一括変換した記録",[74,183],{},[19,185,186],{"id":186},"今日の試行錯誤",[188,189,190,212],"table",{},[191,192,193],"thead",{},[194,195,196,200,203,206,209],"tr",{},[197,198,199],"th",{},"#",[197,201,202],{},"テーマ",[197,204,205],{},"試したこと",[197,207,208],{},"結果",[197,210,211],{},"気づき",[213,214,215,233,250,267,284,301,318,335,352],"tbody",{},[194,216,217,221,224,227,230],{},[218,219,220],"td",{},"1",[218,222,223],{},"provision_number=None",[218,225,226],{},"個別に条文番号を推定しようとした",[218,228,229],{},"非効率",[218,231,232],{},"general provisionを1つ作って全26件を吸収する方が速い",[194,234,235,238,241,244,247],{},[218,236,237],{},"2",[218,239,240],{},"エンコーディング",[218,242,243],{},"Python出力の文字化け調査",[218,245,246],{},"bashのエンコーディング問題",[218,248,249],{},"JSONファイル自体はUTF-8で正常、Read直接で解決",[194,251,252,255,258,261,264],{},[218,253,254],{},"3",[218,256,257],{},"スクロールバー幅ジャンプ",[218,259,260],{},"scrollbar-gutter: stable → min-width: 0 → html overflow-y: scroll",[218,262,263],{},"3段目で解決",[218,265,266],{},"Windowsのスクロールバー17pxがビューポート幅を変動させていた",[194,268,269,272,275,278,281],{},[218,270,271],{},"4",[218,273,274],{},"ドラフトMD vs Vue直接",[218,276,277],{},"最初はドラフトMD経由を検討",[218,279,280],{},"Vue直接に決定",[218,282,283],{},"削除前提のドラフトを経由するより、最初から本番コンポーネントにする方が手戻りが少ない",[194,285,286,289,292,295,298],{},[218,287,288],{},"5",[218,290,291],{},"Codexレビュー",[218,293,294],{},"memo/配下のfs.readFile",[218,296,297],{},"本番で動かない",[218,299,300],{},"Cloudflare Workers環境でnode:fsは使えず、public/に移す必要があった",[194,302,303,306,309,312,315],{},[218,304,305],{},"6",[218,307,308],{},"v-html CSS汚染",[218,310,311],{},"HTMLドキュメントをv-htmlで挿入",[218,313,314],{},"グローバルCSS破壊",[218,316,317],{},"scopedなExcelHtmlViewerコンポーネントでisolation",[194,319,320,323,326,329,332],{},[218,321,322],{},"7",[218,324,325],{},"ウォーターフォール矢印",[218,327,328],{},"左向き矢印で実装",[218,330,331],{},"逆だった",[218,333,334],{},"期首→増加→減少→期末は右向きが自然",[194,336,337,340,343,346,349],{},[218,338,339],{},"8",[218,341,342],{},"CF仕訳SVG",[218,344,345],{},"仕訳形式のSVGを作成",[218,347,348],{},"ユーザーから「直感的でない」と削除指示",[218,350,351],{},"仕訳にCF区分ラベルを付ける方がわかりやすい",[194,353,354,357,360,363,366],{},[218,355,356],{},"9",[218,358,359],{},"K表記",[218,361,362],{},"Step3以降でK表記使用",[218,364,365],{},"Excelとトンマナが合わない",[218,367,368],{},"教材のExcelが円単位なら全体を円単位に統一すべき",[74,370],{},[19,372,374],{"id":373},"直接法cf計算書の実例リサーチ","直接法CF計算書の実例リサーチ",[15,376,377,378,381],{},"ch0の「直接法と間接法」セクションに実例を入れたくて、日本の上場企業で直接法を採用している（いた）企業を探した。結果、",[43,379,380],{},"ニューアート（7638）"," が2017年度まで直接法で営業CFを開示し、2018年度に間接法へ切り替えていたことが判明した。",[15,383,384],{},[25,385],{"alt":386,"src":387},"ニューアートの直接法CF計算書（2017年度）","/2026-04/2026-04-20/newart-direct-method-cf.png",[15,389,390],{},"変更理由は「連結損益計算書の損益と連結キャッシュ・フローとの関連性を明瞭化し、他社との比較を容易にするため」。99%以上が間接法を採用する中、他社比較のしやすさが直接法離脱の決め手になった。",[47,392,393,401],{},[50,394,395],{},[69,396,400],{"href":397,"rel":398},"https://ssl4.eir-parts.net/doc/7638/yuho_pdf/S100AQPF/00.pdf",[399],"nofollow","有価証券報告書（2018年・変更年度）",[50,402,403],{},[69,404,407],{"href":405,"rel":406},"https://ssl4.eir-parts.net/doc/7638/yuho_pdf/S100DJC7/00.pdf",[399],"有価証券報告書（2019年）",[15,409,410],{},"また、学校法人会計では直接法がベースであることも確認した（市田浩三「学校法人のキャッシュ・フロー計算書」京都マネジメント・レビュー第6号）。学校法人は「資金収支計算書」を作成しており、これがCF計算書の直接法に対応する。",[74,412],{},[19,414,415],{"id":415},"今日の学び",[47,417,418,421,424,432],{},[50,419,420],{},"Codexレビューは実装前に必ず受ける。今日だけで致命的問題を計7件検出して事前に潰せた",[50,422,423],{},"サブエージェント6並列でSVG 59件を一気に変換できた。量産系タスクは並列化の効果が大きい",[50,425,426,427,431],{},"スクロールバーの表示/非表示によるレイアウトジャンプは",[428,429,430],"code",{},"html { overflow-y: scroll }","が決定打",[50,433,434],{},"general provisionパターン: 条文番号が特定できない参照は、1つのgeneral provisionに集約して解決率を上げる",[74,436],{},[19,438,439],{"id":439},"関連記事",[47,441,442,446,450,454],{},[50,443,444],{},[69,445,72],{"href":71},[50,447,448],{},[69,449,108],{"href":107},[50,451,452],{},[69,453,143],{"href":142},[50,455,456],{},[69,457,181],{"href":180},{"title":459,"searchDepth":460,"depth":460,"links":461},"",2,[462,463,470,471,472,473],{"id":21,"depth":460,"text":21},{"id":31,"depth":460,"text":31,"children":464},[465,467,468,469],{"id":35,"depth":466,"text":36},3,{"id":78,"depth":466,"text":79},{"id":113,"depth":466,"text":114},{"id":148,"depth":466,"text":149},{"id":186,"depth":460,"text":186},{"id":373,"depth":460,"text":374},{"id":415,"depth":460,"text":415},{"id":439,"depth":460,"text":439},"diary","CF基準条文ビューアの解決率100%化、実務リファレンスページ新規構築、ステップ学習Vueページ化、59件のSVG図解一括変換を1日で完走した記録","md",{},true,"/2026-04-20-diary","daily-log",false,"2026-04-20T00:00:00.000Z",{"title":5,"description":475},"2026-04/2026-04-20/diary-2026-04-20",[486,487,488,489,490,491],"日記","CF","SVG","Vue","TursoDB","Codex",null,"YZpRu3WAwCeauy1hZhz38TdGZlaRaaP6fehJdQ2JW7M",[],"https://log.eurekapu.com/favicon.svg",1776929993170]