Claude defaults to legacy .claude/commands/ instead of .claude/skills/ when creating custom slash commands

Resolved 💬 3 comments Opened Mar 27, 2026 by karouman Closed Mar 30, 2026

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

  1. Ask Claude Code to create a new slash command or skill (e.g., "create a skill that does X")
  2. Claude creates .claude/commands/x.md instead of .claude/skills/x/SKILL.md
  3. 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.

View original on GitHub ↗

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