【結論】解決策 / 実行コマンド
Claude CodeのHooksはReact Hooksではなく、ツール実行前後、通知、セッション終了などのライフサイクルイベントでシェルコマンド、HTTP処理、LLMプロンプトを自動実行する機能です。
フォーマット、秘密検出、危険コマンドの拒否、テスト実行などを決定論的に組み込めます。
# ターミナルで実行:プロジェクト設定ディレクトリを作成
mkdir -p .claude
# ターミナルで実行:設定ファイルを編集
${EDITOR:-vi} .claude/settings.json
# 起動後のセッション内で実行:Hooks設定を開く
/hooks具体的な手順・設定方法
最初は通知やフォーマットなど副作用の小さいHookから導入します。
Hook入力はJSONとして標準入力へ渡されるため、jqなどでイベント名と対象ファイルを検証します。
失敗時の終了コード、タイムアウト、ログ保存先を決め、リポジトリでレビューします。
実践プロンプト / 活用テクニック
# .claude/settings.jsonへ追加する例
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "# 編集後にフォーマッターを実行\nnpm run format --if-present"
}
]
}
]
}
}注意点・よくあるエラーと対処法
Hookはユーザー権限で自動実行されるため、外部から取得したスクリプトを無検証で登録しないでください。
全ファイル編集後に重いテストを走らせると遅延が大きいため、対象拡張子やイベントを絞ります。
React Hooksのリファクタリングを扱う記事とは明確に分離してください。