{"version":"2.1.299","anchor":"plugin-hooks-registration-managed-set-tracking-and-builtins","canonical_anchor":"plugin-hooks-registration-managed-set-tracking-and-builtins","heading":"Hooks modules can now be held back, with new tracking of which ones load","tier":"internal","area":"Plugins","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/plugin-hooks-registration-managed-set-tracking-and-builtins","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299","markdown":"### Hooks modules can now be held back, with new tracking of which ones load\n\nHooks-module loading now takes a personsHeld input, skips modules from sources outside the allowed set, and records a builtins-only decision\n\n**Unclear.** What the new decision changes about which hook modules load is not stated.\n\n**What**\n\nHooks are your own commands or scripts that Claude Code runs automatically at set moments, and plugins can bring their own. Claude Code groups them into hooks modules. The way it decides which hooks modules to load has been reworked:\n\n- `personsHeld` is a new input to the selection. A module whose source is not in the allowed set is skipped, and the existing 'hooks module ... not loaded' log message records the skip.\n\n- `builtinsOnly`, the decision about whether only built-in hooks are allowed, is now worked out during loading. Before, a simple helper supplied it.\n\n- A successful load resets the loading state, and the decision is recorded through a new registry call. Claude Code now tracks whether that set of modules is known and whether a decision has been made.\n\n- A load-fault flag replaces the earlier stamps that marked a failed load.\n\n**Why**\n\nThis is a new restriction on loading plugin hooks. It changes which hooks modules load, including under managed policy, where an organisation sets the rules. If a hook you expect does not run, look for the 'not loaded' message in the logs.\n\n- Area: Plugins\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 2\/5\n- Scope: individual\n- Heads-up: no"}