Explainer

Agent Skills Explained: SKILL.md, Uses & vs MCP

Agent skills package procedural know-how, your PR conventions, your test gate, your release checklist, into folders the model loads only when a task needs them. Here is how they work, how they differ from MCP, and how to write one that actually fires.

By Kylian Migot · Updated July 2026 · 11 min read

Quick answer

Agent skills are reusable, model-invoked packages of procedural knowledge. Each is a folder with a SKILL.md file, YAML frontmatter (a name and a description) plus Markdown instructions and optional scripts, that the agent loads on demand when a task matches the skill's description. Introduced by Anthropic in 2025, they let you encode “how we do X here” once instead of re-explaining it every session.
What a skill is
A folder with a SKILL.md: name + description + instructions, optional scripts
How it's invoked
Model-invoked, loaded on demand when a task matches the description
Skills vs MCP
Skills add procedure (how); MCP adds capability (tools/data). Complementary
In AIDEN
Inherited from ~/.claude/skills automatically; ships the free AIDEN Method pack
01

What Agent Skills Are, and the SKILL.md Structure

An agent skill is a reusable package of procedural knowledge that an agent loads only when it is relevant. Concretely, a skill is a folder, and the folder contains a SKILL.md file: a Markdown document that opens with YAML frontmatter declaring a name and a description, followed by the actual instructions. Optionally the folder also carries scripts or reference files the instructions can point to. Anthropic introduced this format in 2025 as a portable way to give agents “how-to” knowledge that survives across sessions.

The mechanism that makes skills different from a static conventions file is that they are model-invoked and loaded on demand. The model reads the short description of each available skill and, when a task matches, pulls the full instructions into context, only then. A skill you never trigger costs you nothing but a one-line description. That is the whole trick: procedural knowledge that shows up exactly when the work calls for it.

Here is a small, realistic skill, a repo's pull-request conventions. Note the frontmatter: the name is the trigger, and the description is written so the model can tell from it alone when the skill applies.

---
name: pr-conventions
description: >
  How this repo opens pull requests. Use whenever the task is to
  create, format, or describe a PR, write a commit body, or prepare
  a change for review.
---

# Pull request conventions

- Title: imperative mood, <70 chars, no trailing period.
- Body: a "## Summary" section (1-3 bullets on the why) and a
  "## Test plan" checklist of what you verified.
- One story per PR. Never mix an unrelated refactor into a feature PR.
- Run the test + lint gate before opening; paste the result in the body.
- Link the story/issue id in the description.

That is a complete skill. Drop this file at ~/.claude/skills/pr-conventions/SKILL.md and Claude Code picks it up automatically; the next time you ask it to open a PR, it loads these rules without you pasting them. For a deeper look at file placement and a downloadable set, see the AIDEN Method skill pack.

02

Why They Matter: Procedure That Loads Only When Relevant

The obvious alternative to a skill is to write everything into a durable project context file like CLAUDE.md, or to re-explain your process at the start of every session. Both have a cost. A CLAUDE.md that tries to hold every procedure your repo has ever needed becomes a wall the agent reads on every task, whether the task is a PR, a migration, or a typo fix. Re-explaining by hand is worse: it is tedious, and you inevitably forget a step.

Skills split the difference. Because the model only loads a skill when its description matches the current task, procedural knowledge stops competing for the context window when it is irrelevant. Your release checklist does not sit in the window while the agent fixes a CSS bug. This is straightforward context engineering: relevance beats volume, and skills give you a mechanism to keep the window lean without losing the knowledge.

03

Agent Skills vs MCP: Procedure vs Capability

Skills and MCP are the two most-confused pieces of the modern agent stack, because both “extend” an agent. They extend it in opposite directions. MCP gives the agent new capabilities, tools it can call and data sources it can read, like a database, a browser, or the GitHub API. Skills give the agent procedural knowledge, the instructions for how to carry out a kind of task the way you want it done. One is what the agent can do; the other is how it should do it.

DimensionAgent skillsMCP
What it isReusable instructions / procedural know-how (a SKILL.md folder)A connection to external tools and data (a server the agent calls)
How it's invokedModel-invoked: the model matches the task to a skill's description and loads it on demandTool call: the model explicitly calls an exposed tool when it needs that capability
What it addsProcedure, the how-we-do-X-here knowledge, so output follows your conventionsCapability, actions and information the model otherwise can't reach
When to use itYou keep re-explaining a process, or want consistent conventions across sessionsThe agent needs live data or an action beyond reading files and running shell
Lives in~/.claude/skills/<name>/SKILL.md or a repo's .claude/skills/~/.claude.json (claude mcp add) or a project's .mcp.json

Your AI workspace for shipping software.

Download AIDEN free and point it at your existing Claude Code or Codex setup. No credit card, running in minutes.

Download AIDEN free

Free to start · macOS 12+ · No credit card required

04

Coding Skills Worth Writing

The best candidates for a skill are the processes you find yourself explaining again and again, the ones where consistency matters and the “right way” is specific to your team. Examples that pay for themselves quickly:

Our PR conventions

Title format, the summary + test-plan body, one story per PR, link the issue. The agent opens PRs that pass review the first time, like the example above.

Run the test + lint gate

The exact commands to run before declaring work done, in the right order, with what a green result looks like. Turns 'did you test it?' into a deterministic step.

Spec-first story workflow

Draft a spec with scope, files, and acceptance criteria before writing code, and stop for approval. Encodes spec-driven development as a repeatable procedure.

Release checklist

Bump the version, update the changelog, tag, and the post-release smoke checks, in sequence. Loaded only when the task is cutting a release, invisible otherwise.

Each of these is procedure, not capability, which is exactly why they belong in skills rather than MCP servers. The first three of these are shipped, ready to use, in AIDEN's free skill pack.

05

How to Author a Skill That Actually Fires

A skill is only useful if the model reliably loads it at the right moment and then follows it. The two failure modes are a skill that never triggers (because the description is vague) and a skill that triggers but muddies the work (because the instructions ramble). Author against both:

  1. 1

    Name it by the trigger

    Name the folder and skill after the situation it applies to, not after a feature: pr-conventions, test-gate, release-checklist. The name is the first signal the model uses.
  2. 2

    Write a sharp description

    The description in the frontmatter is what the model reads to decide whether to load the skill. Make it specific about when it applies, list the trigger tasks explicitly ('use whenever the task is to open a PR, write a commit body, or prepare a change for review'). A fuzzy description means the skill fires at the wrong time or never.
  3. 3

    Keep instructions imperative and short

    The body should be direct commands, not essays. Bullet points, exact commands, concrete conventions. Every extra paragraph is context the model has to wade through once the skill loads; terse instructions get followed more faithfully.
  4. 4

    Add scripts for determinism

    For any step that must be exact, running the right test command, formatting output a fixed way, bundle a script in the skill folder and have the instructions call it. Prose asks the model to reproduce a procedure; a script removes the guesswork.
  5. 5

    Test that it fires

    Give the agent a request that should trigger the skill and confirm it loads and follows the instructions, then give it an unrelated request and confirm the skill stays quiet. If it misfires either way, tighten the description before touching the body.
06

Skills, MCP, and Subagents in One Setup

Skills are one layer of a real agent setup, and they earn their keep next to the others. Picture a single story, “add a soft-delete column and expose it in the API”, running through a well-equipped agent:

MCP supplies the facts

The Postgres MCP server lets the agent introspect the real schema; the GitHub MCP server lets it read the issue's full acceptance criteria. Live capability the codebase can't provide.

A subagent does the digging

An exploratory subagent traces every call site of the affected model in its own context and returns just the conclusions, keeping the main window clean.

Skills enforce the how

The migration skill dictates how migrations are structured; the PR skill dictates how the change is packaged for review. Procedure, applied consistently.

The layer that carries all of this, launching the agent, wiring in MCP, managing subagents, and keeping skills available, is the agent harness. Skills are the procedural-knowledge slot in that harness, and they are one of the core practices in the broader discipline of agentic engineering.

07

How AIDEN Uses Skills

AIDEN is a cockpit over your coding-agent CLIs: it orchestrates your local Claude Code and Codex behind a spec-first kanban with a PR per story, and it uses your own inference, your Claude or Codex subscription or API key. Because it runs your existing CLIs rather than replacing them, it inherits your skills automatically. Every skill in ~/.claude/skills or a project's .claude/skills is available to every agent AIDEN launches, exactly as it is when you run Claude Code by hand. Nothing to configure twice.

If you are new to the underlying CLI, the Claude Code tutorial covers the basics that skills build on. Pair skills with the right MCP servers and you have both halves, capability and procedure, of an agent that ships code your way.

FAQ

What are agent skills?
Agent skills are reusable, model-invoked packages of procedural knowledge. Introduced by Anthropic in 2025, each skill is a folder containing a SKILL.md file, a Markdown document with YAML frontmatter (a name and a description) plus instructions, and optionally scripts and resources. The agent loads a skill on demand when a task matches its description, so you package know-how like your PR conventions or release checklist once instead of re-explaining it every session.
What is a SKILL.md file?
A SKILL.md file is the core of a skill. It opens with YAML frontmatter declaring a name and a description, the description is what the model reads to decide whether the skill is relevant, followed by the actual instructions in Markdown: imperative steps, conventions, and pointers to any bundled scripts or reference files. It lives in a folder named after the skill, typically at ~/.claude/skills/<name>/SKILL.md for machine-wide skills or .claude/skills/<name>/SKILL.md inside a repo.
What's the difference between agent skills and MCP?
They solve different problems and are complementary. MCP (Model Context Protocol) gives an agent new capabilities, tools and data connections it can call, like querying a database or reading a GitHub issue. Skills give an agent procedural knowledge, the how-we-do-it instructions the model loads when a task matches the skill's description. MCP adds what the agent can do; skills add how it should do it. A skill can even instruct the model to use a specific MCP tool.
How do I write a Claude Code skill?
Create a folder named after the trigger, add a SKILL.md with YAML frontmatter (name plus a sharp, trigger-oriented description) and short imperative instructions. Keep the description specific so the model knows exactly when to load it, keep the body terse, add scripts for any step that must be deterministic, and then test that the skill actually fires on a matching request. Place it in ~/.claude/skills/<name>/ for every project or .claude/skills/<name>/ to scope and share it via git.
Do agent skills work in AIDEN?
Yes. AIDEN orchestrates your local Claude Code rather than replacing it, so any skill you have in ~/.claude/skills or a project's .claude/skills is available to every agent AIDEN launches, nothing to configure twice. AIDEN also ships the free AIDEN Method skill pack, three skills encoding spec-first, worktree-per-story, and PR-per-story, that you can drop straight into that folder.

Keep reading

Your skills, inherited on every story.

AIDEN runs your local Claude Code, so every skill in ~/.claude/skills is available to each agent it launches, plus the free AIDEN Method skill pack. Free for one project.

macOS 12+ · Bring your own Claude Code or Codex · Your code stays local