[BUG] user-invocable: false in SKILL.md does not hide skills from slash command menu (VS Code extension)
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 user-invocable: false in their SKILL.md frontmatter still appear as unprefixed slash commands in the / menu. According to the docs (https://code.claude.com/docs/en/skills.md), this field should hide them from the menu while keeping them accessible to agents and Claude's auto-trigger.
What Should Happen?
Skills with user-invocable: false should NOT appear in the / slash command menu. Only command wrappers in commands/ should be visible. Agents should still be able to reference and invoke the hidden skills.
Error Messages/Logs
No error — the field is silently ignored. Skills appear in the menu regardless of the user-invocable value.
Steps to Reproduce
- Create a plugin with a skill at
skills/data-discovery/SKILL.md:
```yaml
---
name: data-discovery
user-invocable: false
description: Migration assessment pipeline
---
- Create a command wrapper at commands/skills/data-discovery.md with allowed-tools frontmatter
- Install the plugin (local or remote marketplace)
- Open the / slash command menu
- Both /data-discovery (unprefixed, should be hidden) AND /cit-data-practice:skills:data-discovery (prefixed) appear
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.89 (VS Code extension)
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
VS Code integrated terminal
Additional Information
Use case: We're building a Claude Code plugin marketplace (cit-data-practice) with agents, skills, and commands. We want skills to be agent-only (hidden from menu) and expose them via prefixed command wrappers in commands/skills/ with allowed-tools. Without user-invocable working, users see duplicate entries in the slash menu — both unprefixed /data- and prefixed /cit-data-practice:skills:data- versions.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗