{"version":"2.1.280","anchor":"claude-plugin-test-refusal-messaging-refactored-into-a-share","canonical_anchor":"hooks-modules-plugin-tests-early-access-gate-and-messages","heading":"Clearer messages when plugin hook-module tests can't run","tier":"soon","area":"Plugins","url":"https:\/\/changelogs.core-directive.com\/v\/2.1.280\/e\/claude-plugin-test-refusal-messaging-refactored-into-a-share","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.280","markdown":"### Clearer messages when plugin hook-module tests can't run\n\nThe claude plugin test command now gives clearer, consistent messages explaining why hook-module tests are blocked\n\n**What**\n\nThe CLI's `claude plugin test --file` and `claude plugin test` commands now use a single shared helper, `pluginTestRefusal`, to decide why a plugin's hook-module tests can't run, replacing scattered inline conditional logic. The helper reports one of two reasons:\n\n- If the hooks-modules feature isn't enabled yet, it tells the user to set `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1`.\n\n- If the feature is enabled but hook modules are disabled locally (for example via `disableAllHooks`, `allowManagedHooksOnly`, or an organization policy), it reports that instead.\n\n**Why**\n\nThis gives a consistent, accurate explanation when `plugin test` refuses to run, instead of an unclear or inconsistent message, making it easier to figure out whether the fix is an environment variable or a local\/managed policy setting.\n\n- Area: Plugins\n- Names: `claude plugin test`\n- Tier: Nothing to try yet\n- Useful: 2\/5\n- Signal: 2\/5"}