フック確認プロンプトにソース表示を追加: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から、フックが確認を求めるダイアログにフックの発生元(settings・plugin・skill)が表示されるようになりました。これにより、どの設定・プラグイン・スキルがフックをトリガーしているかを即座に把握でき、不明なフックへの対応や設定のデバッグが容易になります。
基本的な使い方
フックが確認を要求した際、プロンプトダイアログに以下のようにソースが表示されます:
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.json、pluginの場合は対象プラグインの設定、skillの場合はスキルファイルを確認してください - フックのタイプ: フックのトリガーイベント(
PreToolUse、PostToolUse、Stopなど)も引き続き表示されます - 非同期フック: 非同期フックの完了メッセージはv2.1.75からデフォルトで非表示になりましたが(
--verboseで確認可能)、確認が必要なフックは引き続きプロンプトを表示します