[BUG] disable-model-invocation: true still hides skills from model entirely (regression from #43660)
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:
- See the skill in its available skills list (know it exists)
- Fail if it tries to invoke it via the Skill tool
- Be told to ask the user to run
/skill-nameinstead
Steps to Reproduce
- Create
~/.claude/skills/test-skill/SKILL.md:
``yaml``
---
name: test-skill
description: A test skill.
disable-model-invocation: true
---
# Test Skill
Do something.
- Start a new session
- Ask the model: "Do you see the /test-skill skill?"
- Model does not see it — it is not in the system-reminder skills list
- Remove
disable-model-invocation: truefrom the frontmatter - 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-invocationskills - #26251 — user slash command blocked by the flag
- #19141 — docs confusion between
user-invocableanddisable-model-invocation
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗