System prompt conflates skills and slash commands in <available_skills>
Summary
The system prompt constructed by Claude Code lists both skills and slash commands under <available_skills>, even though they are distinct concepts per the documentation.
Expected Behavior
According to the docs:
- Slash commands: User-invoked with
/command, stored in~/.claude/commands/<name>.md - Skills: Auto-invoked by Claude based on semantic matching, stored in
~/.claude/skills/<name>/SKILL.md
These should be presented distinctly in the system prompt.
Actual Behavior
The system prompt shows:
<available_skills>
<skill>
<name>prime</name>
<description>Load context for a new agent session... (user)</description>
</skill>
...
</available_skills>
But prime is actually a slash command at ~/.claude/commands/prime.md, not a skill.
Additional Confusion
The Skill tool description reinforces this conflation:
"When users ask you to run a 'slash command' or reference '/<something>' (e.g., '/commit', '/review-pr'), they are referring to a skill. Use this tool to invoke the corresponding skill."
This directly contradicts the documentation's distinction between the two concepts.
Impact
When asked about the difference between skills and slash commands, Claude confidently states they're the same thing (because that's what the system prompt implies), leading to user confusion and frustration.
Suggested Fix
- Separate
<available_skills>and<available_slash_commands>in the system prompt - Update the Skill tool description to not conflate the concepts
- Ensure the system prompt terminology matches the documentation
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗