[BUG] VS Code extension: namespaced /plugin:skill form is not recognized; skills whose name matches a built-in command are unreachable

Resolved 💬 3 comments Opened Jul 5, 2026 by tomoking2004 Closed Jul 5, 2026

Environment

  • Claude Code CLI: 2.1.200
  • VS Code extension: anthropic.claude-code 2.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:

  1. The namespaced /plugin:skill form 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.
  2. 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).
  3. A skill whose bare name matches a built-in command is dropped from those candidates entirely. My plugin groundwork had three skills — context, theory, impl — but typing /groundwork offered only impl and theory; context was missing, presumably because it collided with the built-in /context. Typing /context runs the built-in, and /groundwork:context is 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

  1. Install a plugin providing a skill whose name matches a built-in command, e.g. plugins/groundwork/skills/context/SKILL.md with name: context. (Repro source: https://github.com/tomoking2004/claude-plugins at commit bcf4be9, before I renamed the skill to work around this.)
  2. In the VS Code extension chat input, type /groundwork — only impl and theory appear as candidates; context is absent. Continue typing to /groundwork:th — the candidate list empties by the second character of the skill name. Typing /context runs the built-in /context; typing /groundwork:context shows “No matching commands” and cannot be submitted.
  3. 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.

View original on GitHub ↗

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