「指示」ではなく「強制」を。Claude Codeの真価を引き出す8つの自動化フック(Hooks)

Claude Codeを使っていると、もどかしい瞬間に直面することがあります。「コードをフォーマットして」と頼んだのに無視されたり、「特定のファイルには触らないで」と言ったのに書き換えられたり、テストを走らせずに作業完了を報告されたり……。

その理由はシンプルです。CLAUDE.mdへの記述はあくまで「提案(Suggestion)」であり、モデルがそれを読み飛ばしたり、文脈の中で忘れたりする可能性があるからです。

そこで重要になるのがHooks(フック)です。指示が「お願い」なら、フックは「強制力を持つルール」です。特定の条件下で自動的に割り込むフックを導入することで、Claudeの挙動を物理的に制御し、開発ワークフローの品質を一段上のレベルへ引き上げることができます。

参考

 https://x.com/Techburhan/status/2040869682912297196

フック(Hooks)の仕組み:30秒で理解する基本概念

フックは、Claude Codeがアクション(ファイルの編集、コマンドの実行など)を行う際、その前後に自動的に割り込む仕組みです。

  • 設定場所: プロジェクトルートの .claude/settings.json で定義します。このファイルをリポジトリに含めることで、チーム全体で同じ自動化ルールを共有できます。
  • PreToolUse(門番 / Bouncer): Claudeが何かを実行するに動作します。実行内容を検証し、不適切な場合は拒否(exit code 2)して実行を阻止します。
  • PostToolUse(品質管理 / Production Line Inspector): Claudeが何かを実行したに動作します。フォーマット、テスト、ログ記録など、一連の「検品」を自動化します。

——————————————————————————–

厳選された8つのClaude Code Hook

① ファイル保存時の自動フォーマット(Prettier)

Claudeは正しいロジックを書きますが、プロジェクト独自のスタイルガイドを完璧に守り続けるのは苦手です。PostToolUseでPrettierを強制することで、一貫性のあるコードを常に維持します。

分析・考察: 「指示してもたまに忘れる」というAI特有の不確実性を排除します。ファイルが書き換えられた直後にバックグラウンドでフォーマットが走るため、人間が手動で微調整する手間がゼロになります。

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write 2>/dev/null; exit 0"
          }
        ]
      }
    ]
  }
}

② 危険なコマンドの実行阻止

rm -rf のような破壊的な操作や、意図しないディレクトリへの干渉を PreToolUse で物理的にブロックします。

分析・考察: AIによる予期せぬ操作から環境を守る「門番」の役割です。このフックで exit 2 を返すと、Claude Codeは「コマンドが拒絶された」ことを理解し、無理に実行を継続したり、成功したと誤認(ハルシネーション)したりすることを防げます。

# .claude/hooks/block-dangerous.sh
if echo "$tool_input" | grep -qE "rm -rf /|mv .* /dev/null"; then
  echo "Error: 危険なコマンドが検知されました。"
  exit 2
fi
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [{ "type": "command", "command": ".claude/hooks/block-dangerous.sh" }]
      }
    ]
  }
}

③ 変更後の自動テスト実行とフィードバックループ

コードを変更するたびにテストを自動実行し、その結果を即座にClaudeへフィードバックします。

分析・考察: テスト結果を即座に見せることで、Claudeは自らのミスに即座に気づき、自律的に修正を開始します。tail -5 を使うのは、冗長なログでClaudeのコンテキスト(記憶容量)を埋めないためのテクニックです。

“Claude Codeの作成者であるBoris Chernyは、Claudeにこのようなフィードバックループを与えることで、出力の質が2〜3倍向上すると述べています。”

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "npm test | tail -5; exit 0"
          }
        ]
      }
    ]
  }
}

④ PR作成前のテスト合格の強制

テストが失敗している状態でのプルリクエスト(PR)作成を、フックによって「硬いゲート」として拒絶します。

分析・考察: 開発の「最終ゲート」です。CI/CDでエラーが出てレビューが止まる前に、ローカル環境でClaudeに責任を持たせます。ここでも exit 2 を利用し、テストが通らない限りPR作成アクション自体を成立させません。

# .claude/hooks/require-tests-for-pr.sh
npm test > /dev/null 2>&1
if [ $? -ne 0 ]; then
  echo "テストが失敗しています。PRを作成する前に修正してください。"
  exit 2
fi

⑤ 自動Lintとエラーレポート

ESLintなどの静的解析ツールを実行し、コードスタイルや潜在的なバグを自動修正・報告させます。

分析・考察: ①のPrettierと「連鎖(Chain)」させることで、人間がコードを確認する頃には、フォーマット済みかつLintエラーのない完璧な状態になります。機械的に解決できる指摘をレビューから排除し、より本質的な議論に集中できます。

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "npx eslint --fix $(jq -r '.tool_input.file_path'); exit 0"
          }
        ]
      }
    ]
  }
}

⑥ 実行コマンドのログ記録(監査ログ)

Claudeが実行したすべてのBashコマンドを、タイムスタンプと共にログファイルに保存します。

分析・考察: デバッグ時の「証跡」として極めて有用です。数ステップ前にClaudeが何をしたかを正確に把握できるため、トラブル時の切り戻しや原因特定が容易になります。.claude/command-log.txt.gitignore に追加しておきましょう。

# .claude/hooks/log-commands.sh
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $CLAUDE_COMMAND" >> .claude/command-log.txt

⑦ タスク完了時の自動コミット

Claudeがタスクを終え、応答を終了(Stop)するたびに、自動的にアトミックなコミットを作成します。

分析・考察: 複数のタスクが混ざった巨大な「一括コミット」を避け、Git履歴をクリーンに保ちます。これを claude -w(ワークツリー機能)と組み合わせれば、タスクごとに独立した履歴を自動構築する強力なパイプラインが完成します。

# .claude/hooks/auto-commit.sh
git add .
git commit -m "Claude: $CURRENT_TASK_SUMMARY" || exit 0
{
  "hooks": {
    "Stop": [
      { "type": "command", "command": ".claude/hooks/auto-commit.sh" }
    ]
  }
}

⑧ チーム共有設定としての活用

.claude/settings.json をリポジトリに含めることで、チーム全員が同じ自動化の恩恵を享受します。

分析・考察: 個人の生産性向上だけでなく、チーム全体の「開発の規律」をフックで強制できます。新メンバーがジョインした瞬間から、シニアエンジニアと同じレベルの安全網と品質管理の中でClaude Codeを使い始めることが可能になります。

{
  "hooks": {
    "PreToolUse": [
      { "matcher": "Bash", "hooks": [{ "type": "command", "command": ".claude/hooks/block-dangerous.sh" }] }
    ],
    "PostToolUse": [
      { "matcher": "Write|Edit", "hooks": [
        { "type": "command", "command": "npx prettier --write ..." },
        { "type": "command", "command": "npm test | tail -5" }
      ]}
    ],
    "Stop": [
      { "type": "command", "command": ".claude/hooks/auto-commit.sh" }
    ]
  }
}

——————————————————————————–

結論と次の一歩

優れたセットアップと最高のセットアップの違いは、使用するモデルの性能やプロンプトの工夫ではなく、「いかにフックで外枠を固めているか」にあります。

CLAUDE.mdは依然として道標として重要ですが、確実にルールを遵守させ、品質を担保したいのであれば、フックによる自動化は不可欠です。

まずは、最も効果を実感しやすい「①自動フォーマット」「②危険コマンドの阻止」から導入してみてください。それだけで、Claude Codeは「指示を待つAI」から、「プロジェクトの規律を守り、自律的に高品質な成果を出す真のパートナー」へと変貌するはずです。

参考

https://code.claude.com/docs/ja/hooks

おすすめコンテンツ

☆AIx副業で月100万を現実にする☆

◯副業に挑戦してみたいけどAI初心者でなにもわからない…
◯AIを使った副業をしているけどなかなか月100万の壁が超えられない…
◯SNS攻略が苦手すぎて売上が上がらない…

こういった悩みを抱えている方に
AI×副業 個別ロードマップ作成会を 期間限定で無料で実施します!
個別ロードマップ作成会は期間限定・人数限定になります。
※枠に限りがあるので、人数に達し次第終了。

私ラムオ自身も個別ロードマップ作成会でやるべき道筋を引っ張ってもらいました。やるべきことが分かっていれば目標到達まで最速で進めます!
⏬️下記URLより、AI/SNS攻略して稼ぐ166極秘資料をプレゼント⏬️
bit.ly/3OZubcO (参加は無料です)



Claude Code 初心者向けおすすめ教材

ユニコさんの 「Claude Code × Remotion Skills」の教科書を買ってみました!

手順どおりやれば、導入につまづくことなく、しかも何を作ったら良いかまとまっていない人向けにテンプレートまで手に入ってしまう。恐ろしい構成です。

AIサービスは次月になったら別の良いものが出ていることも日常茶飯事。

「ああ、課金しなけりゃよかった…」なんてことは毎月起こるわけです。

この教科書の流れとして、推奨でClaudeに課金してClaude Codeを使うになっていますが、 【 課金しなくてもいい 】 学習ルートを用意してあるのが嬉しい配慮です。

  • AIで動画を作ってみたい人、
  • Claude Code の導入でつまづいている人

には十分すぎる内容ですね!!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次