daily-log
2026年4月2日の開発日記
CF精算表の自動生成パイプラインを口頭メモからワークシート出力まで一本で繋いだ日。朝は会計ソフトAの繰越自動化で無限ループを踏み、午後はCF精算表の中間テーブルやスキル設計に没頭した。
今日やったこと
1. Chrome拡張:会計ソフトA次年度繰越一括自動化
会計ソフトAの「次年度繰り越し」を複数年度分まとめて実行する機能をChrome拡張に実装した。
主な成果:
- Chrome DevTools MCPで繰越フォームの構造とAPIを特定
- Codexレビュー3回を経て計画を精緻化(CTI/TID整合性、成否判定、安全弁)
- bridge.js → import.js → content.js の3ファイルで実装完了
- 致命的バグ: 会計ソフトAは最新年度でも繰越フォームを表示するため、noFormチェックで無限ループ→2033年度まで作成してしまった
- 修正:
endYear >= 現在年(2026)の終了条件に変更 - UIを3回改善(独立セクション→カード内→ヘッダー行のオレンジボタン)
詳細: Chrome拡張で会計ソフトの次年度繰越を一括自動化した話
2. CF精算表ワークフロー構築
口頭/参考書→取引モジュール→会計ソフトA仕訳→年次推移表→CF精算表のパイプラインを一気通貫で構築した。
主な成果:
- CF精算表の複数年度一括生成(年次推移表1シート化、中間テーブル転置、調整列SUMIFS化)
- 貸付金ライフサイクルモジュール新規作成(借入金パターンの反転)
- 資本政策(Cap Table)モジュール新規作成
- スキル・コマンドの整理(cf-lifecycle-journal、/cf-multi-year-worksheet)
- IBフォーマットを全スキルの最終ステップとして必須化
- 全ステップでSS+Excel両方出力の方針確定
- 命名規則策定:
CF_精算表_{ライフサイクル名}
詳細: CF精算表ワークフロー構築
3. MF仕訳→年次推移表の自動生成
会計ソフトAの仕訳データからBS+PLの年次推移表を自動生成するスクリプトを開発し、Excel版とGoogle Sheets版のデュアル出力に対応した。
主な成果:
- gen_annual_table_core.py として共通モジュール切り出し(Excel版とSS版で共有)
- 勘定科目マスターJSON化(223件)
- 返済予定表の合計行バグ修正(Row 19の初回返済が合計に含まれていなかった)
- チェック行・入力仕訳シート同梱・全年度出力(2022〜2028)対応
/gen-annual-tableコマンド更新(SS版を推奨に)
今日の試行錯誤
| # | テーマ | 試したこと | 結果 | 気づき |
|---|---|---|---|---|
| 1 | 繰越終了条件 | noForm(フォームなし)で判定 | 無限ループ | 会計ソフトAは最新年度でも常にフォーム表示 |
| 2 | UIボタン配置 | 設定タブ下部に独立セクション | 場所が離れすぎ | 事業者カード内に動的配置が自然 |
| 3 | 中間テーブル | 横持ち(行=CF項目) | INDEX/MATCHが煩雑 | 縦持ちに転置してSUMIFSで一発 |
| 4 | 集計関数 | SUMPRODUCT | 再計算が遅い | SUMIFS + YEAR関数でシンプル化 |
| 5 | 合計列設計 | INDEX/MATCH混在 | メンテ困難 | 合計列=SUMのみルールに統一 |
| 6 | 年次推移表コピー | シートごとcopyTo | #REF!エラー | セル内容上書き方式が安全 |
| 7 | 返済予定表合計 | =SUM(E20:E501) | Row19漏れ | 範囲始点の確認を怠った初歩的ミス |
| 8 | スキル分離 | 汎用ルール切り出し | 見送り | 中身が薄いうちは分けない判断 |
今日の学び
- 会計ソフトのUI前提(「フォームが消えたら完了」)を盲信すると無限ループを踏む。外部の事実(現在年度)で終了判定する方が堅牢
- 「合計列=SUMのみ、調整列に関数」のルールがCF精算表の数式設計を見通しよくする
- Google Sheetsのシート参照はsheetIdに紐づくため、シート削除→リネームで全参照が壊れる
- IBフォーマットを仕組みとして最終ステップに組み込むと、書式の統一を忘れない
- gen_annual_table_core.pyの切り出しで、Excel版とSS版のロジック乖離を防げた