• #日記
  • #tax-assistant
  • #Vue.js
  • #リファクタリング
  • #composable
  • #仕訳
daily-log

2026年1月21日の開発日記

今日はtax-assistantのURLクエリパラメータ管理をuseTabQuerySync composableに共通化し、Alt+矢印キーでブラウザバックが効かない問題を修正した。また、クレカ明細への自動仕訳ルールマッチング機能の設計をCodexレビューで固めた。

今日やったこと

1. タブURL同期のリファクタリング

各タブで重複していたURLクエリパラメータ管理をuseTabQuerySync composableに共通化。併せて、Alt+矢印キーでブラウザバックが効かない問題も修正した。

主な成果:

  • useTabQuerySync.ts composableの作成
  • 7つのタブコンポーネントへの適用
  • Alt+矢印キーのブラウザバック対応
  • タブ間遷移時の履歴管理問題の修正
  • クレカ明細 → 帳票 → 戻るで正しく戻れるように

詳細: Vue.js タブURL同期のリファクタリングとブラウザバック問題の修正


2. 仕訳ルールマッチング機能の設計

クレカ明細に対してマネーフォワードの仕訳ルールを自動適用し、勘定科目を提案する機能の設計。Codexレビューを繰り返して設計を固めた。

主な成果:

  • マッチタイプの整理(完全一致/部分一致/レーベンシュタイン/類似度)
  • DBスキーマ設計(matched_rules JSON、selected_rule_hash
  • check_statusの拡張(rule_matched, rule_confirmed追加)
  • ルール確定フローの設計
  • ReDoS対策・CSV改変検出の考慮

詳細: クレカ明細への自動仕訳ルールマッチング機能の設計


3. 要件書の整備

requirements.mdと実際の実装の齟齬を確認し、スラッシュコマンドの命名規則やDB設計方針を整理した。

主な成果:

  • スラッシュコマンドの命名規則を「プレフィックスでグルーピング」に統一
  • /import-csvを具体化(/import-square, /import-creditcardに分離)
  • DB名変更の議論(receipts.dbsource.db検討、本番移行時に対応)
  • 仕訳データを会計ソフトと同期しない方針を文書化

4. その他の改善

  • アプリ名を「OCR Checker」から「Tax Assistant」に変更
  • 仕訳ルールの前へ/次へボタンを循環(ループ)動作に修正
  • マッチタイプシミュレーターHTMLを作成(テスト用)
  • タブ間のマージン調整

今日の学び

  • composableとcomponentの違い: composableは「ロジック(状態+関数)」を再利用、componentは「UIとロジックのセット」を再利用
  • Vue Routerのpushとreplaceの使い分け: タブ切り替えはpush(戻れるように)、フィルタ変更はreplace(履歴を積まない)
  • Codexレビューの活用: 設計の穴を繰り返しレビューで潰すことで、実装前に問題を発見できる

明日やること

  • 仕訳ルールマッチング機能の実装開始
  • /import-shiwake-rulesスラッシュコマンドの実装
  • マネーフォワード仕訳出力機能の設計

関連記事