• #日記
  • #case100
  • #Vue
  • #Excel
  • #TypeScript
  • #簿記3級
daily-log

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=0PL↔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作成までを順次実行


今日の試行錯誤

#テーマ試したこと結果気づき
1PowerShell UTF-8 BOMOut-File出力日本語が崩れたtsx側で fs.writeFileSync に切り替え
2run.ps1の $root1階層浅いまま実行パス解決で失敗スクリプト位置基準で再計算
3仕訳帳の空状態メッセージ「最小5行確保」で実装ユーザーから的外れと差し戻しcolspan セルにメッセージ挿入の方針へ
4例題7行入力時のレイアウト普通のgrid破綻grid-template-rows: minmax(0, 1fr) で内部スクロール可能に
5残高試算表の貸借不一致テスト先行で再現→修正1テスト失敗→pass、UIも整合UI側で rereOpen+reNi で二重カウントしていた
6例題金額の万円→円単位サブエージェント17論点並列一気に変換完了共通変換ルール+並列実行が効く
7ClosingTransferの仕訳カード配置縦1列で実装タブ集約に差し戻しモーダル時のみ縦並び、通常時はタブ
8pill飛行の3コミ目以降のズレスクロール量補正まだズレ残るzoom倍率を getBoundingClientRect で逆算して安定
9T勘定の残高6,000表示バグ計算は正しいが表示が不整合期首残高(前期繰越)の行が出ていなかった表示側のバグ。テストで保証
10Codex指摘 STEP3 1.3秒誤表示appliedIds で同期化誤表示消滅pendingPostIds と表示用IDを分離
11topic-1007 Vue化で500エラー当期entries=でクラッシュnull-safe修正で復旧コンポーネント側を根本対応
12タブ・仕訳帳トグルが効かないクリック動作追跡内部では正常動作ハイドレーションmismatchが原因。初期値を狭い画面前提に
13仕訳帳開閉で左カラムが動くalign-items: stretch動いてしまうResizeObserverでBS/PL高さをCSS変数で渡す
14ブランチ跨ぎでmemo消失に見えるgit status で確認全てmainに入っていたPR #16マージ直後のキャッシュ問題
15Codexサンドボックスエラー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件のテストを ▲仕様に追従させる

関連記事