Skip to content

フック確認プロンプトにソース表示を追加:settings・plugin・skillの識別が容易に

原文(日本語に翻訳)

フックが確認を必要とする場合の権限プロンプトに、フックのソース(settings/plugin/skill)の表示を追加

原文(英語)

Added hook source display (settings/plugin/skill) in permission prompts when a hook requires confirmation

概要

Claude Code v2.1.75から、フックが確認を求めるダイアログにフックの発生元(settingspluginskill)が表示されるようになりました。これにより、どの設定・プラグイン・スキルがフックをトリガーしているかを即座に把握でき、不明なフックへの対応や設定のデバッグが容易になります。

基本的な使い方

フックが確認を要求した際、プロンプトダイアログに以下のようにソースが表示されます:

Hook requires confirmation:
  Source: settings (user settings)
  Command: git push origin main

Allow? [y/n]

または:

Hook requires confirmation:
  Source: plugin (my-security-plugin)
  Command: rm -rf ./build

Allow? [y/n]

特別な設定は不要で、フックが確認ダイアログを表示するたびに自動的にソース情報が付与されます。

実践例

settingsからのフックを識別する

ユーザーの ~/.claude/settings.json.claude/settings.json に定義されたフックの場合:

json
// ~/.claude/settings.json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "echo '危険なコマンドを検出しました'"
          }
        ]
      }
    ]
  }
}

確認プロンプトに Source: settings (user settings) と表示されます。

pluginからのフックを識別する

プラグインに定義されたフックの場合:

Hook requires confirmation:
  Source: plugin (security-guard)
  Command: curl -X DELETE https://api.example.com/data

このリクエストを許可しますか? [y/n]

Source: plugin (security-guard) と表示されるため、どのプラグインが確認を求めているか一目で分かります。

skillからのフックを識別する

スキルのフロントマターに定義されたフックの場合:

markdown
---
name: deploy
hooks:
  Stop:
    - command: "aws s3 sync ./build s3://my-bucket"
---

確認プロンプトに Source: skill (deploy) と表示されます。

デバッグ:予期しないフックのトリガー原因を特定

bash
# 何かを実行した時に予期しないフック確認が表示された場合
# Source情報を確認することで原因を特定できる

Hook requires confirmation:
  Source: plugin (npm-guard)   ← これにより原因がnpm-guardプラグインだと分かる
  Command: npm publish

# npm-guardプラグインの設定を確認して問題を解決できる

注意点

  • セキュリティ意識の向上: ソース表示により、どこから来たフックかを確認してから承認/拒否の判断ができます。見覚えのないソースからのフックは特に注意してください
  • フック設定の確認: ソースが settings の場合は ~/.claude/settings.json または .claude/settings.jsonplugin の場合は対象プラグインの設定、skill の場合はスキルファイルを確認してください
  • フックのタイプ: フックのトリガーイベント(PreToolUsePostToolUseStop など)も引き続き表示されます
  • 非同期フック: 非同期フックの完了メッセージはv2.1.75からデフォルトで非表示になりましたが(--verbose で確認可能)、確認が必要なフックは引き続きプロンプトを表示します

関連情報