• #日記
  • #CF精算表
  • #Excel自動生成
  • #Codex
  • #Search Console
  • #リダイレクト
daily-log

2026年4月14日の開発日記

朝6時からCF精算表のデバッグに取りかかり、10セッションを費やして固定資産応用と株主資本応用のパイプラインを通した。SUMIFSの数式が合わない原因を一つずつ剥がしていくと、符号規則の二重実装という根の深い問題が顔を出した。夕方にはSearch Consoleの404リダイレクト修正も片付けた。

今日のタイムライン

タイムライン

今日やったこと

1. CF精算表 固定資産応用(CF_202)のデバッグ

前日の積み残しだったCFWS中間テーブルのSUMIFS不一致に取り組んだ。イベント名の完全一致が複合イベント(減価償却+売却等)を拾えない問題をイベント分離で解決。さらに手付金がSUMIFSで資産取得支出に混入する問題、残存年数計算バグ、建設仮勘定の符号二重反転も修正した。verify_checksを厳格化したら18件の不一致が噴き出し、row_defsとcomputed_valuesの二重実装問題が露呈。圧縮積立金のCFWS配分が根本的に壊れていることが判明し、ユーザーの一言「アンダースコア区切りの科目名を仕訳側で直接使え」で解決方針が決まった。

主な成果:

  • SUMIFS不一致の根本原因特定と修正
  • characterization test作成(COM評価値をgoldenデータとしてJSON保存、6テスト全パス)
  • verify_cfws_excel.pyにサマリーCFWS検証を追加
  • 圧縮積立金問題の解決計画をCodexレビュー3回で策定

詳細: CF精算表Excel自動生成のデバッグ記録


2. CF精算表 株主資本応用(CF_205)の実装

計画策定からStep a→b→cパイプライン構築まで一気に進めた。配当金支払額の逆算ロジック、利益準備金のCFWS配分、繰越利益剰余金hidden行の追加が核心。運転資本取引を組み込んで当期純利益を出すことで配当に根拠を持たせた。サマリーCFWSの営業CF集計範囲バグ(SUM(C8:C8)SUM(C7:C8))も修正。

主な成果:

  • CF_205のStep a/b/c全パイプライン完走(check=0 全5年度OK)
  • 運転資本+税金を統合して現実的なP/Lを生成
  • サマリーCFWS修正、IBフォーマット(GL1-GL8グレーグラデーション)適用

詳細: CF精算表Excel自動生成のデバッグ記録


3. Codex(GPT-5.4)レビュー駆動の計画策定

CF_205は5回、CF_202リファクタリングは4回、CFドキュメント統合は2回、圧縮積立金計画は3回のレビューサイクルを回した。致命的指摘を段階的にゼロに収束させる手法が定着した。contra-equity符号問題、v13フォーマット移管漏れ、registry化の提案など、人間が見落としがちな設計ミスをCodexが拾ってくれた。

主な成果:

  • 4つの計画書すべてでCodex致命的指摘ゼロを達成
  • CFドキュメント統合を実行完了(-504行/+403行、5ファイル→3ファイル)
  • 3600行スクリプトのリファクタリング計画v5確定

詳細: Codex(GPT-5.4)レビュー駆動の計画策定


4. Search Console 404リダイレクト一括修正

3月末に設定したリダイレクトの効果を2週間ぶりに確認。Chrome DevTools MCPでSearch Consoleを開き、404が329件あることを発見。CSVを全件分析し、generate-redirects.mjsのslugベースpathをdate-prefix付きに修正、トレイリングスラッシュ対応を追加。Cloudflare Pagesの_redirects上限2,000ルール制限に引っかかったが、優先ルールを先頭に配置して解決。329件中248件(75%)をカバーした。

主な成果:

  • 329件の404 URLを5パターンに分類
  • リダイレクトルール生成スクリプトを3回修正
  • 2,000ルール制限を優先度ソートで回避
  • デプロイ後に301リダイレクト確認済み

詳細: Search Console 404リダイレクト修正


今日の試行錯誤

#テーマ試したこと結果気づき
1SUMIFS不一致イベント名の完全一致で複合イベントを拾う失敗"売却""減価償却+売却"に一致しない
2SUMIFS不一致複合イベントを個別行に分離成功SUMIFSフレンドリーな粒度にデータを正規化
3手付金混入SUMIFSの勘定科目フィルタ失敗手付金もB列=機械装置Bなのでフィルタに引っかかる
4手付金混入イベント名で手付金を除外するSUMIFS条件追加成功"<>手付金"の追加条件
5符号問題row_defsの*-1を個別修正部分的7箇所修正したがcomputed_valuesとの乖離が残る
6verify厳格化alloc=hをcomputed_valuesベースに変更18件NG発覚二重実装の根本問題が露呈
7圧縮積立金SKIP_NAMESでBS行から除外失敗D/F列の年次推移表参照SUMIFSが拾い続ける
8圧縮積立金勘定科目名を繰越利益剰余金_圧縮積立金に変更成功仕訳側で勘定科目として使えばSUMIFSが自然に解決
9_redirects上限4,309ルールを全出力失敗Cloudflare Pagesは2,000ルールまで
10_redirects上限優先ルールを先頭に配置成功404 CSVのURLを優先枠に入れて2,000行以内に

今日の学び

  • SUMIFSで集計するデータは、集計単位(イベント名等)を正規化しておかないと複合条件でハマる
  • row_defs(Excel数式)とcomputed_values(Python検証)の二重実装は技術的負債。単一ソース化が急務
  • Codexレビューは「致命的な点だけ指摘しろ」の縛りで的確な指摘が返る。5回サイクルで収束するパターンが見えた
  • Cloudflare Pagesの_redirectsは2,000ルール上限。超過分は黙って無視される
  • 勘定科目設計は仕訳側で決めるのが正道。Python側の逆算で補うと別の場所が壊れる

明日やること

  • CF_202 圧縮積立金CFWS配分:Codexレビュー済み計画に沿って実装
  • CF_202 建物除却の中間テーブル修正(2026年度の±2,090,000)
  • CF_205 株主資本応用の追加要望(引き継ぎ資料 memo/2026-04-14/cf205-session-handoff-2.md)
  • CF_202 リファクタリング実装開始(テストファーストで)

関連記事