Skills load in three stages, which is what lets an assistant carry dozens of them without drowning in context. At startup it reads only each skill's name and description — about a hundred tokens each. When a request matches one of those descriptions it reads the full instructions. Bundled reference files and scripts load later still, and only if the instructions point at them. The format was created by Anthropic, released as an open standard in December 2025, and is now supported by Claude Code, Cursor, GitHub Copilot, Codex, Gemini CLI and around forty other clients — so a skill written once is portable rather than locked to one vendor.
A skill named crm-field-conventions might be described as "what belongs in each CRM field, and what to leave blank rather than guess." When someone asks the AI to log a call, that description matches, the full instructions load, and the model follows the rule that budget and timeline are never inferred. The rest of the time the skill costs nothing but its one-line description.
An agent is the job and a skill is the method. "Rewrite this call recording into a blog post" is an agent; "our writing voice" and "MEDDICC" are skills it applies while doing that. Agents have triggers, models and tool grants; skills have none of those.
YAML frontmatter with a name and a description, then markdown instructions. Only the name and description are required, and the description matters most because it is what the model matches a request against.
A skill can narrow which tools an agent may use but can never grant one, so installing a skill cannot widen access. The real risk is instructions from an untrusted source, which is why skills imported from elsewhere should be read before they are switched on.
No. An MCP server gives a model new tools — things it can do. A skill gives it procedural knowledge — how to do something well with the tools it already has. Most teams end up with both.