{"version":"2.1.223","anchor":"skill-invoke-telemetry-identifies-the-blocked-skill","canonical_anchor":"skill-invoke-telemetry-identifies-the-blocked-skill","heading":"Skill-invoke telemetry identifies the blocked skill","tier":"internal","area":"Skills","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.223\/e\/skill-invoke-telemetry-identifies-the-blocked-skill","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.223","markdown":"### Skill-invoke telemetry identifies the blocked skill\n\nWhen a skill invocation is refused, the log now records which skill it was, hashed rather than named.\n\n**What**\n\nThe event logged when a skill invocation is refused because model invocation is disabled now says which skill was involved, without logging the name in the clear.\n\n**Details**\n\n- adds a sanitized `command_name`\n- adds a skill-name hash derived from whether the skill is MCP, built-in, bundled or official\n- previously the refusal was logged bare with no identifying fields\n\n**Evidence**\n\n`skill_invoke_model_disabled`\n\n- Area: Skills\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 0\/5"}