disable-model-invocation blocks user-typed slash commands
Bug
Skills with disable-model-invocation: true in their YAML frontmatter cannot be invoked even when the user types the slash command directly. The Skill tool returns:
Error: Skill commit cannot be used with Skill tool due to disable-model-invocation
Expected behavior
disable-model-invocation: true should only prevent the model from invoking the skill autonomously. When a user explicitly types /commit (or any registered skill), it should always work — the user's intent is clear.
Steps to reproduce
- Create a skill file
.claude/skills/commit/SKILL.mdwith frontmatter:
``yaml``
---
name: commit
description: Safe commit workflow
disable-model-invocation: true
---
- The skill appears in the registered skills list
- User types
/commitin the prompt - The model attempts to use the Skill tool (since that's how slash commands are processed)
- The Skill tool rejects it because
disable-model-invocation: true
Root cause
It appears that user-typed slash commands and model-initiated skill invocations both flow through the same Skill tool path, so the disable-model-invocation flag blocks both. These should be distinguished — user-typed slash commands should bypass the flag.
Workaround
Remove disable-model-invocation: true from the skill frontmatter, which allows the skill to work but also allows the model to invoke it autonomously.
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗