GGPT Master GuideAIを、日々の作業に。

Claude CodeのHooksで編集後にlint・format・testを実行する

公開 2026-04-24 更新 2026-09-11

Claude CodeのHooksでファイル編集後にlint・format・testを自動実行する設定方法

関連テーマ:繰り返す作業を自動化する

この記事の目次
  1. 確認とトラブル対処

編集のたびに検査を忘れたくないなら、PostToolUse Hookに既存の検査コマンドを接続します。Hookの設定場所はプロジェクト共有の.claude/settings.json、個人用の.claude/settings.local.json、全プロジェクト共通のユーザー設定です。

本文のPostToolUse例は、次の順に条件がつながります。

図解編集後Hookが検査を呼ぶ流れ
  1. 1Edit/Writeが完了対象のツールイベントが発生する。
  2. 2matcherに一致Edit|Write の条件に合うとHookの実行へ進む。
  3. 3検査コマンドを実行手動で確認済みの npm run lint の結果を読む。

この例は、すべての編集やBash実行を監視する設定ではありません。発火しなければイベント・matcher・コマンドを分けて確認します。

まず、手動でnpm run lintなどがプロジェクトのルートから成功することを確かめます。次に.claude/settings.jsonへ次のような設定を追加します。

{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Edit|Write",
      "hooks": [{
        "type": "command",
        "command": "npm run lint"
      }]
    }]
  }
}

formatterも実行するなら、順序と失敗時の扱いをスクリプトにまとめます。時間のかかるテストを毎回走らせると作業を遅くするため、編集対象をmatcherやスクリプトで絞るか、Stop時だけ統合テストを起動します。HookはClaudeがBashを使った時ではなく、該当するツールイベントで発火する点に注意してください。

確認とトラブル対処

/hooksで現在の設定とイベントを確認し、Hookを含む設定JSONの構文エラーを解消します。発火しない場合はmatcherが実際のツール名と一致しているか、設定ファイルのscopeが対象プロジェクトか、コマンド単体が同じシェルで動くかを調べます。停止Hookが繰り返しブロックする場合は、修正処理を再び同じイベントへ結び付けていないか確認します。

Hookに秘密情報を渡さず、ファイルパスや標準入力を検証してください。自動チェックが通っても、要件・差分・依存更新を人が確認する工程は残ります。公式Hooksガイドリファレンスを2026年9月10日に確認しました。概要はHooksとは。実機検証はしていません。

ここで例にしたPostToolUseのEdit|Write matcherは、ファイル編集後のHookだけを説明しています。すべてのBash実行や他のイベントに同じ挙動が適用されるわけではないため、対象イベントとmatcherを設定ごとに確認します。

Hookの基本概念は自動ガードレールの整理、全体の自動化設計は機能別の比較で補えます。

このテーマを続けて読む

Skills・Hooks・プラグインから、定期処理や外部イベントの扱いへ。

繰り返す作業を自動化するの記事をまとめて見る