上級機能

Hooks:あなただけのワークフローを構築

Claude Code のツール呼び出しの各段階にカスタムロジックを挿入 — フォーマット、テスト、セキュリティチェックをすべて自動化

#Hooks #Automation #ClaudeCode #CI/CD

Claude Code Hooks とは?

Hooks は Claude Code のイベントシステムで、ツール呼び出しの前後にカスタムシェルスクリプトを実行できます。ファイル保存後の自動リンター実行、コミット前のテスト実行、機密ファイルアクセス時のアラートなど、すべて自動化できます。

seo_hooks.what_is_desc2

seo_hooks.flow_user
seo_hooks.flow_user_action
seo_hooks.flow_hook
seo_hooks.flow_hook_action
seo_hooks.flow_tool
seo_hooks.flow_tool_action

Hook タイプ詳細

Claude Code は 4 種類の Hook を提供し、ツール呼び出しの全ライフサイクルをカバー

seo_hooks.type1_title

ツール実行前にトリガー — パラメータ検証、権限チェック、自動承認または拒否

seo_hooks.type1_example

seo_hooks.type2_title

ツール実行後にトリガー — 自動フォーマット、テスト実行、通知送信

seo_hooks.type2_example

seo_hooks.type3_title

Claude Code 通知時にトリガー — Slack やメールなど外部チャンネルと統合

seo_hooks.type3_example

seo_hooks.type4_title

Claude Code 応答終了時にトリガー — ログ記録やクリーンアップの実行

seo_hooks.type4_example

seo_hooks.usecases_title

seo_hooks.usecases_desc

1

seo_hooks.usecase1_title

seo_hooks.usecase1_desc

{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "command": "if echo \"$TOOL_INPUT\" | grep -q 'git commit'; then npm run format; fi"
    }]
  }
}
2

seo_hooks.usecase2_title

seo_hooks.usecase2_desc

{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Bash",
      "command": "if echo \"$TOOL_INPUT\" | grep -q 'pytest\\|npm test'; then notify-send 'Tests completed'; fi"
    }]
  }
}
3

seo_hooks.usecase3_title

seo_hooks.usecase3_desc

{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Edit|Write",
      "command": "if echo \"$TOOL_INPUT\" | grep -qE '\\.env|credentials|secrets'; then exit 2; fi"
    }]
  }
}

Headless モードと CI/CD

-p フラグで Claude Code を CI/CD パイプラインで無人実行

seo_hooks.headless_flag_title

seo_hooks.headless_flag_desc

seo_hooks.headless_pipeline_title

seo_hooks.headless_pipeline_desc

seo_hooks.headless_json_title

seo_hooks.headless_json_desc

seo_hooks.headless_code_label
# seo_hooks.headless_code_comment
claude -p "Review this PR and suggest improvements" \
  --output-format json \
  --max-turns 5

settings.json 設定例

.claude/settings.json で Hooks を定義

.claude/settings.json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "command": "~/scripts/pre-bash-hook.sh"
      },
      {
        "matcher": "Edit|Write",
        "command": "~/scripts/protect-sensitive-files.sh"
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Bash",
        "command": "~/scripts/post-bash-hook.sh"
      }
    ],
    "Notification": [
      {
        "command": "~/scripts/send-notification.sh"
      }
    ],
    "Stop": [
      {
        "command": "~/scripts/on-stop.sh"
      }
    ]
  }
}

seo_hooks.best_practices_title

seo_hooks.best_practices_desc

seo_hooks.bp1_title

seo_hooks.bp1_desc

seo_hooks.bp2_title

seo_hooks.bp2_desc

seo_hooks.bp3_title

seo_hooks.bp3_desc

seo_hooks.bp4_title

seo_hooks.bp4_desc

seo_hooks.faq_title

seo_hooks.faq1_q

seo_hooks.faq1_a

seo_hooks.faq2_q

seo_hooks.faq2_a

seo_hooks.faq3_q

seo_hooks.faq3_a

seo_hooks.faq4_q

seo_hooks.faq4_a

QCode.cc でエンタープライズ自動化

QCode.cc API 中継と Hooks システムを組み合わせ、エンタープライズグレードの AI コーディングパイプラインを構築

seo_hooks.qcode_advantage1_title

seo_hooks.qcode_advantage1_desc

seo_hooks.qcode_advantage2_title

seo_hooks.qcode_advantage2_desc

seo_hooks.qcode_advantage3_title

seo_hooks.qcode_advantage3_desc

Claude Code ワークフローを自動化

Hooks + QCode.cc で AI コーディングの全潜在能力を解放