As of v2.1.3 (January 10, 2026), Claude Code merged slash commands into skills. I found out because I stepped away from a project for a few weeks and /vibe-article came back as “Unknown skill” instead of running my command workflow. The fix was quick, but it’s worth understanding what changed.
For a full guide on what skills are and how to use them, check out Skills: The Complete Guide.
WHAT CHANGED
Commands and skills are now the same system. A file in .claude/commands/review.md and a skill in .claude/skills/review/SKILL.md both create /review and work the same way at a basic level. The .claude/commands/ folder is still supported, but .claude/skills/ is the recommended location going forward.
The big practical difference is that skills use directories instead of single files, so you can organize supporting files alongside the skill:
.claude/skills/vibe-article/
├── SKILL.md # The main skill instructions
├── voice-checklist.md # Supporting reference
└── templates/
└── frontmatter.md # Template Claude can reference
HOW TO MIGRATE
Just tell Claude to do it:
I need to migrate my slash commands from .claude/commands/ to .claude/skills/.
First, research the current skills format and frontmatter requirements
so you get it right. Then migrate each command, keeping the same content
but using the correct directory structure and frontmatter.
Claude will create the new directories, copy your files over, and update the frontmatter. Confirm your /commands work, then delete the old .claude/commands/ versions. This isn’t optional cleanup, it’s important.
Things to know:
- If you have both a command and a skill with the same name, the skill takes precedence, but both register in the slash command menu, so you’ll see duplicates when you type
/ - Having both can also cause weird invocation issues where the old command version gets blocked with a “This slash command can only be invoked by Claude, not directly by users” error
- Once your skills are working, delete the matching command files and remove the
.claude/commands/directory if it’s empty - You don’t need to restart Claude Code after creating skills (unlike the old commands)
If you want to do it manually, here’s what changes per command:
- Create a directory:
.claude/skills/your-command-name/ - Copy your command file in as
SKILL.md - Add
name:to the frontmatter
Old format (.claude/commands/vibe-article.md):
---
description: Create blog article from backlog or new idea
---
New format (.claude/skills/vibe-article/SKILL.md):
---
name: vibe-article
description: Create blog article from backlog or new idea
---
The body of the file stays exactly the same.
NOT JUST YOU There’s a GitHub issue about the docs being inconsistent on what “merged” actually means, and people writing about the transition. If your commands broke, you’re not alone.
GOING FORWARD
New slash commands should go in .claude/skills/. Skills give you a lot more than commands did - invocation control, subagent execution, dynamic context injection, tool restrictions, and supporting files. I cover all of that in the complete skills guide. Everything from the original slash commands article about writing good workflows and deciding what belongs in CLAUDE.md vs a command still applies.