Subagents vs Skills, fully explained
When to use which, at a glance.
They look alike, but behave differently
Both are "frontmatter + Markdown body" files, but a subagent runs in an isolated context once delegated, while a skill loads directly into the current conversation.
Frontmatter side by side
Subagents add `model`/`tools`; skills usually need just `name` and `description`.
# Subagent (.claude/agents/reviewer.md)
---
name: reviewer
description: Code-review specialist. Use for reviewing PR diffs.
model: sonnet
tools: Read, Grep, Glob, Bash
---
# Skill (.claude/skills/keihi-seisan/SKILL.md)
---
name: keihi-seisan
description: Expense workflow. Use when asked to reimburse.
---A 3-question decision flow
1) Want it isolated from the main conversation? → subagent. 2) Just want a procedure run inline? → skill. 3) Is it a project-wide always-on policy? → CLAUDE.md.
Don't over-mix the two
Cramming a skill's whole procedure into a subagent's body wastes the isolation benefit; cramming multiple roles into one skill's description hurts trigger accuracy.
Converting one into the other
You can carve a skill's steps into a new subagent file (adding model/tools), or shrink an overgrown subagent into a skill — both can coexist while you test the switch.