feat(plugins): namespace plugin skills with plugin name prefix like commands
Plugin commands registered via commands/ get automatically namespaced with the plugin name (e.g., /ce:triage, /hookify:list), but skills registered via skills/*/SKILL.md do not get this prefix. They appear in slash command autocomplete without any namespace — just /assess-repo instead of /launch:assess-repo.
This creates collisions when multiple plugins define skills with similar names, and makes it harder for users to identify which plugin a skill belongs to. The (plugin-name) label appears in the description but the actual invocation name is unprefixed.
Currently the only workaround is to also create commands/ wrappers that delegate to the skill, but this duplicates definitions and the commands/ format is deprecated.
Acceptance Criteria
- [ ] Skills defined in
skills/*/SKILL.mdare prefixed with the plugin name in slash command autocomplete, matching thecommands/behavior (e.g.,/launch:assess-repoinstead of/assess-repo) - [ ] The
Skilltool also accepts the prefixed form (e.g.,skill: "launch:assess-repo") - [ ] Existing unprefixed invocations continue to work for backwards compatibility (or a migration path is documented)
Notes
- Commands namespace pattern:
plugin-name/commands/foo.md→/plugin-name:foo - Expected skills pattern:
plugin-name/skills/foo/SKILL.md→/plugin-name:foo - Current skills behavior:
plugin-name/skills/foo/SKILL.md→/foowith(plugin-name)label - The plugin name comes from the
namefield inplugin.json - This was discovered while building a multi-plugin repo (replicated-claude-marketplace) where
ce,launch,gtm, andsupportplugins coexist — skill name collisions become likely without namespacing - Reference:
plugins/plugin-dev/skills/command-development/SKILL.mddocuments the command namespacing behavior
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗