Chapter 05 · Section IV · 8 min read
Skills vs slash commands vs agents
Three primitives sometimes look interchangeable to a new user — slash commands, skills, and subagents. They are not. A short decision tree for which one to reach for.
Every so often you will catch yourself asking “wait — should this be a skill, or an agent, or just a saved command?” It is a good question. The three overlap in scope but differ in exactly what they buy you.
Slash commands
The narrowest primitive. A slash command is a shortcut you type — /help, /clear, /config. Built-in slash commands come with Claude Code and do things like clearing the transcript or opening settings. They are not extensible; they are the tool’s own UI.
Most user-authored “commands” are actually skills. Which brings us to…
Skills
A named, invokable prompt shape. Lives in a directory. Has a manifest, a prompt body, optional attached files. Runs in the current session. Zero cross-session state by default.
Reach for a skill when:
- The workflow is repeatable, self-contained, and worth codifying.
- You want it available as
/nameinside a session. - You want teammates to have it too (project-local skills ship in the repo).
Subagents
A fresh Claude with its own context and its own tools. Runs in an isolated conversation. Returns one summary message.
Reach for a subagent when:
- The task is broad enough that its raw output would clutter your main context.
- You want isolation — the sub-work should not leak into the main thread.
- You want to spawn several in parallel to compress wall-clock time.
The decision tree
- Is it a built-in UI action? (Clear the screen, view help, open settings.) → Slash command. You do not build these; they exist.
- Is it a repeated prompt shape you want to invoke in the current session? → Skill.
- Is it a large sub-task you want to hand off to a fresh instance and get a summary back? → Subagent.
Skills and subagents can compose. A skill can spawn a subagent. A subagent can, in principle, invoke a skill in its own session.
Common confusions
- “My skill is slow because it does a lot.” → It may want to spawn a subagent for the heavy step. Skill on the outside, subagent inside.
- “My subagent keeps making the same mistake.” → The briefing may want to become a skill so the mistake gets fixed once, not every time you spawn.
- “I only need this once.” → Neither a skill nor a subagent. Just write it as a prompt in the current session.
Check your understanding
Quick check
—