/reload-plugins doesn't rebuild slash-command index
Description
/reload-plugins loads skills into the model context (system reminder) but does not rebuild the / command parser index (autocomplete + direct invocation). This means plugin changes made mid-session (install, uninstall, marketplace edits) won't register as / commands until Claude Code is fully restarted.
The output message — Reloaded: 23 plugins · 68 skills · 34 agents — implies a full reload occurred, which is misleading.
Repro
- Start a fresh Claude Code session
- Install a new plugin mid-session:
/plugin install fabula-nf@sefirot-marketplace /reload-plugins→ reports skills loaded successfully- Type
/fabula-nf:essays→ "Unknown skill" - The skill IS available via the Skill tool (model can invoke it) and appears in the system reminder
- Exit and restart Claude Code
- Type
/fabula-nf:essays→ works
Also reproducible in reverse:
- Start session with brando installed →
/brando:analysisworks - Uninstall brando mid-session →
/reload-plugins /brando:brand-audit→ still works (stale command index)- Restart → brando commands correctly gone
Expected
/reload-plugins rebuilds the command index so / autocomplete and direct invocation reflect the current plugin state — or the output message indicates a restart is required.
Actual
Two separate registration systems exist:
- Model-facing (system reminder): rebuilt on
/reload-plugins✓ - Command parser (
/autocomplete + direct invocation): only built on session start ✗
Environment
- Claude Code 2.1.81
- Linux (OrbStack)
🤖 Generated with Claude Code
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗