• #日記
  • #Claude Code
  • #Codex
  • #tax-assistant
  • #OCR
  • #Vue.js
  • #リファクタリング
開発メモ

2026年1月14日の開発日記

今日は2つのプロジェクトで大きな進捗があった。

今日やったこと

1. Claude Code × Codex CLI 連携の実装

Claude Code(Opus 4.5)とCodex CLI(GPT-5.2)を連携させ、異なるAI間でクロスレビューできる仕組みを構築した。

主な成果:

  • /codex-review スラッシュコマンドの作成
  • Windows Terminalでtmuxの代替を実現(start powershell で別ウィンドウ起動)
  • codex exec による非インタラクティブ実行
  • レビュー結果を .claude/codex-review/ にタイムスタンプ付きで保存
  • モデル指定オプション(max / mini)の実装

詳細: Claude CodeとCodex CLIの連携ガイド


2. 税務アシスタント: 手書き売上伝票OCR対応

美容室クライアント向けに、手書きの売上伝票をOCRで読み取る機能を設計・実装した。

主な成果:

  • ドキュメントタイプのDB管理(client_document_types テーブル)
  • クライアント別スキーマのJSON管理(clients/client_001/schemas/sales_slip.json
  • インポートコマンドの粒度分離
    • /import-receipts - 領収書・レシート
    • /import-sales-slip - 売上伝票
    • /import-csv - CSV取込
  • スクエア明細CSVとのマッチングフロー設計(借方勘定科目の自動判定)
  • テーブル分離の設計判断(Codexレビューを活用)

詳細: 手書き売上伝票OCR対応の設計と実装


3. 税務アシスタント: フロントエンドUIリファクタリング

売上伝票対応に伴い、UIの大規模リファクタリングを実施した。

主な成果:

  • Miller Columns 4列構成への拡張(帳票種別→バッチ一覧→ファイル→内容)
  • BatchDocumentTypeList.vue コンポーネントの新規作成
  • ラベルの汎用化(「レシート内容」→「帳票内容」)
  • useReceipts.ts の状態管理改善(3値状態の排除、派生stateへの集約)
  • 複合キーによるlocalStorage保存(帳票種別ごとに位置を記憶)

詳細: UIの大規模リファクタリング


今日の学び

対話ベースの設計が有効

GUIフォームで入力させるより、Claude Codeとの対話でスクリーンショットやJSONを渡す方が柔軟で効率的だった。クライアント管理やスキーマ設定など、従来ならWebフォームを作っていた部分を対話ベースに置き換えることで、開発工数を大幅に削減できた。

異なるAIのクロスレビュー

Claude CodeとCodexの両方を使うことで、単一AIでは気づきにくい設計上の問題を発見できた。特にテーブル分離の判断など、客観的な視点が必要な場面で有効だった。

teeコマンドの罠

Codex CLIの出力を | tee でファイルに保存しようとすると、パイプが詰まって空ファイルになることがある。リダイレクト(>)と cat の組み合わせが確実。

# NG: パイプが詰まる
codex exec "..." | tee output.md

# OK: リダイレクト + cat
codex exec "..." > output.md && cat output.md

明日やること

  • /import-csv コマンドの実装(スクエア明細CSV取込)
  • /match-sales コマンドの実装(売上伝票とスクエア明細のマッチング)
  • 年月フィルターに進捗表示を追加
  • 請求書(invoice)対応の検討

関連記事