Plugin command/skill named "doctor" is invoked instead of built-in /doctor
What happened
A plugin that ships a slash command (and skill) named doctor is invoked when I type the built-in /doctor. Selecting the bare /doctor entry in the command picker still runs the plugin's cc-suite:doctor instead of Claude Code's built-in /doctor health check.
The plugin (cc-suite) ships both a command and a skill named doctor:
commands/doctor.md→ frontmattername: doctor→ registers as/cc-suite:doctorskills/cc-suite/doctor/SKILL.md→ frontmattername: doctor→ registers ascc-suite:doctor
So three things compete for the token doctor: the built-in /doctor command, the plugin command cc-suite:doctor, and the plugin skill cc-suite:doctor.
What I expected
Per the slash-commands docs, built-in commands take precedence and cannot be overridden, and plugin commands are namespaced (plugin:command) specifically so they don't collide with bare built-ins. Typing/selecting bare /doctor should always run the built-in.
What actually happened
Bare /doctor resolves to the plugin's cc-suite:doctor instead of the built-in.
Possibly related
#15065 ("Skill takes precedence over slash command when both have the same name", closed) documents an analogous precedence collision where a same-named skill won over a command. Because cc-suite defines doctor as both a command and a skill, this may be the skill-precedence path winning over the built-in rather than a plain plugin-vs-built-in issue.
Questions
- What is the documented resolution precedence among (a) a built-in command, (b) a plugin command, and (c) a plugin skill that all share the bare name
doctor? - Should a plugin command/skill ever be reachable via a bare built-in name? If not, this is a resolver bug.
Environment
- Claude Code 2.1.150
- macOS (darwin)
- Plugin:
cc-suite(installed from a marketplace)
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗