CONCEPTS — MODULE 02

Skills vs. commands

Both are tools you can give Claude. They work in fundamentally different ways — knowing when to use which matters.

What skills are

Skills are folders in .claude/skills/ (project) or ~/.claude/skills/ (personal), each containing a SKILL.md file with YAML frontmatter. Claude reads the frontmatter description and invokes the skill when a task in your session matches — you don't have to ask for it by name.

Plugin-installed skills (like /source-verification from the journalism-skills plugin) often also expose a slash command so you can call the skill directly if you want to skip the auto-detection step.

How closely Claude follows those instructions, which parts it emphasizes, how it formats output — all of that involves judgment. A skill is reference material the model consults, not a script it executes.

What custom slash commands are

A custom slash command is a single .md file in .claude/commands/ (project) or ~/.claude/commands/ (personal). The filename becomes the slash — source-check.md becomes /source-check. You type the slash yourself to run it.

That's the core distinction: skills are probabilistic and get picked up automatically (Claude decides how to apply the knowledge, based on the task at hand); custom slash commands are deterministic and explicit (you type the slash, the workflow runs as defined, in the order defined, every time).

A journalism analogy

Compare a style guide to a pre-publication checklist. A style guide is reference material — reporters consult it when something needs checking, and how strictly they apply it varies by context and experience.

A pre-publication checklist is a fixed sequence: every story goes through these exact steps before it publishes, in this order, no skips. Skills are style guides. Commands are checklists.

Skill + command = reliable domain expertise

The pattern that works: put domain knowledge in a skill — the SIFT verification method, AP Style enforcement, FOIA request guidelines — then add a custom slash command that explicitly invokes the skill for tasks where you need guaranteed execution.

The skill holds the expertise. The slash command ensures it runs when you need it, not just when Claude decides it's relevant.

When to use each

If you need contextual judgment about when and how to apply expertise, write a skill. If you need a defined workflow to execute the same way every time — batch processing, pre-publish checks, report generation — build a custom slash command around it.

Many tasks start as skills and get promoted to commands when the process stabilizes. When you find yourself using a skill the same way every time, that's the signal to wrap it in a command.

SOURCE: Adapted from the "Commands as lightweight local apps" pattern in Advanced Claude Code Patterns That Move the Needle by The Agentic Lab.

NEXT: Head to Module 2 to write your first custom slash command and install the journalism-skills plugin.