Slash commands for plugin skills return 'Unknown skill' with custom CLAUDE_CONFIG_DIR
Description
When using a custom profile via CLAUDE_CONFIG_DIR (e.g., CLAUDE_CONFIG_DIR=~/.claude-custom claude), slash commands for plugin-provided skills return "Unknown skill", even though the skill is correctly loaded and functional via the Skill tool and natural language triggering.
Steps to Reproduce
- Set up a custom profile:
``bash``
export CLAUDE_CONFIG_DIR=~/.claude-custom
- Install a plugin from a custom marketplace:
``bash``
claude plugin install my-skill@my-marketplace
- Launch Claude Code with the custom profile and run
/reload-plugins— output shows the plugin is loaded:
````
Reloaded: 3 plugins · 0 commands · 5 agents · 0 hooks · 0 plugin MCP servers
- The skill appears in the system prompt's available skills list:
```
- my-plugin:my-skill: ...description...
```
- Try invoking via slash command:
````
/my-plugin:my-skill
Result: "Unknown skill"
Expected Behavior
/my-plugin:my-skill should invoke the skill, just like the Skill tool does.
What Works
- Skill tool invocation:
Skilltool withskill: "my-plugin:my-skill"works correctly - Natural language triggering: Describing the task in natural language correctly triggers the skill
- Plugin list:
claude plugin listshows the plugin as installed and enabled - Plugin validation:
claude plugin validate <path>passes
Environment
- OS: macOS (Darwin 25.3.0, Apple Silicon)
- Shell: zsh
- Custom profile via
CLAUDE_CONFIG_DIR(not the default~/.claude/) - Plugin installed from a custom marketplace (
extraKnownMarketplacesin settings.json)
Analysis
The slash command autocomplete/resolution system and the Skill tool appear to use different lookup paths. The Skill tool correctly resolves plugin skills from the custom CLAUDE_CONFIG_DIR, but the interactive slash command resolver may be falling back to the default ~/.claude/ directory, missing the plugin registry in the custom profile.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗