A skill is a folder with a SKILL.md inside it. The file opens with YAML frontmatter carrying a name and a description, and everything after that is plain markdown telling the agent how to do one thing properly.
The mechanism that makes this interesting is what the agent keeps in memory. Only the description stays in context. The body loads when the description matches the work in front of it, and stays unloaded the rest of the time. So you can write two thousand words on how to handle database migrations without those two thousand words following the model into every conversation about CSS.
That constraint has a consequence most people discover the hard way: the description line is the skill. A brilliant body behind a vague description simply never runs. The descriptions that work read like triggers rather than summaries, naming the file types, the commands, and the phrases a person actually types, along with the cases where the skill should stay out of the way.
Anthropic's own public skills repository is the clearest illustration of why the format earns its place. Its document skills do not teach the model to imagine a spreadsheet and print it as text. They tell it to reach for openpyxl and write a real file. The skill is not adding intelligence. It is removing a bad habit and replacing it with a procedure that holds up.