[BUG] VS Code extension: namespaced /plugin:skill form is not recognized; skills whose name matches a built-in command are unreachable
Environment
- Claude Code CLI: 2.1.200
- VS Code extension:
anthropic.claude-code2.1.201 (win32-x64) - OS: Windows 11 Home 10.0.26200
Description
The VS Code extension resolves plugin skill commands differently from the CLI, and the combination makes a skill unreachable when its bare name matches a built-in command:
- The namespaced
/plugin:skillform is not recognized as a command in the VS Code extension — the command popup shows “No matching commands” and the input cannot be submitted. In the CLI it works and is disambiguated from built-ins. - Typing
/<plugin>does surface that plugin's skills as autocomplete candidates, but completion cannot carry you to the namespaced form: by the second character of the skill name (e.g./groundwork:th) every candidate disappears. Skills are invoked by their bare name (/skill). - A skill whose bare name matches a built-in command is dropped from those candidates entirely. My plugin
groundworkhad three skills —context,theory,impl— but typing/groundworkoffered onlyimplandtheory;contextwas missing, presumably because it collided with the built-in/context. Typing/contextruns the built-in, and/groundwork:contextis not recognized as a command (per point 1) — so the skill could not be invoked by typed command at all.
The plugin-name segment plays no role in the collision: a plugin named refine coexists fine with a skill named refine provided by another plugin, since only skill names participate in command lookup.
Steps to reproduce
- Install a plugin providing a skill whose name matches a built-in command, e.g.
plugins/groundwork/skills/context/SKILL.mdwithname: context. (Repro source: https://github.com/tomoking2004/claude-plugins at commit bcf4be9, before I renamed the skill to work around this.) - In the VS Code extension chat input, type
/groundwork— onlyimplandtheoryappear as candidates;contextis absent. Continue typing to/groundwork:th— the candidate list empties by the second character of the skill name. Typing/contextruns the built-in/context; typing/groundwork:contextshows “No matching commands” and cannot be submitted. - In the CLI, type
/groundwork:context— the plugin skill runs, distinct from the built-in/context.
Expected behavior
The VS Code extension recognizes the namespaced /plugin:skill form like the CLI does, so a skill shadowed by a built-in under its bare name remains reachable through its namespace — and the skill appears among its plugin's autocomplete candidates.
Actual behavior
The namespaced form is never recognized as a command (“No matching commands”; the input cannot be submitted), and autocomplete abandons it two characters into the skill name; command lookup uses bare skill names only, where a built-in always wins; a built-in-colliding skill is also omitted from the plugin's candidate list.
Workaround
Rename skills so their bare names never match a built-in command, which defeats part of the purpose of namespacing.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗