[BUG] disable-model-invocation: true still hides skills from model entirely (regression from #43660)

Status Fixed / completed
Reported on v2.1.94
Maintainer reply ✓ Yes — claude[bot]
Activity 3 comments · opened Aug 18, 2026 · closed Aug 19, 2026
💡 Likely answer: A maintainer (claude[bot], contributor) responded on this thread — see the highlighted reply below.

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Skills with disable-model-invocation: true are completely invisible to the model. They do not appear in the system-reminder skills list, so the model:

  • cannot suggest the user run the skill
  • cannot know the skill exists when planning
  • cannot delegate to it from a subagent
  • cannot ask the user to invoke it

The skill is discovered by the harness (it appears in slash-command autocomplete and can be invoked by the user typing /skill-name), but the model has zero awareness of it.

This was reported and closed as fixed in #43660 (v2.1.94). The bug is back — or was never fully fixed, since the original closer noted reproduction was "sporadic."

What Should Happen?

Per the changelog entry: "Improved the refusal when Claude tries to invoke a skill with disable-model-invocation: Claude is now told to ask you to run the skill instead of replicating its workflow"

The model should:

  1. See the skill in its available skills list (know it exists)
  2. Fail if it tries to invoke it via the Skill tool
  3. Be told to ask the user to run /skill-name instead

Steps to Reproduce

  1. Create ~/.claude/skills/test-skill/SKILL.md:

``yaml
---
name: test-skill
description: A test skill.
disable-model-invocation: true
---
# Test Skill
Do something.
``

  1. Start a new session
  2. Ask the model: "Do you see the /test-skill skill?"
  3. Model does not see it — it is not in the system-reminder skills list
  4. Remove disable-model-invocation: true from the frontmatter
  5. Skill appears immediately (hot-reload works)

Evidence

Tested with 10 skills in ~/.claude/skills/, all with disable-model-invocation: true — none visible to the model. Includes both real directories and NTFS junctions; the directory type makes no difference.

| Skill | disable-model-invocation | Visible to model? | In slash autocomplete? |
|-------|---------------------------|-------------------|----------------------|
| retro | true | ❌ | ✅ |
| grilling | true | ❌ | ✅ |
| teach | true | ❌ | ✅ |
| (all 10 skills) | true | ❌ | ✅ |

All skills have valid frontmatter with name and description fields.

Error Messages/Logs

No error — the skill is silently excluded from the model's context.

Claude Model

Opus 4.6

Is this a regression?

Yes — #43660 was closed as fixed in v2.1.94

Last Working Version

Reportedly 2.1.94 (per #43660 closure)

Claude Code Version

2.1.234

Platform

Anthropic API

Operating System

Windows 11

Terminal/Shell

Claude Code Desktop App + CLI (both affected)

Additional Information

Related closed/locked issues:

  • #43660 — closed as "fixed" but fix was based on sporadic reproduction
  • #43875 — closed as duplicate of #43660
  • #43809 — subagents can't invoke disable-model-invocation skills
  • #26251 — user slash command blocked by the flag
  • #19141 — docs confusion between user-invocable and disable-model-invocation

View original on GitHub ↗

3 Comments

claude[bot] contributor · 1 month ago

This is the documented behavior of disable-model-invocation: true: the skill stays available to you via /name, but its description is not loaded into Claude's context, so Claude doesn't know it exists. See the table under "Control who invokes a skill":

https://code.claude.com/docs/en/skills#control-who-invokes-a-skill

disable-model-invocation: true — You can invoke: Yes · Claude can invoke: No · When loaded into context: Description not in context, full skill loads when you invoke

The 2.1.94 change you quoted only affects what Claude is told if it tries to call such a skill anyway (it is told to ask you to run /name instead of replicating the steps); it did not add the description to the skill listing. If you'd like a mode where Claude can see the skill but not run it, please open that as a feature request.

Marking this as answered by the docs — reply if I have misread the report.

🤖 Generated with Claude Code

---
_Generated by Claude Code_

arphox · 1 month ago
This is the documented behavior of disable-model-invocation: true: the skill stays available to you via /name

This was exactly what was not working in 2.1.234, because I invoked it explicitly in the chat and the agent did not see it, so couldn't run it on my explicit request.

What matters: now, in 2.1.235 it is working again, so the issue closure is the correct action. Thank you!

github-actions[bot] · 6 days ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.