[BUG] Slash command autocomplete truncates and randomly samples skills when total count exceeds display limit
Describe the bug
When multiple plugins are installed and their combined skill count exceeds the autocomplete dropdown's display limit (~6 items), the list is randomly sampled on each invocation. Skills are shown or hidden non-deterministically, making discovery unreliable.
This is distinct from existing reports where plugin skills don't appear at all — the skills do appear, but only a random subset is shown each time.
The problem is compounded by cross-plugin name matching: when you type /acme, the autocomplete also surfaces skills from other plugins whose skill names contain the word "acme" — further consuming display slots and crowding out skills from the actual acme plugin.
To reproduce
- Install two plugins that together define more than ~6 user-invocable skills:
- Plugin
acmewith skills:deploy,rollback,status,logs,test-unit,test-integration,validate-config - Plugin
acme-internalwith skills:internal-debug,internal-reprovision
- Install a third unrelated plugin
devtoolsthat happens to have a skill namedacme-migrate
- Type
/acme:in the Claude Code prompt
- Note which skills appear in the dropdown
- Clear the input and type
/acme:again
Expected behavior
All skills matching the prefix are shown (scrollable list), or at minimum a stable, deterministic subset. Cross-plugin name matches should either be clearly separated or shown after the primary plugin's skills.
Actual behavior
A different random subset of ~6 skills is shown each time. Skills from an unrelated plugin (devtools) pollute the results because their skill name contains "acme". Example across two attempts at /acme::
Attempt 1:
/deploy (acme) Deploy service
/test-unit (acme) Run unit tests
/validate-config (acme) Validate configuration
/rollback (acme) Rollback deployment
/acme-migrate (devtools) Migrate acme resources ← unrelated plugin, consumes a slot
/logs (acme) Fetch logs
Attempt 2:
/status (acme) Check service status
/test-integration (acme) Run integration tests
/deploy (acme) Deploy service
/internal-reprovision (acme-internal) Reprovision service
/acme-migrate (devtools) Migrate acme resources ← always appears, takes a slot
/rollback (acme) Rollback deployment
Note: validate-config, logs, test-unit disappeared between attempts. acme-migrate from the unrelated devtools plugin consistently occupies one of the ~6 slots, making it even harder to see all acme plugin skills. Skills like validate-config may never surface for a user who doesn't already know its name.
Environment
- OS: macOS
- Claude Code version: latest
Related issues
- #18949 — plugin skills not appearing at all (different root cause)
- #28555 — plugin skills only visible after typing prefix
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗