Claude Code Skills vs slash commands: what's the difference?
Claude Code Skills and slash commands are related but not identical. Learn how files, invocation, scope, and reusable workflows fit together.
The short answer is: a Skill is the file, while a slash command is the invocation. People often use the terms interchangeably because typing /review is how you activate a Skill, but the distinction matters when you organize a project.
Skill vs slash command at a glance
| Concept | What it is | Example |
|---|---|---|
| Prompt | A one-off instruction in the current conversation | “Review this function” |
| Skill | Reusable Markdown instructions with a defined workflow | .claude/skills/review.md |
| Slash command | The typed trigger used to invoke a command or Skill | /review |
| Subagent | An isolated execution context with its own prompt | A separate code-review agent |
The important consequence is that /review is not magic by itself. Its behavior comes from the instructions Claude loads for that command. The quality of the result depends on the description, the workflow, the boundaries, and the verification steps inside the file.
Where the files live
Project Skills belong in .claude/skills/. They travel with the repository and should contain rules specific to that codebase. Personal Skills belong in ~/.claude/skills/ and are available across projects.
Use project scope for commands such as /check-migrations or /review-actions when the workflow depends on local architecture. Use global scope for workflows such as /commit, /debug, or /branch-readiness that you want everywhere.
project/
└── .claude/
└── skills/
├── review.md
└── check-migrations.md
~/.claude/
└── skills/
├── commit.md
└── branch-readiness.mdIf the same name exists in both places, the project-specific version should win because it knows more about the repository it is operating in.
What belongs in a Skill
A good Skill makes five things explicit:
- The task it handles and when it should be used.
- The first read-only inspection step.
- The files, tools, or boundaries it may touch.
- The checks that prove completion.
- The format of the final report.
For example, a /review Skill should say whether it can edit files. A /ship Skill should say whether it can push. A /check-migrations Skill should state whether it is allowed to connect to a database. Ambiguity is where reusable automation becomes risky.
When a slash command is enough
Not every repeated phrase deserves a Skill. Keep a request as a normal prompt when it is short, one-off, or still changing. Turn it into a Skill when you have repeated it enough to know the stable sequence and the evidence needed to verify the result.
The practical rule is simple: prompts are flexible, Skills are repeatable. Start with the prompt, capture the workflow after the third or fourth repetition, then trim the Skill until a new session can follow it without your private context.
Read the Claude Code Skills examples for complete workflows and the main Skills guide for frontmatter and discovery details.
Get the next post in your inbox
Practical tips for building with AI. One email per post.
Related posts
- Claude Code Skills examples: 7 workflows worth buildingSeven practical Claude Code Skills examples for code review, debugging, documentation, QA, releases, and safe repository work.
- How to use Claude Code Skills in a projectA step-by-step guide to installing, invoking, debugging, and safely improving Claude Code Skills in a real repository.
- Claude Code Skills: The Complete Guide to Using and Building SkillsLearn what Claude Code Skills are, where SKILL.md files live, how slash commands work, and how to build reusable workflows for real projects.