[BUG] VS Code extension: namespaced /plugin:skill form shows “No matching commands” and cannot be submitted; 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. Throughout, take a plugin groundwork with skills context, theory, impl, where context matches the built-in /context:
- The namespaced
/plugin:skillform is not recognized as a command — the command popup shows “No matching commands” and the input cannot be submitted. In the CLI the form works and is disambiguated from built-ins. - Typing
/groundworkdoes surface the plugin's skills as autocomplete candidates, but completion cannot carry you to the namespaced form: by the second character of the skill name (/groundwork:th) every candidate disappears. Skills are invoked by their bare names (/theory). - A skill whose bare name matches a built-in command is dropped from those candidates entirely. Typing
/groundworkoffers onlyimplandtheory;contextis absent, presumably shadowed by the built-in. Typing/contextruns the built-in, and/groundwork:contextis not recognized (point 1) — so the skill cannot 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 whose skills include one named after a built-in command, e.g.:
````
plugins/groundwork/.claude-plugin/plugin.json # "name": "groundwork"
plugins/groundwork/skills/context/SKILL.md # name: context — collides with built-in /context
plugins/groundwork/skills/theory/SKILL.md # name: theory
plugins/groundwork/skills/impl/SKILL.md # name: impl
Any description/body suffices.
- 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 (“No matching commands”). 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 omitted from its 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.