ailiteracynepal 🇳🇵
Text size

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 /name inside 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

  1. Is it a built-in UI action? (Clear the screen, view help, open settings.) → Slash command. You do not build these; they exist.
  2. Is it a repeated prompt shape you want to invoke in the current session? → Skill.
  3. 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

Your team runs the same "audit these 5 files for X" workflow constantly, and each run explores a lot of files whose raw output you do not want cluttering the main session. What's the right architecture?