System prompt conflates skills and slash commands in <available_skills>

Resolved 💬 6 comments Opened Jan 2, 2026 by audiovideoron Closed Apr 14, 2026

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

  1. Separate <available_skills> and <available_slash_commands> in the system prompt
  2. Update the Skill tool description to not conflate the concepts
  3. Ensure the system prompt terminology matches the documentation

View original on GitHub ↗

This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗