Skip to content

原文(日本語に翻訳)

PostToolUse向けフックにcontinueOnBlock設定オプションを追加 — trueに設定すると、フックの拒否理由をClaudeにフィードバックしてターンを継続します

原文(英語)

Added hook continueOnBlock config option for PostToolUse — set to true to feed the hook's rejection reason back to Claude and continue the turn

概要

PostToolUseフックにcontinueOnBlockオプションが追加されました。フックが"decision": "block"を返した際、continueOnBlock: trueを設定すると拒否理由をClaudeへのフィードバックとして送り、ターンを継続させることができます。ツールはすでに実行済みのため、ブロックはアクションを取り消すのではなく、Claudeへの通知として機能します。

基本的な使い方

json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "/path/to/validator.sh",
            "continueOnBlock": true
          }
        ]
      }
    ]
  }
}

実践例

コード品質チェックの警告をClaudeにフィードバック

json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write",
        "hooks": [
          {
            "type": "command",
            "command": "eslint",
            "args": ["--format", "compact", "${TOOL_INPUT_FILE_PATH}"],
            "continueOnBlock": true
          }
        ]
      }
    ]
  }
}

フックスクリプトの例(/path/to/validator.sh):

bash
#!/bin/bash
# ファイルを検証
result=$(eslint "$TOOL_INPUT_FILE_PATH" 2>&1)
if [ $? -ne 0 ]; then
  # JSON形式でブロック決定とメッセージを返す
  echo '{"decision": "block", "reason": "'"${result}"'"}'
  exit 0
fi
echo '{"decision": "approve"}'

continueOnBlock: trueの場合:Claudeはブロック理由(ESLintエラー)を受け取り、修正を試みてターンを継続します。

セキュリティ検査の警告フロー

json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "/path/to/security-check.sh",
            "continueOnBlock": true
          }
        ]
      }
    ]
  }
}

危険なコマンドが実行された後、セキュリティチェックフックがブロックを返すと、Claudeはその理由を把握した上で次のアクションを判断できます。

continueOnBlockの動作の違い

設定ブロック時の動作
continueOnBlock: true拒否理由をClaudeにフィードバックしてターンを継続
continueOnBlock: false(デフォルト)ブロック後にすべての処理を停止

注意点

  • PostToolUseはツール実行後に呼び出されるため、ブロックしてもアクションを取り消すことはできません
  • continueOnBlock: trueを使うと、Claudeは問題を認識した上で自己修正できる可能性があります
  • PreToolUseフックのブロックとは異なり、PostToolUseのブロックは実行済みアクションへの事後フィードバックです
  • ループを防ぐため、フックのブロック条件は明確かつ修正可能なものにすることを推奨します

関連情報