Claude defaults to legacy .claude/commands/ instead of .claude/skills/ when creating custom slash commands
Summary
When a user asks Claude Code to create a new custom slash command / skill, Claude defaults to creating a file in .claude/commands/<name>.md (the legacy pattern) instead of .claude/skills/<name>/SKILL.md (the current pattern).
Even after adding an explicit directive in CLAUDE.md stating that .claude/commands/ is legacy and .claude/skills/ should be used, Claude still created the file in the legacy location on the very next action. The user had to manually correct it.
Steps to reproduce
- Ask Claude Code to create a new slash command or skill (e.g., "create a skill that does X")
- Claude creates
.claude/commands/x.mdinstead of.claude/skills/x/SKILL.md - Even adding a CLAUDE.md rule like _"
.claude/commands/is legacy — always use.claude/skills/for new skills"_ does not prevent the behavior
Expected behavior
Claude should default to the .claude/skills/<name>/SKILL.md format, since skills are the current recommended approach and commands are legacy.
Context
The system prompt / built-in instructions appear to still reference the .claude/commands/ pattern for slash commands, which overrides project-level CLAUDE.md directives.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗