Summary
Two skills in the self-improving-agent (si) plugin use bare name: values that collide with Claude Code built-in slash commands, causing the plugin skill to shadow the built-in when the user types the bare command:
| Skill file |
name: |
Collides with built-in |
skills/status/SKILL.md |
status |
/status |
skills/review/SKILL.md |
review |
/review |
Reproduction
- Install
self-improving-agent@claude-code-skills.
- Type
/status (intending the built-in account/model/connectivity dashboard).
- Claude Code routes to the plugin skill
si:status (memory dashboard) instead of the built-in. Same for /review → si:review.
Confirmed on Claude Code (Windows, Opus 4.8). The client's slash resolver matches the plugin skill's bare leaf name (status) against the built-in namespace and the plugin wins. Usage counters showed the skill firing under both self-improving-agent:status and si:status, confirming loose name matching.
Impact
Users lose easy access to the built-in /status and /review commands after installing the plugin. There is no per-skill disable in stock Claude Code — the only user workaround is editing name: in the plugin cache (overwritten on update) or disabling the whole plugin (loses /si:promote, /si:extract, /si:remember).
Suggested fix
Rename the two skills to namespace-safe values that don't shadow built-ins, e.g.:
status → memory-status (invoked as /si:memory-status)
review → memory-review (invoked as /si:memory-review)
Update the plugin.json description, both CLAUDE.md command lists, and each SKILL.md usage block accordingly. General guidance worth adopting: plugin skill name: values should never equal a reserved built-in command word (status, review, config, cost, model, mcp, doctor, help, etc.).
Environment
- Claude Code on Windows 11, model Opus 4.8
- Plugin
self-improving-agent v2.9.0 via claude-code-skills marketplace
Summary
Two skills in the
self-improving-agent(si) plugin use barename:values that collide with Claude Code built-in slash commands, causing the plugin skill to shadow the built-in when the user types the bare command:name:skills/status/SKILL.mdstatus/statusskills/review/SKILL.mdreview/reviewReproduction
self-improving-agent@claude-code-skills./status(intending the built-in account/model/connectivity dashboard).si:status(memory dashboard) instead of the built-in. Same for/review→si:review.Confirmed on Claude Code (Windows, Opus 4.8). The client's slash resolver matches the plugin skill's bare leaf name (
status) against the built-in namespace and the plugin wins. Usage counters showed the skill firing under bothself-improving-agent:statusandsi:status, confirming loose name matching.Impact
Users lose easy access to the built-in
/statusand/reviewcommands after installing the plugin. There is no per-skill disable in stock Claude Code — the only user workaround is editingname:in the plugin cache (overwritten on update) or disabling the whole plugin (loses/si:promote,/si:extract,/si:remember).Suggested fix
Rename the two skills to namespace-safe values that don't shadow built-ins, e.g.:
status→memory-status(invoked as/si:memory-status)review→memory-review(invoked as/si:memory-review)Update the
plugin.jsondescription, bothCLAUDE.mdcommand lists, and eachSKILL.mdusage block accordingly. General guidance worth adopting: plugin skillname:values should never equal a reserved built-in command word (status,review,config,cost,model,mcp,doctor,help, etc.).Environment
self-improving-agentv2.9.0 viaclaude-code-skillsmarketplace