• #日記
  • #Chrome拡張機能
  • #DevTools MCP
  • #クラウド会計
  • #Claude Code
daily-log

2026年3月28日の開発日記

朝6時から丸一日、会計サービス連携のChrome拡張を触り続けた。前日の積み残し5項目を片付けるところから始まり、ルール同期機能の全面改修、DevTools MCPで拡張なしにAPIを直接叩ける発見、Claude Codeフックのタイムスタンプ注入設定と、密度の濃い一日になった。

今日やったこと

1. Chrome拡張MFのルール同期機能を全面改修

前日の積み残しだった汚染ストレージ修復から着手し、そのままルール同期機能をほぼ丸ごと作り直した。

主な成果:

  • 汚染ストレージの自動修復マイグレーションを実装
  • DELETE APIのCSRFトークン対応(422エラー解消)
  • ルール同期タブを単一URL→事業者別リストUIに改修
  • 自動仕訳ルールインポートタブを廃止し、同期に統合
  • ルールID照合バグ修正(口座未紐付けルールのaccount_id='0'フォールバック)
  • スプレッドシート書式クリア問題の解決(deleteDimension方式)
  • ログタブの新設(Codexレビュー3回)
  • シート名キャッシュの実装

詳細: Chrome拡張 会計サービス連携 - 自動仕訳ルール同期機能の全面改修とバグ修正


2. DevTools MCPでクラウド会計APIを直接操作する実験

Chrome拡張の依存度を下げたいという議論から、「そもそも拡張なしでAPIを叩けるのでは」という仮説を検証した。

主な成果:

  • CSRFトークン/OAuth/リフレッシュトークンの3種類を図解ドキュメント化(SVG5つ)
  • evaluate_scriptでCSRFトークンを取得し、内部APIを直接叩いて全帳簿データを取得
  • テスト事業者の仕訳帳・残高試算表・月次推移・年次推移・連携明細をスプレッドシートに転記
  • 「拡張のコードは8割リファレンスとして使える」という気づき
  • 次回すぐ再現できるランブックを整備

詳細: DevTools MCPでクラウド会計APIを直接操作 - Chrome拡張なしで全帳簿データを取得した実験記録


3. Claude Codeフックでタイムスタンプ注入

1Mコンテキストの長時間セッションで「何時頃の話だったか」を把握するためのTipsを導入。

主な成果:

  • PreToolUseフックではstdoutがコンテキストに入らない仕様を発見
  • UserPromptSubmitフックに切り替えて成功
  • メッセージ送信のたびにsystem-reminderとしてタイムスタンプが記録される
  • 別リポジトリ(mdx-playground)でも動作を確認。JSONLにタイムスタンプが残るため、/make-diaryの時間精度も向上

詳細: Claude Codeフックでタイムスタンプ注入 - 1Mコンテキスト長時間セッションの時刻把握


4. 事業者設定エクスポートの計画策定

会計サービスの事業者設定ページ(決算月、課税方式、端数処理等)をスクレイピングしてスプレッドシートに出力する実装計画を策定。Codexレビューで「CTI直fetchでは年度切替が効かない」という致命的な指摘を受けて修正。プランのみ作成し、実装は翌日に持ち越し。


今日の試行錯誤

#テーマ試したこと結果気づき
1DELETE API 422リクエストボディの形式変更失敗DevToolsで正規リクエストと比較するのが最速
2DELETE API 422X-CSRF-Tokenヘッダー追加成功POST/PUT/DELETEすべてにCSRFトークン必須
3CSVインポート 500FormDataフィールド名を確認成功ブラウザの送信内容と比較して差分を発見
4ルールID照合CSV/JSON間のキー正規化部分的成功口座未紐付けルールが漏れる
5ルールID照合account_id='0'でフォールバック検索成功Search APIの仕様: 未紐付け=account_id 0
6書式クリアrepeatCellで書式リセット失敗Sheets APIのrepeatCellが効かないケース
7書式クリアデータ行以降の行をdeleteDimension成功値・書式・行構造は独立レイヤー
8残高試算表URLURLパターンを推測404拡張のexport.jsに正解が書いてあった
9仕訳帳取得1月〜12月でハードコード開始仕訳のみ事業者の決算月を確認してから期間を組み立てるべき
10タイムスタンプhookPreToolUseにdate追加失敗PreToolUseのstdoutはコンテキストに入らない
11タイムスタンプhookUserPromptSubmitに変更成功フックの種類でstdoutの扱いが異なる

今日の学び

  • DevToolsでブラウザの正規リクエストとコードのリクエストを並べて差分を取る――この基本動作が最速のデバッグ手段
  • Sheets APIのclearは値レイヤーのみ、deleteDimensionは値・書式・行構造をまとめて消す
  • Chrome拡張のコードベースはDevTools MCP操作時のリファレンスとして8割使える。推測で動く前にまず既存コードを読む
  • Claude Codeフックの種類によってstdoutの行き先が違う。PreToolUseはUI表示のみ、UserPromptSubmitはコンテキスト注入
  • Codexレビューは3回投げて致命的な指摘を潰すパターンが定着してきた

明日やること

  • 事業者設定エクスポートの実装(memo/2026-03-28/office-settings-export-plan.md
  • サービス一覧のエクスポートJSON含有化(memo/2026-03-28/plan-service-list-export.md
  • 木村まやこ 2024年度の帳簿データ取得(ランブック: runbook-mf-export.md

関連記事