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:
export CLAUDE_CONFIG_DIR=~/.claude-custom
-
Install a plugin from a custom marketplace:
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:
Result: "Unknown skill"
Expected Behavior
/my-plugin:my-skill should invoke the skill, just like the Skill tool does.
What Works
- Skill tool invocation:
Skill tool with skill: "my-plugin:my-skill" works correctly
- Natural language triggering: Describing the task in natural language correctly triggers the skill
- Plugin list:
claude plugin list shows 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 (
extraKnownMarketplaces in 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.
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:
Install a plugin from a custom marketplace:
Launch Claude Code with the custom profile and run
/reload-plugins— output shows the plugin is loaded:The skill appears in the system prompt's available skills list:
Try invoking via slash command:
Result: "Unknown skill"
Expected Behavior
/my-plugin:my-skillshould invoke the skill, just like the Skill tool does.What Works
Skilltool withskill: "my-plugin:my-skill"works correctlyclaude plugin listshows the plugin as installed and enabledclaude plugin validate <path>passesEnvironment
CLAUDE_CONFIG_DIR(not the default~/.claude/)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.