Feature: namespace prefix for project plugins (.claude-plugin/)
Problem
Project plugins (.claude-plugin/ in a repo) load their skills into the global / completion list without any namespace prefix. Marketplace-installed plugins get namespaced (e.g., commit-commands:commit), but project plugins do not — their skills appear as /skill-name alongside built-in commands.
For projects with many skills (100+), this makes tab-completion unusable for discovery. All project skills, global plugins, and built-ins are mixed into one flat list.
Expected behavior
The name field in .claude-plugin/plugin.json should optionally act as a namespace prefix, the same way it does for installed plugins. For example, with "name": "jk":
/jk:sync-repos— project skill (scoped completion when typing/jk:)/help— built-in (no prefix)/commit-commands:commit— installed plugin (existing behavior)
Current behavior
The name field in project plugin.json is metadata only. Changing it has no effect on skill invocation or completion. Project skills always appear unprefixed.
Investigation
- Confirmed by inspecting
~/.claude/plugins/installed_plugins.json— only entries there get namespaced - Tried renaming project plugin
namefield — no effect on completions - Docs state "skills are always namespaced" but this only applies to installed plugins, not project plugins
Use case
A project with 140 domain-specific skills where typing a short prefix (/jk:) would instantly filter completions to just those skills, instead of scrolling through a flat list of 160+ mixed commands.
---
🤖 Generated with Claude Code
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗