{"version":"2.1.301","anchor":"hook-decision-reasons-gain-hook-event-source-and-plugin-id","canonical_anchor":"hook-decision-reasons-gain-hook-event-source-and-plugin-id","heading":"Permission decisions made by hooks now record which hook made them","tier":"internal","area":"Hooks","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/hook-decision-reasons-gain-hook-event-source-and-plugin-id","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301","markdown":"### Permission decisions made by hooks now record which hook made them\n\nWhen a hook allows or blocks a tool, Claude Code now records the hook's event, where the hook came from and, for plugins, the plugin's ID\n\n**Unclear.** Whether Claude Code sends these details by default is not clear.\n\n**What**\n\nA hook is a command you or a plugin set up to run automatically at certain moments, for example `PreToolUse`, which runs before Claude uses a tool and can block it. When a hook decides whether Claude may go ahead, Claude Code can now record three extra details:\n\n- The hook event, `PreToolUse` or `tool.check`.\n\n- The hook's source: your settings, a plugin, or a skill, with its name where there is one.\n\n- For a plugin, its ID in the form `plugin@marketplace`.\n\nThe source and plugin ID are checked against these expected forms.\n\n**Why**\n\nThese look like telemetry fields, meaning usage data, that would show which hook decided a permission outcome.\n\n- Area: Hooks\n- Names: `PreToolUse`\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 2\/5\n- Scope: individual\n- Heads-up: no"}