Open Source

Skills.

Tools I build for my own work, then give away. Free, MIT-licensed, and ready to drop into your agent. Each one is a portable SKILL.md that works in Claude Code, Codex, Cursor, VS Code, Gemini CLI, Windsurf, and every other agent that reads the format.

What a Skill actually is

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.

Skill, MCP server, subagent, or hook?

These get conflated constantly, and picking the wrong one is the usual reason an agent setup feels fragile. The distinction is not about capability, it is about which failure you are actually trying to fix.

Skill
The model has what it needs and still does the work badly. You want a procedure it follows without being reminded.
MCP server
The model cannot see something. Your database, your issue tracker, an internal API. This is access, not instruction.
Subagent
A long investigation would flood your main context with file dumps you will never read. Send it somewhere else and keep the conclusion.
Hook or CI script
It has to happen every single time, whatever the model decides. Determinism is the requirement, so do not leave it to a prompt.

The skills

Socratic

↗

Makes your AI agent check its own work.

Turns Socratic questioning inward: the model names the riskiest assumption in its own plan and refutes it against a real run, test, or the source before shipping, and brings you only the questions that are genuinely yours. Gated and mostly silent, so it stays out of the way on simple work.

Agent SkillClaude CodeCursorMIT

More get published when they survive a few months of my own use. Everything lives on GitHub under MIT, so fork them and change whatever does not fit your setup.

Questions

What is an Agent Skill?
An Agent Skill is a folder containing a SKILL.md file: YAML frontmatter with a name and a description, then a markdown body of instructions. The agent keeps only the description in context at all times and loads the body when the description matches what you are doing. It is a way to give a coding agent a procedure it follows reliably, without paying for that procedure in context on every unrelated turn.
What is the difference between a Skill and an MCP server?
A skill is instructions, an MCP server is access. A skill changes how the model approaches a task it can already do. An MCP server gives the model a connection it does not otherwise have, such as your database, your ticket tracker, or a private API. They solve different problems and are often used together: the MCP server exposes the data, the skill tells the model what to do with it.
Do Skills work outside Claude Code?
Yes. SKILL.md is a plain markdown convention rather than a proprietary format, and it is read by Claude Code, Codex, Cursor, VS Code, Gemini CLI and Windsurf, among others. In practice the skill folder goes in that tool's skills directory, for example .claude/skills for Claude Code or .cursor/skills for Cursor. The same file works in all of them.
When is a Skill the wrong tool?
When the real problem is not instruction-following. If the model cannot see the data it needs, that is an MCP server or a tool, not a skill. If the problem is that a long investigation floods your main context, that is a subagent. If you need something to happen deterministically on every single run regardless of what the model decides, that is a hook or a script in CI. Skills are for the case where the model has everything it needs and still approaches the work the wrong way.
Why does the description line matter more than the body?
Because the description is the only part the agent sees before deciding whether to load the skill at all. A body of excellent instructions behind a vague description never runs. The descriptions that work name the concrete triggers: the file types, the commands, the phrases a user actually types, and, just as importantly, when not to load. Writing that line well is most of the work of writing a skill.