Skill tool blocks user-requested invocation when disable-model-invocation is set

Resolved 💬 3 comments Opened Mar 10, 2026 by tomarshall Closed Mar 14, 2026

Description

When a skill has disable-model-invocation: true in its frontmatter, the Skill tool blocks ALL programmatic invocations — including when the user explicitly asks the model to run the skill (e.g., "I'm gonna have you /wrap-up").

Expected behavior

disable-model-invocation: true should prevent the model from autonomously invoking the skill, but should still allow invocation when the user explicitly requests it (e.g., "run /wrap-up", "do /wrap-up for me", "I'm gonna have you /wrap-up").

Current behavior

The Skill tool returns an error:

Skill wrap-up cannot be used with Skill tool due to disable-model-invocation

The model then has to fall back to reading the skill file with the Read tool and following the instructions manually — which works but defeats the purpose of the Skill tool.

Reproduction

  1. Create a skill with disable-model-invocation: true in frontmatter
  2. Ask the model: "please run /skill-name"
  3. Model attempts Skill tool → gets blocked
  4. Model has to fall back to Read tool

Suggested fix

Distinguish between model-initiated and user-requested invocations. If the user's message contains an explicit reference to the skill (e.g., "/wrap-up", "run wrap-up"), treat it as user-initiated and allow the Skill tool invocation.

View original on GitHub ↗

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