[{"data":1,"prerenderedAt":615},["ShallowReactive",2],{"content-/2026-04-16-diary":3,"all-pages-for-dir":613,"og-image-/2026-04-16-diary":614},{"id":4,"title":5,"body":6,"category":594,"description":595,"extension":596,"meta":597,"navigation":525,"path":598,"project_name":599,"published":600,"publishedAt":601,"seo":602,"stem":603,"tags":604,"todo":611,"updatedAt":611,"__hash__":612},"pages/2026-04/2026-04-16/diary-2026-04-16.md","2026年4月16日の開発日記 - CFWS全37Qの網羅修正とスキル構造の公式準拠",{"type":7,"value":8,"toc":578},"minimark",[9,14,18,21,25,32,35,40,43,49,68,79,82,86,89,93,115,123,125,129,152,156,171,179,181,185,192,196,207,215,217,220,478,480,483,509,511,514,549,551,554],[10,11,13],"h1",{"id":12},"_2026年4月16日の開発日記","2026年4月16日の開発日記",[15,16,17],"p",{},"今日は朝から晩までeurekapu-nuxt4のCFWS（キャッシュフロー計算書ワークシート）生成ロジックに向き合った1日。Q3-3（引当金の取扱い）の期首残高が出力から消えていた問題を糸口に、パーサーとアロケータを掘り下げて全37Qの網羅修正まで広げた。Codexレビューを複数回挟んで計画段階で致命的な穴を潰してから実装に入る型が、今日はかなり効いた。",[15,19,20],{},"合間にChrome拡張のための動画分割スクリプト、Claude Codeスキルを公式ディレクトリ構造へ全面移行する作業もこなした。",[22,23,24],"h2",{"id":24},"今日のタイムライン",[15,26,27],{},[28,29],"img",{"alt":30,"src":31},"タイムライン","/2026-04/2026-04-16/timeline-2026-04-16.png",[22,33,34],{"id":34},"今日やったこと",[36,37,39],"h3",{"id":38},"_1-cfws-q3-3q3-4-の調整項目漏れを根治し全37q網羅修正","1. CFWS Q3-3/Q3-4 の調整項目漏れを根治し、全37Q網羅修正",[15,41,42],{},"Q3-3のMF仕訳に期首残高が落ちていた問題からスタート。元Excelのパース段階で「開始残高」行が他Qと違う列構造（N列=開始残高、O列=空）になっていた。パーサーとアロケータの設計を読み解き、DR/CRを独立配賦する修正に広げた。",[15,44,45],{},[46,47,48],"strong",{},"主な成果:",[50,51,52,56,59,62,65],"ul",{},[53,54,55],"li",{},"Q3-3の期首残高補正・未払金の増減調整の復活",[53,57,58],{},"現金科目側のCSラベルを除外（「その他の営業支出」列の誤生成を抑制）",[53,60,61],{},"Q3-4の貸倒引当金を売上債権/貸付債権で分離（MFマスタ準拠）",[53,63,64],{},"貸倒損失の長期貸付金K列調整（会計基準に基づく配賦）",[53,66,67],{},"全37Q網羅でCodexレビューを取り込みながら修正",[15,69,70,73,74],{},[46,71,72],{},"詳細:"," ",[75,76,78],"a",{"href":77},"/cfws-q3-all-sheets-fix","CFWS全37Q網羅修正 - 引当金と貸倒損失の調整ロジック再設計",[80,81],"hr",{},[36,83,85],{"id":84},"_2-cfwsマトリックスベース生成への改修計画を策定","2. CFWSマトリックスベース生成への改修計画を策定",[15,87,88],{},"午後からは勘定科目マスタをJSON化し、年次推移表のSUMIFS内のハードコードをセル参照に置換する改修計画に取りかかった。仕様書をCodexに3ラウンドかけてもらって煮詰めた。実装まで進めたが、結果は8 OK / 25 NG / 2 SKIPで次セッション引き継ぎ。",[15,90,91],{},[46,92,48],{},[50,94,95,98,106,109,112],{},[53,96,97],{},"「サム単体」シートから論点×勘定科目のマトリックスJSON出力",[53,99,100,101,105],{},"年次推移表の ",[102,103,104],"code",{},"MATCH(\"貸倒損失\", ...)"," ハードコードをセル参照化",[53,107,108],{},"Q3-4手修正版（_KK.xlsx）と完全一致するK列配賦（-1000+700+300=0）",[53,110,111],{},"Turso DBから書籍解説を取得して引き継ぎ計画書を自動生成",[53,113,114],{},"明日の朝6時タスクとしてタスクサービスに登録",[15,116,117,73,119],{},[46,118,72],{},[75,120,122],{"href":121},"/cfws-matrix-based-refactor-plan","CFWSマトリックスベース生成への改修計画 - 勘定科目JSONとSUMIFSセル参照化",[80,124],{},[36,126,128],{"id":127},"_3-claude-codeスキルの公式ディレクトリ構造への全面移行","3. Claude Codeスキルの公式ディレクトリ構造への全面移行",[15,130,131,132,135,136,139,140,143,144,147,148,151],{},"朝のCFWS作業でスキル化した ",[102,133,134],{},"split-qa-to-cfws"," と ",[102,137,138],{},"cfws-excel-to-html"," がスキル一覧に出てこない。原因を追うと、トップレベルの ",[102,141,142],{},"{name}.md"," 形式ではAnthropic公式の自動トリガーに乗らないと判明。全10スキルを ",[102,145,146],{},".claude/skills/{name}/SKILL.md"," 形式に移行したら、system-reminderのスキル一覧がライブ更新で全件認識された。",[102,149,150],{},"skill-creator"," スキルを参照せずに自己流で作った反省も含めて記録。",[15,153,154],{},[46,155,48],{},[50,157,158,161,164],{},[53,159,160],{},"全スキルを公式ディレクトリ構造に移行",[53,162,163],{},"ライブ検出で全スキルが自動トリガー可能に",[53,165,166,167,170],{},"「次回のスキル作成は必ず ",[102,168,169],{},"/skill-creator"," を呼ぶ」を運用ルール化",[15,172,173,73,175],{},[46,174,72],{},[75,176,178],{"href":177},"/claude-code-skill-directory-structure","Claude Codeスキルの公式ディレクトリ構造への全面移行",[80,180],{},[36,182,184],{"id":183},"_4-twitter動画のgemini用400mb分割スクリプト作成","4. Twitter動画のGemini用400MB分割スクリプト作成",[15,186,187,188,191],{},"朝イチでChrome拡張関連の小ネタ。Twitterから落とした英語動画（890MB）をGemini/AI Studioに食わせて字幕を作る運用だが、400MB制限で弾かれる。bat+PowerShellランチャー方式でドラッグ＆ドロップ対応にしつつ、BOM・ffprobe不在・",[102,189,190],{},"MB","数値サフィックスの罠を順番に踏み抜いて完成。",[15,193,194],{},[46,195,48],{},[50,197,198,201,204],{},[53,199,200],{},"890MB動画を3パート400MB以下で分割成功",[53,202,203],{},"batは英語ランチャーのみ、日本語ロジックはPowerShellに分離",[53,205,206],{},"ffprobeなしでffmpeg標準エラー出力からduration取得",[15,208,209,73,211],{},[46,210,72],{},[75,212,214],{"href":213},"/twitter-video-split-for-gemini","Twitter動画のGemini用400MB分割スクリプト - bat＋PowerShellランチャー方式",[80,216],{},[22,218,219],{"id":219},"今日の試行錯誤",[221,222,223,245],"table",{},[224,225,226],"thead",{},[227,228,229,233,236,239,242],"tr",{},[230,231,232],"th",{},"#",[230,234,235],{},"テーマ",[230,237,238],{},"試したこと",[230,240,241],{},"結果",[230,243,244],{},"気づき",[246,247,248,269,286,306,323,340,357,374,397,417,441,461],"tbody",{},[227,249,250,254,257,263,266],{},[251,252,253],"td",{},"1",[251,255,256],{},"Q3-3 期首残高欠落",[251,258,259,262],{},[102,260,261],{},"include_opening=True"," の呼び出し確認",[251,264,265],{},"設定は正しい",[251,267,268],{},"原因は呼び出し側ではなくパース段階のデータ構造差異",[227,270,271,274,277,280,283],{},[251,272,273],{},"2",[251,275,276],{},"Q3-3 列構造の違い",[251,278,279],{},"N/O列の中身を出力して他Qと比較",[251,281,282],{},"N=開始残高, O=空（他Qと逆）",[251,284,285],{},"パーサーで補正ロジックを追加",[227,287,288,291,294,300,303],{},[251,289,290],{},"3",[251,292,293],{},"Q3-3 未払金調整欠落",[251,295,296,299],{},[102,297,298],{},"_entry_cf_label"," の返り値を追跡",[251,301,302],{},"1仕訳=1ラベルの設計",[251,304,305],{},"DR/CR独立配賦に作り変える",[227,307,308,311,314,317,320],{},[251,309,310],{},"4",[251,312,313],{},"「その他の営業支出」の誤出",[251,315,316],{},"仕訳のCS科目を行単位で精査",[251,318,319],{},"現金科目側のCSラベルを拾っていた",[251,321,322],{},"現金科目由来ラベルを除外する判定を追加",[227,324,325,328,331,334,337],{},[251,326,327],{},"5",[251,329,330],{},"Q3-4 貸倒引当金分離",[251,332,333],{},"MFマスタ確認",[251,335,336],{},"売上債権/貸付債権は独立登録済み",[251,338,339],{},"分けるのが正しい、統合は誤り",[227,341,342,345,348,351,354],{},[251,343,344],{},"6",[251,346,347],{},"貸倒損失のK列配賦",[251,349,350],{},"手修正版_KK.xlsxとの差分確認",[251,352,353],{},"長期貸付金 -1000 + 貸倒引当金_貸付債権 +700 + PL貸倒損失 +300 = 0",[251,355,356],{},"会計基準通り貸付金は営業CFで個別調整",[227,358,359,362,365,368,371],{},[251,360,361],{},"7",[251,363,364],{},"スキル認識されない",[251,366,367],{},"frontmatter追加で再トライ",[251,369,370],{},"変化なし",[251,372,373],{},"ファイル形式の問題ではなかった",[227,375,376,379,382,385,391],{},[251,377,378],{},"8",[251,380,381],{},"スキル認識されない（続）",[251,383,384],{},"公式ドキュメントを直接確認",[251,386,387,390],{},[102,388,389],{},"{name}/SKILL.md"," 形式が必須",[251,392,393,394,396],{},"最初から ",[102,395,169],{}," を呼べばよかった",[227,398,399,402,405,408,414],{},[251,400,401],{},"9",[251,403,404],{},"bat文字化け",[251,406,407],{},"chcp 65001で回避試行",[251,409,410,413],{},[102,411,412],{},"for /f"," と日本語パスで破綻",[251,415,416],{},"batはランチャーに徹してPowerShellに移譲",[227,418,419,422,425,435,438],{},[251,420,421],{},"10",[251,423,424],{},"PowerShellでMB誤認識",[251,426,427,428,431,432,434],{},"フォーマット文字列 ",[102,429,430],{},"{1} MB"," の ",[102,433,190],{}," が数値サフィックス扱い",[251,436,437],{},"変数展開方式に変更で回避",[251,439,440],{},"5分悩んだ",[227,442,443,446,449,452,455],{},[251,444,445],{},"11",[251,447,448],{},"ffprobe不在",[251,450,451],{},"PATH確認 → 存在しない",[251,453,454],{},"ffmpeg単独で代替",[251,456,457,460],{},[102,458,459],{},"ffmpeg -i"," の標準エラー出力からdurationを正規表現で抽出",[227,462,463,466,469,472,475],{},[251,464,465],{},"12",[251,467,468],{},"マトリックス実装NG多発",[251,470,471],{},"filter補完を強化",[251,473,474],{},"それでも8 OK / 25 NGのまま",[251,476,477],{},"ソースExcelのCFラベル未設定等、データ起因のNGが多い",[80,479],{},[22,481,482],{"id":482},"今日の学び",[50,484,485,488,491,494,503,506],{},[53,486,487],{},"CFWSの調整ラベルは「1仕訳=1ラベル」では足りず、DR/CR両側を独立に配賦する必要がある論点が多数ある",[53,489,490],{},"現金科目に付いたCSラベルは「サフィックス目的」であり、調整列の生成には使うべきではない",[53,492,493],{},"MFの勘定科目マスタは意外と細かく分かれているので、自分で統合せずマスタに合わせる方が正しい場合が多い",[53,495,496,497,499,500,502],{},"Claude Codeのスキルは ",[102,498,146],{}," が公式形式。自己流で作る前に ",[102,501,169],{}," を呼ぶ",[53,504,505],{},"Codexレビュー（gpt-5.4）を計画段階で2〜3ラウンド回すと、実装中の手戻りがほぼゼロになる",[53,507,508],{},"Windows×日本語パスでのシェルスクリプトは、batはランチャー、実ロジックはPowerShell（BOM付きUTF-8）に分離するのが安定",[80,510],{},[22,512,513],{"id":513},"明日やること",[50,515,518,528,534,543],{"className":516},[517],"contains-task-list",[53,519,522,527],{"className":520},[521],"task-list-item",[523,524],"input",{"disabled":525,"type":526},true,"checkbox"," CFWSマトリックスベース生成のNG 25件を解消（次セッション朝6時タスク起動）",[53,529,531,533],{"className":530},[521],[523,532],{"disabled":525,"type":526}," Q5系の残りNG論点をTurso書籍解説と突き合わせて分類",[53,535,537,539,540,542],{"className":536},[521],[523,538],{"disabled":525,"type":526}," スキル作成フローを ",[102,541,169],{}," 必須に運用ルール化",[53,544,546,548],{"className":545},[521],[523,547],{"disabled":525,"type":526}," 動画分割スクリプトの4パート目（極小残滓）自動削除オプション検討",[80,550],{},[22,552,553],{"id":553},"関連記事",[50,555,556,560,564,568,572],{},[53,557,558],{},[75,559,78],{"href":77},[53,561,562],{},[75,563,122],{"href":121},[53,565,566],{},[75,567,178],{"href":177},[53,569,570],{},[75,571,214],{"href":213},[53,573,574],{},[75,575,577],{"href":576},"/business-decision-logic-tree","集中一点突破の4段階フロー - 道に迷ったら戻ってくる図",{"title":579,"searchDepth":580,"depth":580,"links":581},"",2,[582,583,590,591,592,593],{"id":24,"depth":580,"text":24},{"id":34,"depth":580,"text":34,"children":584},[585,587,588,589],{"id":38,"depth":586,"text":39},3,{"id":84,"depth":586,"text":85},{"id":127,"depth":586,"text":128},{"id":183,"depth":586,"text":184},{"id":219,"depth":580,"text":219},{"id":482,"depth":580,"text":482},{"id":513,"depth":580,"text":513},{"id":553,"depth":580,"text":553},"diary","eurekapu-nuxt4のキャッシュフローワークシートをQ3-3/Q3-4を皮切りに全37Q網羅で修正。Claude Codeスキルを公式ディレクトリ構造に全面移行。Twitter動画のGemini用分割スクリプトも作成。","md",{},"/2026-04-16-diary","daily-log",false,"2026-04-16T00:00:00.000Z",{"title":5,"description":595},"2026-04/2026-04-16/diary-2026-04-16",[605,606,607,608,609,610],"日記","eurekapu","キャッシュフロー計算書","Claude Code","スキル","PowerShell",null,"jPKskAfgC8M4yjdNxbubZDc-8HxE_XslVgpnzBzXPYY",[],"https://log.eurekapu.com/favicon.svg",1776929992581]