Files
gh-otolab-ai-agent-prompts-…/hooks
2025-11-30 08:46:35 +08:00
..
2025-11-30 08:46:35 +08:00
2025-11-30 08:46:35 +08:00
2025-11-30 08:46:35 +08:00
2025-11-30 08:46:35 +08:00
2025-11-30 08:46:35 +08:00

Hooks - Claude Codeフック集

Claude Codeのセッションやツール実行時に自動的に実行されるフックスクリプト集です。

利用可能なフック

start-session.js

イベント: SessionStart 目的: セッション開始時に動作モードの設定を促す

セッション開始時にmode_listの実行と適切なモードの有効化を促します。 セッションのソースタイプstartup/resume/clear/compactに応じて適切な指示を提供します。 これにより、コンテキストリセット後も一貫した作業スタイルを維持できます。

post-tool-use.sh

イベント: PostToolUse (Bashツール限定) 目的: cdコマンド実行後の現在ディレクトリをコンテキストに追加

Bashツールでcdコマンドが実行された際に、移動後の現在ディレクトリを[cwd: /path/to/dir]形式で コンテキストに追加します。これにより、ディレクトリ移動の追跡が容易になります。

フックの仕組み

実行フロー

  1. Claude Codeが特定のイベントSessionStart、PostToolUse等を検出
  2. ~/.claude/settings.jsonのmatcherパターンに一致するか確認
  3. 一致した場合、指定されたコマンドを実行
  4. フックスクリプトがJSON形式で追加コンテキストを出力
  5. Claude Codeがコンテキストを会話に追加

JSON出力形式

{
  "hookSpecificOutput": {
    "hookEventName": "EventName",
    "additionalContext": "追加するテキスト"
  }
}

新規フックの作成方法

1. スクリプトの作成

cat > hooks/my-hook.sh << 'EOF'
#!/bin/bash
echo '{
  "hookSpecificOutput": {
    "hookEventName": "MyEvent",
    "additionalContext": "カスタムメッセージ"
  }
}'
EOF

2. 実行権限の付与

chmod +x hooks/my-hook.sh

3. settings.jsonへの登録

"EventName": [
  {
    "matcher": "パターン",
    "hooks": [
      {
        "type": "command",
        "command": "~/Develop/otolab/ai-agent-prompts/hooks/my-hook.sh"
      }
    ]
  }
]

環境変数

フックスクリプト内で利用可能な環境変数(イベントによって異なる):

PostToolUse

  • CLAUDE_CODE_TOOL_NAME - 実行されたツール名(例: "Bash", "Read", "Write"
  • CLAUDE_CODE_TOOL_PARAMS - ツールパラメータJSON文字列
  • CLAUDE_CODE_TOOL_RESULT - ツール実行結果(利用可能な場合)

デバッグ方法

ログファイルへの出力

#!/bin/bash
# デバッグ情報をログファイルに記録
echo "$(date): Hook executed" >> /tmp/hook-debug.log
echo "Tool: $CLAUDE_CODE_TOOL_NAME" >> /tmp/hook-debug.log

環境変数の確認

#!/bin/bash
# すべての環境変数を記録
env > /tmp/hook-env.txt

ベストプラクティス

  1. 軽量に保つ: フックの実行時間を最小限に
  2. エラーハンドリング: 失敗してもセッションを妨げない
  3. 条件分岐: 必要な場合のみ出力を生成
  4. ログ記録: デバッグ用のログは別ファイルに

注意事項

  • フックスクリプトの出力はJSON形式である必要があります
  • 不正なJSON出力はエラーになる可能性があります
  • matcherパターンは正確に設定してください
  • 設定変更後はClaude Codeの再起動が必要です

作成: 2025年10月6日