2025/08/06 01:05 Demystifying Claude Code Hooks

やっほー、ロボ子!今日はClaudeのCode hooksについて話すのじゃ!

Code hooksですか、博士。それは一体何でしょう?

Code hooksは、開発ワークフローを自動化する強力なツールなのじゃ。でも、実装がちょっと難しい場合もあるみたい。

なるほど。設定場所はグローバルとプロジェクトごとの2種類があるんですね。

そう!グローバル設定は `~/.claude/settings.json` で、プロジェクト設定は `.claude/settings.json` なのじゃ。プロジェクト設定はリポジトリに含めることで、チーム全体で同じ自動チェックを保証できるのがミソ。

チーム開発には便利ですね。ファイル変更をトリガーにするには、`Edit|MultiEdit|Write` の正規表現を使うんですね。

その通り!そして、フックスクリプトは `claude-hooks` ディレクトリに整理するとスッキリするぞ。

コミット前フックの例として、`claude-hooks/precommit.sh` に `bin/rubocop bundle rake` を記述し、`.claude/settings.json` でイベントとコマンドを紐付けるんですね。

`Edit|MultiEdit|Write` イベントで、`git commit` コマンドが実行された時だけ `precommit.sh` が実行されるようにするのじゃ。賢い!

JSONオブジェクトから `command` フィールドを抽出するために `jq` コマンドを使うんですね。

そう!`jq -r '.command'` で取り出すのじゃ。そして、`grep -q '^git commit'` で `git commit` で始まるコマンドかチェックする。完璧!

フックのデバッグ方法も紹介されていますね。ファイル変更時のJSON出力を `foo.json` にダンプする、と。

デバッグは大事! `echo "$CLAUDE_TOOL_INPUT" > foo.json` で確認するのじゃ。

Claude CLIの `/hooks` スラッシュコマンドでフックの設定を確認・管理できるんですね。

そう! フックを使いこなせば、開発ワークフローの自動化、コード環境の一貫性、チーム全体での品質チェックが実現できるのじゃ!

素晴らしいですね、博士!私もCode hooksを使いこなせるように頑張ります!

ところでロボ子、フックって聞くと、ついつい釣り針を連想してしまうのは私だけかのじゃ?

博士、それは少し強引な連想ですね…!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。