daily-log
2026年1月21日の開発日記
今日はtax-assistantのURLクエリパラメータ管理をuseTabQuerySync composableに共通化し、Alt+矢印キーでブラウザバックが効かない問題を修正した。また、クレカ明細への自動仕訳ルールマッチング機能の設計をCodexレビューで固めた。
今日やったこと
1. タブURL同期のリファクタリング
各タブで重複していたURLクエリパラメータ管理をuseTabQuerySync composableに共通化。併せて、Alt+矢印キーでブラウザバックが効かない問題も修正した。
主な成果:
useTabQuerySync.tscomposableの作成- 7つのタブコンポーネントへの適用
- Alt+矢印キーのブラウザバック対応
- タブ間遷移時の履歴管理問題の修正
- クレカ明細 → 帳票 → 戻るで正しく戻れるように
詳細: Vue.js タブURL同期のリファクタリングとブラウザバック問題の修正
2. 仕訳ルールマッチング機能の設計
クレカ明細に対してマネーフォワードの仕訳ルールを自動適用し、勘定科目を提案する機能の設計。Codexレビューを繰り返して設計を固めた。
主な成果:
- マッチタイプの整理(完全一致/部分一致/レーベンシュタイン/類似度)
- DBスキーマ設計(
matched_rulesJSON、selected_rule_hash) check_statusの拡張(rule_matched,rule_confirmed追加)- ルール確定フローの設計
- ReDoS対策・CSV改変検出の考慮
3. 要件書の整備
requirements.mdと実際の実装の齟齬を確認し、スラッシュコマンドの命名規則やDB設計方針を整理した。
主な成果:
- スラッシュコマンドの命名規則を「プレフィックスでグルーピング」に統一
/import-csvを具体化(/import-square,/import-creditcardに分離)- DB名変更の議論(
receipts.db→source.db検討、本番移行時に対応) - 仕訳データを会計ソフトと同期しない方針を文書化
4. その他の改善
- アプリ名を「OCR Checker」から「Tax Assistant」に変更
- 仕訳ルールの前へ/次へボタンを循環(ループ)動作に修正
- マッチタイプシミュレーターHTMLを作成(テスト用)
- タブ間のマージン調整
今日の学び
- composableとcomponentの違い: composableは「ロジック(状態+関数)」を再利用、componentは「UIとロジックのセット」を再利用
- Vue Routerのpushとreplaceの使い分け: タブ切り替えはpush(戻れるように)、フィルタ変更はreplace(履歴を積まない)
- Codexレビューの活用: 設計の穴を繰り返しレビューで潰すことで、実装前に問題を発見できる
明日やること
- 仕訳ルールマッチング機能の実装開始
-
/import-shiwake-rulesスラッシュコマンドの実装 - マネーフォワード仕訳出力機能の設計