[BUG] Plugin skills with user-invocable: true don't appear in slash command autocomplete menu

Resolved 💬 4 comments Opened Jan 11, 2026 by aaaaaandrew Closed Jan 11, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report
  • [x] I am using the latest version of Claude Code

What's Wrong?

There are two related issues with how plugin skills appear in the slash command autocomplete menu:

Issue 1: user-invocable: true frontmatter doesn't show skills in slash menu

Skills registered in a plugin's marketplace.json under the skills array with user-invocable: true in their SKILL.md frontmatter do not appear in the / autocomplete menu, even though the documentation implies they should be user-invocable.

Workaround found: Adding the skill's SKILL.md path to the commands array in marketplace.json makes them partially work (see Issue 2).

Issue 2: Skills added to commands array have inconsistent autocomplete behavior

When skill paths (e.g., ./skills/my-skill/SKILL.md) are added to the commands array as a workaround:

  1. They work when typed directly - typing /my-skill highlights and invokes the skill correctly
  2. They don't appear in the autocomplete dropdown - when typing /, only some skills show up (seemingly the first alphabetically)
  3. They lose the plugin namespace prefix - commands from ./commands/ folder get prefixed with the plugin name (e.g., plugin-name:command), but skills added to the commands array show without any prefix

Observed behavior with 16 skills added to commands array:

  • Only 1 skill (amplitude, first alphabetically) appeared in autocomplete dropdown
  • All 16 skills worked when typed directly (e.g., /sre highlights correctly)
  • None of the 16 skills got the plugin namespace prefix

Commands in ./commands/ folder behave correctly:

  • All 5 commands appeared in autocomplete dropdown
  • All 5 commands got the plugin namespace prefix (e.g., rdc-os:setup)

What Should Happen?

  1. Skills with user-invocable: true should automatically appear in the / autocomplete menu without needing to add them to the commands array
  1. If skills are added to the commands array as a workaround:
  • ALL of them should appear in the autocomplete dropdown (not just the first one alphabetically)
  • They should receive the plugin namespace prefix, consistent with commands from the ./commands/ folder

Steps to Reproduce

  1. Create a plugin with the following structure:

``
plugin/
├── .claude-plugin/
│ └── marketplace.json
├── commands/
│ └── my-command.md
└── skills/
├── skill-a/
│ └── SKILL.md
└── skill-b/
└── SKILL.md
``

  1. In marketplace.json, register skills and commands:

``json
{
"plugins": [{
"name": "my-plugin",
"skills": [
"./skills/skill-a",
"./skills/skill-b"
],
"commands": [
"./commands/my-command.md"
]
}]
}
``

  1. In each SKILL.md, include frontmatter with user-invocable: true:

``yaml
---
name: skill-a
description: My skill description
version: 1.0.0
user-invocable: true
---
``

  1. Install/symlink the plugin and clear cache:

``bash
rm -rf ~/.claude/plugins/cache/my-plugin/
``

  1. Start Claude Code and type /

Expected: See my-plugin:skill-a, my-plugin:skill-b, and my-plugin:my-command in autocomplete

Actual: Only my-plugin:my-command appears. Skills don't appear despite user-invocable: true

  1. As a workaround, add skills to commands array:

``json
"commands": [
"./commands/my-command.md",
"./skills/skill-a/SKILL.md",
"./skills/skill-b/SKILL.md"
]
``

  1. Clear cache and restart Claude Code, type /

Expected: All items appear with consistent my-plugin: prefix

Actual:

  • my-plugin:my-command appears (correct)
  • skill-a appears without prefix (only if first alphabetically)
  • skill-b doesn't appear in dropdown but works when typed directly as /skill-b

Claude Model

Opus

Is this a regression?

I don't know

Claude Code Version

2.1.4 (Claude Code)

Platform

AWS Bedrock

Operating System

macOS

Terminal/Shell

VS Code integrated terminal

Additional Information

The inconsistency suggests that:

  1. The user-invocable: true frontmatter field isn't being read/respected for autocomplete menu population
  2. Skills added to the commands array are being treated differently than files in the ./commands/ folder
  3. There may be a limit on how many items from the commands array are shown in autocomplete, or some filtering logic that's too aggressive

This makes it difficult to create plugins with user-invocable skills that are discoverable via the slash menu. The workaround of adding skills to the commands array only partially works and produces inconsistent UX.

View original on GitHub ↗

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