本文へスキップ
BecomeCoder

Claude Codeコース · 第4章 プロジェクトに合わせる · レッスン15

フック ― 決まったタイミングで必ず実行する

導入

CLAUDE.md のルールは「お願い(守られないこともある)」ですが、フックは「必ず実行される仕組み」です。「編集後に必ずフォーマッタをかける」のように、例外なく毎回起きてほしい処理はフックにします。

説明

フックは、Claude Code の作業の節目(ライフサイクルイベント)で、あなたが指定したコマンドを自動実行します。設定は .claude/settings.json に書き、/hooks で一覧を確認できます。

代表的なイベントです。

PreToolUse    ツール実行の前(例: 危険なコマンドをブロック)
PostToolUse   ツール実行の後(例: 編集後に自動フォーマット・テスト)
Stop          ターンの終了時(例: テストが通るまで終わらせない)
SessionStart  セッション開始時
flowchart LR
    E["ファイル編集"] --> H{"PostToolUse<br/>フック"}
    H --> F["eslint --fix を自動実行"]
    F --> T["テストを走らせる"]

うれしいことに、フックは Claude Code 自身に書いてもらえます。「ファイル編集のたびに eslint を走らせるフックを書いて」「migrations フォルダへの書き込みをブロックするフックを書いて」のように頼めます。

CLAUDE.md(お願い)とフック(強制)の使い分けが肝心です。絶対に毎回・例外なく起きてほしいことだけをフックにし、それ以外はまず CLAUDE.md で足りるか考えましょう。

読んでみよう

「守ってほしいお願いは CLAUDE.md、絶対に外せない処理はフック」。毎回手でやっている定型処理があれば、/hooks を覗いて自動化できないか考えてみましょう。