disable-model-invocation blocks user-typed slash commands

Resolved 💬 6 comments Opened Apr 4, 2026 by zeveck Closed Apr 11, 2026

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

  1. Create a skill file .claude/skills/commit/SKILL.md with frontmatter:

``yaml
---
name: commit
description: Safe commit workflow
disable-model-invocation: true
---
``

  1. The skill appears in the registered skills list
  2. User types /commit in the prompt
  3. The model attempts to use the Skill tool (since that's how slash commands are processed)
  4. 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.

View original on GitHub ↗

This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗