[BUG] Skill tool blocks invocation with "disable-model-invocation" on skills that do NOT have that flag set

Resolved 💬 3 comments Opened May 10, 2026 by wignerStan Closed May 14, 2026

Environment

  • Claude Code: latest (Opus 4.7)
  • Platform: Linux (Debian 13)
  • Session type: interactive CLI
  • Plugin: compound-engineering-plugin v2.65.0

Bug

The Skill tool rejects invocation of compound-engineering:ce-compound-refresh with:

Skill compound-engineering:ce-compound-refresh cannot be used with Skill tool due to disable-model-invocation

But the skill's SKILL.md frontmatter does NOT set disable-model-invocation: true. It only has name and description:

---
name: ce-compound-refresh
description: Refresh stale learning docs and pattern docs under docs/solutions/ by reviewing them against the current codebase...
---

The skill IS listed in available skills (visible in system prompt) and CAN be triggered by the user typing /compound-engineering:ce-compound-refresh directly. Only the Skill tool invocation path is blocked.

Repro

  1. Install compound-engineering plugin (v2.65.0)
  2. In an active session, attempt: Skill(skill="compound-engineering:ce-compound-refresh")
  3. Error fires immediately — skill never loads

Other skills from the same plugin work fine via Skill tool (e.g. compound-engineering:ce-compound).

Key observations

  • The skill does NOT have disable-model-invocation: true in frontmatter
  • The skill does NOT have context: fork in frontmatter
  • The skill has a very long description field (~750 chars) that contains trigger phrases
  • The skill IS available and IS listed in the system prompt skills list
  • User-typed /compound-engineering:ce-compound-refresh presumably works (standard slash command path)

Hypothesis

The harness may be inferring disable-model-invocation behavior from the description content or length, rather than solely from the explicit frontmatter flag. The ce-compound-refresh description contains trigger phrases ("Trigger this skill when...", "Do not trigger for...") that might cause the harness to treat it as auto-trigger-only.

Workaround

Invoke the skill's content directly via an Agent tool with the skill's logic embedded in the prompt, bypassing the Skill tool.

Related issues

  • #43809 — Skills with explicit disable-model-invocation: true cannot be invoked by subagents
  • #51007 — Subagent skills: preload doesn't inject content when skill has disable-model-invocation: true
  • #51165 — Skills with context: fork fail with "disable-model-invocation" (different trigger, same error message)

This issue is distinct: the skill has NEITHER disable-model-invocation NOR context: fork, but is still blocked.

View original on GitHub ↗

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