Skills

Agustín Sánchez • 22 OCT 2026

A Practical Guide to Agent Skills for AI Coding Agents: Use Them, Build Them, Contribute

post cover picture

If you work with AI coding agents, you may have a folder of prompts somewhere. A code review checklist. A release-notes format. The exact way your team writes migrations. You paste them in at the start of a session, the agent does the thing, and then that knowledge evaporates when the context window resets. Next session, you paste again.

Agent skills fix that. A skill packages a workflow once, as files the agent loads on demand, and reuses it across every conversation, whether your team works in Claude Code, Cursos, GitHub Copilot or Codex. For an engineering team, that means your conventions, reviews and audits run the same way every time, no matter who opens the session. 

This guide covers what skills are, how they compare to MCP, how to use them, and how to build your own. At the end, we share the open-source skills we just released at Eagerworks, which you can install today or contribute to.

What are agent skills?

A skill is a folder with a SKILL.md file at its root, plus optional supporting directories:

<pre><code class="language-plaintext">my-skill/
├── SKILL.md        # Required: metadata + instructions
├── scripts/        # Optional: executable code the agent can run
├── references/     # Optional: extra docs loaded on demand
└── assets/         # Optional: templates, logos, data files
</code></pre>

The SKILL.md file starts with YAML frontmatter that declares two required fields, name and description, followed by markdown instructions. That is the whole contract.

The mechanism that makes skills useful is progressive disclosure. The agent does not load every skill into context at startup. It preloads only the name and description of each installed skill, which is a few tokens. When a task matches a description, the agent reads the full SKILL.md into context. If that file references files in references/ or assets/, the agent pulls those only when the task actually needs them. Code in scripts/ can run without entering the context window at all.

This is the difference between a skill and a long pasted prompt. A pasted prompt sits in context the entire session, consuming tokens and competing for the model's attention whether the task needs it or not. A skill keeps its detail on disk until the moment it applies.

Skills also went from an Anthropic feature to an open standard, now specified at agentskills.io and adopted across a growing set of agent products. You build a skill once and run it on any skills-compatible agent.

Agent Skills vs. MCP, prompts, and AGENTS.md

Engineers ask this immediately, so here is the short version.

Skills vs. prompts. 

A prompt is text you supply each time. A skill is procedural knowledge that loads automatically when relevant and stays out of context when it is not. If you paste the same instructions across sessions, that is a skill waiting to be built.

Skills vs. MCP. 

MCP (Model Context Protocol) gives an agent access to external tools and data: a database, an issue tracker, an internal API. Skills are the knowledge layer. They guide the agent through multi-step workflows, including how and when to call those MCP tools. The two compose. If you already run an MCP server, a skill captures the workflow on top of it so the agent applies your process consistently.

Skills vs. AGENTS.md. 

A AGENTS.md file is always-on context, loaded for every task in a project. Skills load on demand. Put genuinely global context in AGENTS.md. Put task-specific procedures in skills, so they activate only when that task comes up and do not tax every other interaction.

How to use agent skills in Claude Code, Cursor and Copilot

Because skills are an open format, the same skill folder runs in any skills-compatible agent without modification: Claude Code, Cursor, GitHub Copilot, Codex, Amp, and a growing list of others. You do not write one version per tool. A skill your team writes for Claude Code works in Cursor as-is.

Install with the skills.sh CLI. 

The simplest path is the open-source skills.sh CLI. It detects the coding agents you have installed and puts the skill where each of them looks for it:

<pre><code class="language-bash"># install a skill from any public repository
npx skills add &lt;owner&gt;/&lt;repo&gt; --skill &lt;skill-name&gt;

# target specific agents
npx skills add &lt;owner&gt;/&lt;repo&gt; --skill &lt;skill-name&gt; -a claude-code -a cursor
</code></pre>

Skills install into your project by default, so they can be committed and shared with your team. Add -g to make them available in every project.

Or vendor the folder yourself. 

A skill is just files, so you can copy it into your repository. Agents with native skills support pick it up from their skills directory. For agents that work from a rules or instructions file (AGENTS.md, Cursor rules, Copilot instructions), add a short pointer telling the agent to read the skill's SKILL.md when the task is relevant. Either way, every agent reads the same files, so there is nothing to keep in sync between tools.

How your agents picks the right skill

Invocation is implicit. You do not call a skill by name, you describe the task, and the agent matches it against the installed descriptions. In practice it looks like this:

"Review the changes on this branch before I open the PR"

The agent recognizes the match, loads the skill, and follows its instructions. The quality of that matching depends almost entirely on how you write the description, which brings us to building your own.

How to build your own skill

The smallest useful skill is a single SKILL.md file. Here is a complete one that standardizes pull request descriptions:

<pre><code class="language-markdown">---
name: pr-description
description: >-
  Write a pull request description from a git diff or a list of
  changes. Use when the user asks for a PR description, PR summary,
  or wants to open a pull request.
---

# PR Description

Produce a pull request description with these sections:

## Summary
One or two sentences on what changed and why.

## Changes
A bullet list of the concrete changes, grouped by area.

## Testing
How the change was verified. State the commands run.

## Notes
Breaking changes, follow-ups, or risks. Omit if none.

Keep it factual. Do not invent testing that was not described.
</code></pre>

That file alone is installable and works. A few principles separate a skill that triggers reliably from one that sits unused.

Best practices for skills that actually get used

To scaffold the folder structure and a starter SKILL.md, use Anthropic's open-source skill-creator skill, which walks you through it interactively and, like any skill, runs in any compatible agent.

Agent skills security: how to vet a skill before you install it

Skills can include code that the agent executes, which is what makes them powerful and also what makes them a risk. A malicious skill can direct an agent to run commands or call tools in ways that do not match its stated purpose, leading to data exfiltration or unauthorized access.

The rule is simple: install skills only from sources you trust, meaning ones you wrote or obtained from a known publisher. Before running a skill from anywhere else, audit every file in it, the SKILL.md, the scripts, and the referenced resources, and look for network calls or file access that do not fit the skill's job. An open, version-controlled repository is the auditable path here, which is exactly what we built.

Our open-source skills

We collected the skills our team relies on and open-sourced them. They cover the work we do most: committing and opening pull requests, reviewing code, documenting decisions, designing APIs, deploying, and auditing the codebases we build and inherit for client projects. Every skill is a plain folder you can read end to end before you run it, and each one follows the progressive-disclosure pattern described above: a lean SKILL.md hub, detail in references/, and copyable templates in assets/. Each skill also ships a CHANGELOG.md and a semver version, so you can see what changed before you pull an update.

Open-source agent skills you can install today

Git workflow and AI code review

Documentation

API design

Deployment

Codebase audits and compliance

Coming soon: new agent skills in open pull requests

These are in open pull requests on the repository right now. Follow along, try them from their branches, or leave a review.

How to install the Eagerworks skills

Every skill works in any skills-compatible agent. Use the skills.sh CLI, which supports Claude Code, Cursor, GitHub Copilot, Codex, Amp, and dozens of other agents:

<pre><code class="language-bash"># install a single skill
npx skills add eagerworks/skills --skill pr-review

# pick interactively, or install everything
npx skills add eagerworks/skills
npx skills add eagerworks/skills --all
</code></pre>

Or vendor the repository and point your agent at the skill you want. The repository README has copy-paste setup for Claude Code, Cursor, GitHub Copilot, and AGENTS.md-based agents like Codex and Amp:

<pre><code class="language-bash">git clone https://github.com/eagerworks/skills
</code></pre>

How to contribute your own agent skill

The repository is open to contributions. If you have a workflow your team repeats, package it as a skill and open a pull request. A good contribution includes a clear SKILL.md with a description that states when the skill applies, a minimal working example, and any scripts or references kept self-contained in the skill folder. Check the repository's contributing guide for conventions and the review flow.

Get started with agent skills in your AI coding agent

Agent skills turn the prompts you keep re-pasting into capabilities your agent loads on its own. Build one in minutes, run it everywhere, and share it with your team through version control.

Browse the repository, star it if it is useful, and try the skill closest to your work first. If you build something worth reusing, send a pull request. We review them.

github.com/eagerworks/skills

 

Stay updated!

project background