Compare
Skills vs Slash Commands
These overlap because a custom slash command is the simplest kind of skill — a file at .claude/commands/deploy.md and a skill at .claude/skills/deploy/SKILL.md both create /deploy. The question is how much you need.
| Custom slash command | Skill | |
|---|---|---|
| Lives at | .claude/commands/<name>.md (one file) | .claude/skills/<name>/SKILL.md (a folder) |
| How it runs | You type /<name> | You type /<name>, or Claude loads it automatically when relevant |
| Supporting files | No — just the prompt | Yes — scripts, references, and assets in the folder |
| Context cost | Loaded when you invoke it | Body loads only when used — long reference material costs almost nothing until needed |
| Best for | A quick, repeatable prompt you trigger by hand | A procedure Claude should reach for on its own, or one that needs files |
Reach for a slash command when…
You want a quick macro you trigger by hand — “review my staged changes”, “write a conventional commit”. One Markdown file, no setup.
Reach for a skill when…
You want Claude to apply it automatically when relevant, it bundles scripts or reference files, or it’s long enough that you only want it in context when it’s actually used.