Published on

Claude Code フック(Hooks)が進化 — 実行時間測定・努力レベル検知・CIでの自動レビューまで

フック(Hook)は、Claude Codeの中で最も静かに、しかし最も力強く成長している機能だ。


フックの4つのタイミング

フックタイプ実行タイミング
PreToolUseツール実行直前
PostToolUseツール実行直後(成功時)
PostToolUseFailureツール実行直後(失敗時)
StopClaudeが応答を終えた後

PostToolUse出力の差し替え

今回のアップデートですべてのツールに対して可能になった。

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "python3 sanitize_output.py",
            "hookSpecificOutput": { "updatedToolOutput": true }
          }
        ]
      }
    ]
  }
}

effort.level — 努力レベルの読み取り

  • フック入力JSON: effort.levelフィールド
  • 環境変数: $CLAUDE_EFFORT
if [ "$CLAUDE_EFFORT" = "high" ] || [ "$CLAUDE_EFFORT" = "xhigh" ]; then
  npm run test:full
else
  npm run test:smoke
fi

duration_ms — ツール実行時間の計測

if [ "$DURATION" -gt 5000 ]; then
  echo "[SLOW] $(date): ${DURATION}ms" >> slow-tools.log
fi

claude ultrareview — CIでの自動コードレビュー

claude ultrareview src/ --json
claude ultrareview --diff origin/main...HEAD

出典

Claude Code フック(Hooks)が進化 — 実行時間測定・努力レベル検知・CIでの自動レビューまで | MINSSAM.COM