2026年5月3日の開発日記
朝6時51分にExcelの仕訳DB設計を投げ込んだら、夜までで79論点がVueページとして動くところまで連れていけた。会計の参考書1冊分を、Excel→TypeScript→Vueの三段パイプラインに乗せた1日。
途中で決算振替の専用コンポーネントを切り出したり、貸借不一致のバグを画面で拾ったり、ブランチを跨いでmemoが消えたと焦ったりしながら、最終的にPR #16もマージ完走した。
今日のタイムライン

今日やったこと
1. 書籍100ケースのExcel→TypeScriptパイプライン構築
会計の参考書(ケース100)をWebコンテンツ化する前段。Excel仕訳DBで論点を持ち、Pythonで集計、TypeScript静的データに変換してVueに供給する三段パイプラインを朝から組んだ。1日で4論点→18論点→55論点→79論点まで段階拡張した。
主な成果:
- 書籍3層構成(基本ケース9件+通常ケース100件+コラム6件)に対応する整数ID体系
- 共通期首仕訳は論点ごとに複製する方針(正規化より集計の単純さを優先)
- Codex(GPT-5.5)で計画書3ラウンド・引き継ぎメモ別ラウンドのレビュー
- verify_xlsx で
BS check=0とPL↔BS整合を全論点・全FYで通過
詳細: 会計の参考書100ケースをExcel→TypeScriptで一気にパイプライン化した話
2. 簿記3級ノートの財務影響モード改善
HTMLドラフトとVue版 JournalExample.vue の両方に、会計慣習の ▲ 表記、12月決算化、貸借不一致バグ修正を反映した。equity例題で残高試算表の右側合計に違和感を拾い、純粋関数 buildTbViewModel を切り出してテスト先行で修正。
主な成果:
- マイナス表示を
-から▲に統一(fmt関数・CSS・差額ポップアップ・吸い込みpill全部) - 全エントリーの決算日を3月終わり→12月終わりに変更
- 計算値(売上総利益・経常利益)の背景ハイライト抑止
- 例題の金額単位を「○○万円」→「円単位」に変換(17論点をサブエージェント並列で)
- 残高試算表の
re二重カウントバグをテスト先行で修正
詳細: 簿記3級ノートに財務影響モードを実装。▲表記・12月決算化・貸借一致バグ修正まで一気に
3. 決算振替仕訳の専用Vueコンポーネント実装
equity例題Cの「決算振替仕訳」が既存 JournalExample で表現できないため、ClosingTransferExample.vue を新規作成。計画書をCodex 2ラウンドレビューで承認まで持ち込んでから実装した。
主な成果:
- 連鎖取消・再構築方式(c5取消でc6・c7も自動取消)
- T勘定をBS(資産→負債→純資産)/PL(収益→費用)の2段構成
- タブナンバリング
1 2 3 4 |決算整理| 5 6 7 - T勘定・仕訳帳の高さを最終行数で事前確保(レイアウトシフト0px)
- pill飛行アニメ(zoom倍率を
getBoundingClientRectで逆算) - 整合性保証テスト17件追加
詳細: 簿記3級の決算振替仕訳に専用Vueコンポーネントを切り出した話
4. case100 79論点をVueページに一括移植
夕方からのフェーズ3。Excel→TypeScript パイプラインで生成済みの中間JSON 79論点を、Vueページとして一括出力する ts_to_vue.ts を作成。case100のインデックスから全論点へ遷移できる状態を作った。
主な成果:
- 79論点エラーゼロで一括生成、CHAPTERS インデックス自動構築
- インデックスページを章カテゴリ別グルーピング
- PCワイド画面で仕訳カード縦並び、狭い画面ではタブ形式(
isWide判定) - 仕訳帳開閉で左カラム(取引・仕訳候補)が動かないようResizeObserver
- 当期 entries= でクラッシュする
JournalExample.vueをnull-safe修正
詳細: case100 書籍79論点をVueページに一括移植。レスポンシブと仕訳帳UIを一緒に整える
5. PR #16 マージ周りのGitワークフロー
朝のcase100作業中、メインブランチで作業しているつもりが実は fix/e2e-stabilize-wait にいた。メインに戻ったら memo が消えたように見えて背筋が冷えたが、git status で原因が割れた。Claude Codeにstash→ブランチ切替→マージ→push→PR作成→マージ→stash復元のワークフローを順次実行させて整理。
主な成果:
git stash -uで main の未コミット変更(untracked含む)を退避- fix/e2e-stabilize-wait に main を取り込んでpush
- PR #16 を
gh pr createで作成、CI緑確認後にSquash & Merge - stash復元の差分消失(no-op)はPR #16のコミットに含まれていた証拠
詳細: ブランチ跨ぎでmemoが消えたと焦った話。stash→branch切替→マージ→PR作成までを順次実行
今日の試行錯誤
| # | テーマ | 試したこと | 結果 | 気づき |
|---|---|---|---|---|
| 1 | PowerShell UTF-8 BOM | Out-File出力 | 日本語が崩れた | tsx側で fs.writeFileSync に切り替え |
| 2 | run.ps1の $root | 1階層浅いまま実行 | パス解決で失敗 | スクリプト位置基準で再計算 |
| 3 | 仕訳帳の空状態メッセージ | 「最小5行確保」で実装 | ユーザーから的外れと差し戻し | colspan セルにメッセージ挿入の方針へ |
| 4 | 例題7行入力時のレイアウト | 普通のgrid | 破綻 | grid-template-rows: minmax(0, 1fr) で内部スクロール可能に |
| 5 | 残高試算表の貸借不一致 | テスト先行で再現→修正 | 1テスト失敗→pass、UIも整合 | UI側で re を reOpen+reNi で二重カウントしていた |
| 6 | 例題金額の万円→円単位 | サブエージェント17論点並列 | 一気に変換完了 | 共通変換ルール+並列実行が効く |
| 7 | ClosingTransferの仕訳カード配置 | 縦1列で実装 | タブ集約に差し戻し | モーダル時のみ縦並び、通常時はタブ |
| 8 | pill飛行の3コミ目以降のズレ | スクロール量補正 | まだズレ残る | zoom倍率を getBoundingClientRect で逆算して安定 |
| 9 | T勘定の残高6,000表示バグ | 計算は正しいが表示が不整合 | 期首残高(前期繰越)の行が出ていなかった | 表示側のバグ。テストで保証 |
| 10 | Codex指摘 STEP3 1.3秒誤表示 | appliedIds で同期化 | 誤表示消滅 | pendingPostIds と表示用IDを分離 |
| 11 | topic-1007 Vue化で500エラー | 当期entries=でクラッシュ | null-safe修正で復旧 | コンポーネント側を根本対応 |
| 12 | タブ・仕訳帳トグルが効かない | クリック動作追跡 | 内部では正常動作 | ハイドレーションmismatchが原因。初期値を狭い画面前提に |
| 13 | 仕訳帳開閉で左カラムが動く | align-items: stretch | 動いてしまう | ResizeObserverでBS/PL高さをCSS変数で渡す |
| 14 | ブランチ跨ぎでmemo消失に見える | git status で確認 | 全てmainに入っていた | PR #16マージ直後のキャッシュ問題 |
| 15 | Codexサンドボックスエラー | bypassフラグで再試行 | 読み取り成功 | Windowsでは標準入力経由が確実 |
今日の学び
- 画面で違和感を拾う力がバグを救う: 残高6,000の表示バグも、貸借不一致のバグも、まず画面を見て「合計が変だ」と気付かないと事故っていた
- テスト先行で再現してから修正: 貸借不一致バグも、Codex指摘バグも、純粋関数として切り出してテストで失敗を確認してから修正すると、修正後の確認が一瞬で終わる
- 既存コンポーネントを変に拡張せず、別物として切り出す判断: 決算振替は明らかに別物だったので、JournalExample を拡張せず別コンポーネントにして正解だった
- サブエージェント並列が効くタスクの形: 「同じ変換ルールで複数ファイル」のような独立並列タスクはサブエージェント分担が結果的に早い(17論点を1時間で完了)
- Codexレビューは「致命的な点だけ」で運用すると本質指摘が残る: 瑣末な点へのクソリプを切り捨てる指示で、計画書3ラウンド・引き継ぎ別ラウンドが回った
- ブランチを跨いで作業するときは
git branchで居場所を確認する: 「ファイルが消えた」と錯覚するのはたいてい別ブランチに迷い込んだサイン
明日やること
- case100 Session 13(連結会計)の Excel 設計 — 株主資本等変動計算書の仕訳をユーザー手作業で具体化してから着手
- case100 79論点ページにキーメッセージ・解説を追加(フェーズ3の続き)
- equity 以外の例題(17論点)にもClosingTransferパターンを展開するかは要検討
- ページネーションをcase100ページの下部に追加(簿記3級ノートと同様のUI)
-
_journal-example.{js,css}のHookタイムアウト8件のテストを ▲仕様に追従させる