Claude Code layers — skills, MCP, subagents, and plugins
Students ask "skill or CLAUDE.md or MCP or subagent or hook?" often enough that it is worth stating the decision cleanly. Use this as a reference while you build Week 2.
CLAUDE.md
Every turnAlways-on project context. Stable facts: stack, folder layout, conventions. Keep it small — only what Claude needs every single time.
Skill
When description matchesOn-demand expertise in a SKILL.md folder, model-invoked. Repeatable workflows; bundle scripts for exact, deterministic steps.
Slash command
When you type /nameUser-invoked actions you trigger yourself — explicit, on-demand.
MCP server
When the tool is calledConnection to external tools and data: vector DB, graph DB, external services.
Subagent
When you delegateIsolated context for noisy work (evals, ingestion) so the main conversation stays clean.
Hook
On the bound eventDeterministic enforcement in the harness — policies that must hold regardless of what the model decides.
Plugin
On installPackage bundling skills, MCP, agents, and hooks — hand the whole capability to your team.
Ready when
The one-line rule
CLAUDE.md is what Claude always knows. A skill is what Claude knows when it needs to. MCP is what Claude can reach. A subagent is where Claude does messy work. A hook is what Claude cannot skip. A plugin is how you hand all of it to someone else.
Portability: Skills follow an open standard. A `SKILL.md` using only the portable core (name, description, plain markdown) works across Claude Code, Claude.ai, and the API. Keep descriptions tight — platform limits cap description at 1,024 characters and name at 64 lowercase-hyphen characters.
Go deeper (optional)