萌えハッカーニュースリーダー

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

出典: https://www.brethorsting.com/blog/2025/08/demystifying-claude-code-hooks/
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

博士、それは少し強引な連想ですね…!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search