Skills are becoming the de facto way humans interact with agents and LLMs, but mostusers are about to build the wrong version of the thing the market has already converged on. In the six months between October 2025 and April 2026, four separate teams shipped the same primitive.
Anthropic kicked off the trend back in October, launching Agent Skills across Claude.ai, Claude Code, the Agent SDK, and the Developer Platform.
Microsoft built the same primitive into Visual Studio 2026 in April, with Copilot auto-discovering SKILL.md files from the repo.
Google announced its official Agent Skills repository at Cloud Next in March across seven of its data and platform products, and measured the lift inside its own evaluation. Adding the Gemini API skill took agent code-correctness from baseline to 96% on Gemini 3.1 Pro.
OpenAI rolled out Skills in ChatGPT and Workspace Agents through the same window.
The convergence ran wider than the vendors themselves. The practitioners who build skills at scale started publishing how they actually work, and the architecture they describe rhymes across every source.
Anthropic's claude-for-legal plugin ships 151 SKILL.md files across thirteen practice areas, written for the most regulated profession in existence.
Y Combinator president Garry Tan published his Thin Harness, Fat Skills doctrine.
Product leader Aakash Gupta ran seventy-five skill-tests and distilled ten failure-mode laws.
Every Inc.'s compound-engineering plugin formalised its own skill-authoring framework.
Four independent teams, talking to four overlapping audiences, with the same structural parts showing up in every one of them.
The category is starting to set. The interface between a human and an agent, for any work that runs more than once, runs on someone else's behalf (or runs unattended), is no longer the chat window. It is the skill, and the trap is already forming inside this same shift: a saved prompt in a folder is not a skill. A prompt tells Claude what to do once, while a skill tells Claude how to behave every time the situation reappears. The difference looks small inside a document, but it is the entire difference between AI as a chat window and AI as part of the operating system of a business.
The thing is most users ship their first skills, which are just prompts in costume. They will paste a prompt that works into a folder (or use Anthropics 'skill-creator') add some frontmatter, and call it a skill.
The file fires and returns output, which, by every visible signal, it works. The architecture underneath is missing every structural part, which means Claude has nothing to anchor against the next time the situation appears.
This long read is the architectural vocabulary to tell the difference, and the way to actually start building skills well from the next one. Depending on your AI journey to date, you might want to skip ahead:
Section 1: What is a skill and is it for me?
Section 2: How to create a great skill.
Section 1: What is a skill and is it for me?
What a skill actually is
I broke this down in detail here. Repeating the definition:
Think of a Claude Skill as an ability that Claude can unlock, like giving it a new power or special training. Once Claude has been taught this new ability, it instantly knows the ability exists, what it does, and it will automatically invoke that Skill whenever it’s relevant. This is the game changing part:
Creating a presentation: Claude instantly loads your brand guidelines and applies them without you asking.
Analysing data: Your analysis framework is already active and ready to use.
Writing content: Your blog or report guidelines shape the piece around your company’s preferred flow (introduction, context, key points, and takeaway) without you needing to explain it.
Literally speaking, a Claude Skill is a:
Zipped folder that contains instructions and resources teaching Claude how to perform a specific task consistently and accurately.
Inside that folder is a SKILL.md****(markdown) file (which holds the main instructions), plus any supporting materials: code scripts, image assets, data files, or documentation.
Once the folder is uploaded, Claude loads only what it needs: first the name and description, then the full SKILL.md if relevant, then bundled files as required.
The formula: Skill = prompt + tools + assets.
Major benefits:
This means you can package effectively unlimited context without bloating your conversation window.
Skills can contain Python scripts that execute. PDF extraction becomes deterministic. Data transformations become reliable.
This isn't a saved prompt. It's a portable AI workflow built in natural language instead of a drag-and-drop builder.
For example, when turning podcast transcripts into the relevant meta data and information for YouTube, Spotify, The AI Corner Corner newsletter, and a summary post for LinkedIn, this used to require copy-pasting transcripts and outputs from one Claude Project or Custom GPT to the next, with a lot of back and forth to improve the output to my liking. With Claude Skills, I've automated this process from transcript through to uploading the content into the relevant platforms, along with other checks, for uploading into the relevant apps.
As you can see, skills are not just a developer feature, they work for anyone interfacing with the internet and documents on a computer.
**The clearest way to understand a skill is to think about how a workplace operates.**When a new staff member arrives, no one hands them an encyclopedia of every fact the business knows. They get three things instead.
A job description, which is bounded. It tells the person what their role is, when they step in, what good looks like, what they hand off to whom, and what is out of their scope.
**A map of where everything lives.**Where the keys are, which drawer holds the files, which folder on the shared drive holds the client work. Which playbook is the current one and which is last year's. Where the printer login lives, and who to ask when something is missing.
**A sense of how to think, not just what to do.**The encyclopedia would tell them every fact, while the job description tells them which decisions are theirs to make and which decisions get escalated.
A skill is the agent equivalent. It is not a knowledge dump, it is the artefact that hands Claude the role, the locations, and the judgement. When the situation appears, Claude is told:
what it is doing
where to read first
where to write
which file to check before generating
what to refuse, and
what to escalate to a human.
The skill is operational, not exhaustive.
To be super clear, the cleanest one-line definition the skill-building doctrine arrived at is a skill works like a method call: it takes parameters, so the same procedure with different parameters produces radically different outputs.
A skill called /investigate can run a thousand different investigations from one file, while a skill called /investigate-client-X is the same procedure hardcoded for one case. The difference between a real skill and a saved prompt is often that a real skill is built to be re-used with new parameters, while a saved prompt is built to be re-used unchanged.
Across every major vendor, the file format is the same. A folder, with a SKILL.md file inside it carrying a small YAML header (structured metadata written at the top of a file commonly used to give AI systems extra instructions and context before the main content starts) at the top and plain instructions in the body. Sometimes supporting resources live alongside it. It's the same name and same shape, on Anthropic, Microsoft, Google, and the OpenAI agent layer.
The portable definition
Three questions sort any artefact onto the right side of the line:
If the artefact tells Claude what to do once, it is a prompt.
If the artefact is a knowledge dump Claude can search, it is a reference or a wiki.
If the artefact tells Claude how to behave every time the situation reappears, hands Claude the keys to the relevant data, and accepts new parameters each time it fires, it is a skill.
What this looks like in real life
Take a user who drafts client follow-up emails. On average, they have a saved prompt they paste in three times a week. It tells Claude the tone, the structure, what to avoid, and maybe a few lines of context about the deal stage. The output is good, and they have been using it for months. By every visible signal, it works.
That is a prompt. The prompt is useful and reliable, but it is not a skill.
The skill version of the same job is a different artefact. It reads the user's CRM context before drafting, and refuses to draft when the deal stage is missing, telling the user which file to update.
It follows the same section order every time. It scope-fences the parts of the email it will not write, such as the compliance disclosures or the signature block, pointing at the sibling skill or template that owns those.
It exits by confirming the draft path and offering to send it. Every correction the user makes to the output gets appended back to the file, so the next draft does not need the correction.
It's the same job, the same user, on the same Claude account. One file is a prompt the user pastes in three times a week. The other is a method call Claude fires the same way every time the situation appears. Once an user sees the difference between those two artefacts, the rest of this article becomes the work of converting one into the other.
Section 2: How to create a great skill.
The architecture of a great skill.
A great skill has two jobs.
First, it has to fit cleanly into the wider system around it. That is the outside architecture.
Second, the skill file itself has to be well structured. That is the inside architecture.
In simple terms: a great skill needs to be well placed and well built.
A beautifully written skill can still fail if it sits inside a messy system. A clean system can still fail if the skill asks the AI to do work it is bad at, like counting rows or checking exact numbers.
So we need to look at both sides: the system around the skill, and the structure inside the skill.
What follows is four layers:
The system around the skill The three architectural realities every great skill depends on.
The structure inside the skill The six parts every strong skill file needs.
The improvement loop How a one-time skill becomes reusable infrastructure that gets better over time.
The skill factory The meta-skill that helps build better skills.
Architectural Reality 1: The skill is where the brain lives. Everything else stays thin.
Every agent platform has two layers.
There is the platform layer, where the always-on rules live. In Claude Code, that file is CLAUDE.md. In ChatGPT, it is the workspace configuration. In Microsoft Copilot, it is the Copilot setup panel.
Then there are the skills, which only load when their situation appears.
Most users put all their rules in the always-on layer because it feels like the most important place. That is the mistake.
Every rule in the always-on layer costs the agent attention on everything it does, even when the rule has nothing to do with the task. The rules pile up, the agent's attention gets divided, and the output gets worse (example below visualising how bloating the context window where an agent works results in context rot = output degradation).
Garry Tan, who runs his own Claude library, hit this wall in public. His always-on file grew to twenty thousand lines. The agent got worse at every task. He cut it down to two hundred lines of pointers. Each pointer says "if this situation appears, load this skill", and the agent's output improved across every task at the same time.
The move is the same on every platform. Keep the always-on rules layer small, push the actual work down into the skills, which only load when the situation appears. The skill carries the knowledge, whereas the always-on layer just points at the right skill at the right time.
Architectural Reality 2: The agent is great at thinking and terrible at counting. A skill has to know the difference.
The harder truth is that this is the most expensive mistake a user can make in a skill, and it is the hardest to spot from the outside.
The agent is brilliant at specific kinds of work: jobs like reading, interpreting, synthesising, writing in a particular voice, spotting patterns in a long conversation, and choosing between three plausible options when context matters. Give the agent this kind of work and it is extraordinary.
The agent is largely terrible at a different kind of work: counting the rows in a list, comparing two numbers, working out which of two dates came first, checking that a code is in the right shape, or doing maths. Give the agent this work and it will hand back a plausible-looking answer that is wrong, where the number is off by one or the date is off by a week. The models are certainly improving in accuracy for this kind of deterministic work.
The technical names for these two kinds of work are "latent" and "deterministic". An every day user does not need the jargon. The shorthand is thinking work (latent) and counting work (deterministic).
Thinking work belongs with the agent.
Counting work belongs with a small script the agent calls.
Increasingly teams are realising not everything requires and agent, and hybrid approaches of using thinking and counting techniques are a great combination.
Challenge is the output often looks right, and nobody notices until something downstream breaks, and by then the damage is done.
A real skill names every step as one or the other and routes each one to the right place. The agent does the thinking, whereas a script does the counting. The script hands the answer back to the skill, and the agent thinks about what to do next. The agent never makes up a number or a date itself.
A user working entirely inside a web app like Claude.ai or ChatGPT and has never touched a script, but the principle still applies. Modern agent platforms have a built-in calculator, a built-in date function, or a sandboxed code cell where the agent can run a few lines of code on demand. The script does not need to be impressive, it just needs to exist, so the skill never asks the agent to do the kind of work the agent it doesn't specialise in.
Architectural Reality 3: The agent only runs the skills it can find. Descriptions are how it finds them.
The challenge is that every skill library has the same problem. The user builds a skill. Next time the situation appears, the agent has to decide whether this skill is the right one, which it does by reading the skill's description.
A description that says "helps with newsletters" is invisible. There is nothing for the agent to match against. Garry Tan audited his own library and found 15% of his skills were in this state. Those skills existed and worked, but nothing ever pointed the agent at them.
The fix is to write descriptions that do three jobs in three sentences.
Sentence one says what the skill does.
Sentence two lists the actual words the user would type when they need this skill. Like "draft my weekly", "review this contract", or "score this skill".
Sentence three says what makes this skill different from the closest one it could be confused with, so the agent does not pick the wrong one.
That third sentence is the one most users skip. It is also the one that costs them most when two related skills in their library could plausibly fire on the same trigger. Without it, the agent picks roughly at random. The user gets the wrong output and blames the agent.
A real example: a description doing all three jobs
This is the actual customize skill in Anthropic's commercial-legal plugin on GitHub (Anthropic's repo uses the US spelling). The description at the top is what the agent reads to decide whether to fire this skill or a different one.
Three sentences = three jobs.
Sentence one says what the skill does: "guided customization of your commercial contracts practice profile".
Sentence two lists the user's actual words: "change my thing", "update my profile", "edit my playbook".
Sentence three is the one that does the routing work: "without re-running the whole cold-start interview". That clause is what stops the agent from firing the cold-start-interview skill instead. Those two skills sound related. The third sentence is how the agent knows they are not the same.
The six parts every great skill has inside the file
The three realities above describe the system the skill sits inside. The six parts below describe what has to be inside the file itself. Each part has its own visible failure mode and a real example lifted from a working skill in Anthropic's claude-for-legal plugin.
Part 1: A read-first step that stops the agent cleanly when something is missing
The first numbered step of a real skill reads the files the skill depends on. That might be the team's playbook, the user's profile, the output of the previous skill in the chain, or the setup file the user filled in at install time.
If any of those is missing or still contains placeholder text, the skill stops. It refuses to run on guesses, and it tells the user exactly what to run to fix the situation.
Without this step, a skill does not throw an error when something is missing. It just runs, and the output looks fine on the surface. The user has no signal that the skill never read their actual context. Six months later they realise every output has been generic, ignoring every customisation they ever entered.
A real example: a skill stopping cleanly.
Here is the first numbered step inside the same customize skill, from the same GitHub file. The step starts by reading the config. The second half is what happens when the config is not ready.
The stop is what makes the skill safe, whereas the redirect is what makes it useful. A skill that will not stop is a skill that will lie.
Part 2: A description block at the very top of the file
Reality 3 already covered why this is the most important piece of writing in the file. This is the file-level addition. The description lives in the YAML frontmatter at the very top of the SKILL.md, in a field called description. It is the first thing the agent reads when scanning the library for a skill to fire.
Two things make the description block work as a piece of file structure.
First, it stays small (forty-five to seventy words, three sentences).
Second, it sits above every other instruction in the file, where the agent's attention is at its highest. The earlier screenshot of the customize skill showed both the location and the formula in one frame.
The mistake operators make at the file level is hiding the routing logic somewhere else, like in a*## When this runs* section halfway down. The agent never gets that far during routing. The description has to do the work itself.
Part 3: The same section order every time
Every real skill follows the same top-to-bottom order. A heading at the top, then a numbered workflow, then examples, then output rules, then guardrails, then a section called "What this skill does NOT do", and finally a closing action.
Same order every time, in every skill the user builds.
The reason this matters is that the agent reads the file top to bottom every time the skill fires, and what shows up first gets the most weight. Workflow before philosophy, constraints high in the file, examples after the rules so the agent has something to pattern-match against.
Aakash Gupta, a product leader who has tested seventy-five skills in public, has a cautionary tale here. His fitness-coach skill had the rule "never recommend lifts that risk injury" buried at line seven hundred of a single file. The agent skipped it and the output recommended risky lifts. Anything below roughly line three hundred gets weaker as the agent's working memory fills up, which means critical rules have to live high in the file.
A real example: the section order, rendered.
Here is the workflow section of Anthropic's build-guide skill on GitHub. Step 1, then Step 2, then Step 3. Same order every time the skill fires. Same order in every skill in the same plugin.
The agent learns the layout once and finds the right section in every skill it touches.
Part 4: A list of things this skill will NOT do, each pointing somewhere else
The part most teams skip is the scope fence, which is the section that protects the skill from turning into a worse version of three other skills.
The idea is pretty simple in that the user writes a section listing three to five things this skill deliberately refuses to do. For each refusal, the section points at a different skill that handles that work.
A quick word on the jargon.
A "sibling" skill is just a related skill the user built that lives in the same library. If the user built a skill called weekly-status-update, a sibling might be monthly-review or quarterly-board-pack. They are related, but they do different jobs. The "what this skill does NOT do" section is how the user tells the agent which job belongs to which skill.
Without this section, a skill becomes the dumping ground for every adjacent request. The user asks the agent to run the weekly status skill, and the agent starts drafting a monthly review at the same time because nothing told it to stop. The output gets worse as the skill absorbs more jobs (production data confirms this). A ten-step skill running at 95% reliability per step only succeeds 60% of the time across all ten steps. The bigger the skill, the worse it gets, therefore, single-responsibility skills win.
A real example: a skill drawing its own boundaries.
This is the "What this skill does NOT do" section from Anthropic's build-guide skill, from the same GitHub file.
There are four refusals, each one points to where the excluded work actually lives. The skill defines itself by what it refuses to absorb.
Part 5: An exit block that confirms what was done
A real skill ends with four things:
one sentence confirming what was done (often with counts)
a pointer to where the artefact lives on disk
a way to revise it, and
optionally a short list of next actions.
This is what turns a tool into a workflow. Without an exit block, the skill prints output and stops, where the user has no signal whether the work is actually finished. The classic case is the investor update that ships with '[MRR figure]' still in the prose, where the agent wrote everything else, nobody noticed the placeholder, and the board sees it.
A real example: a skill closing the loop.
This is the exit block from Anthropic's build-guide skill, from the same GitHub file. The placeholders in square brackets get filled in at runtime.
The user then knows the work is done and knows where to find the file.
Part 6: Guardrails that name what breaks and who pays the price
Every real skill carries three to five named failure modes, where each one is a verb-led instruction followed by one sentence on what breaks when the failure happens.
The strongest guardrails name the actual person who loses when the rule fails, whether that is the lawyer who relies on a clause, the user who signs off on a draft, or the team that inherits an undated commitment. Naming the loser is what improves the rule. A rule with a named loser gets followed, whereas a rule that just says "don't do X" gets rationalised away the first time the agent meets a situation that does not quite fit.
The better move is matching the strictness of each guardrail to how fragile that step is.
Steps with permanent side effects, like sending an email or filing a document, get exact instructions and zero room to deviate.
While standard steps get a preferred pattern with room to flex as needed.
Creative steps, like drafting a tone of voice, get principles and heuristics, and the agent picks the approach.
A skill that is uniformly loose hallucinates on the fragile steps. A skill that is uniformly tight produces robotic output on the creative ones. The best approach is calibrating the strictness step by step, matching the level of control to the level of risk.
The improvement loop
The key piece most users miss is that a great skill is not finished when it works once. A great skill compounds over and over.
The pattern is fairly straightforward = the skill runs and the user edits the output. The difference between what the agent produced and what the user actually wanted gets pulled out and added back to the skill, usually to a learnings file the skill reads at the start of every run.
A skill that never updates is a static prompt that gets older, while a skill that updates with every correction loaded in context it reviews every time is infrastructure that gets better on every occasion.
The test for whether a skill has crossed into compounding, from Garry Tan: "If the user asks for the same thing twice, the skill failed".
The second ask is the signal that the first run produced output, but did not produce a skill. The fix is not to ask better, but to take the correction and fold it back into the skill so the next run does not need it at all.
**This is the difference between "I built a skill" and "I am building operational AI".**An operational library is the cumulative output of every correction the user ever made. A static library is a folder full of YAML headers that produce roughly the same output every quarter.
The skill factory: the meta-skill that builds the other skills
The moment an user has ten skills in the library, a new question lands. What makes a great skill-creator?
Anthropic's skill-creator is the file that builds the other skills. It's the factory floor of most people's AI instance.
Anthropic ships one, and it is good. It is the equivalent of a beautifully-made knife sharpener that knows nothing about which knives are in the user's drawer.
The baseline captures intent, drafts a SKILL.md, generates test inputs, runs the skill against a rubric, iterates, and optimises the description.
It uses progressive disclosure and caps the body at five hundred lines.
It also teaches the user to explain the why rather than shout in all-caps MUSTs. The defaults are correct.
What the baseline does not do is treat the new skill as part of a larger system.
The strongest meta-skill does both, in this order.
Decompose first. Audit whether the skill should exist at all.
Bake in domain-specific defaults at version zero.
Run the rubric loop.
Run the pre-flight audit.
Register the new skill with the system.
Generate the content artefact.
The baseline is the first kilometre of the work. The two directions are the road.
The principle that pulls the whole architecture together
The bottleneck is never the agent's intelligence, because the agent already knows how to reason, synthesise, and write. It fails because it does not understand the user's data/context, the user's conventions, or the particular shape of the user's problem. Skills are how the user teaches the agent.
The way to teach it well comes down to a short list.
Push the work down into the skills. Keep the always-on layer small.
Send the counting work to a small script. Let the agent do the thinking.
Make the description a magnet for the right routing.
When a failure happens, fold the fix back into the skill so the next run does not repeat it.
Build it once. Let it run forever.
What to do next
1. Pick the single skill that fires most often. Open it, score it against the six parts.
Not the whole library, or the new skill the user wishes existed. Pick the one that runs the most often.
Read down the file and ask, for each of the six parts:
Does the read-first step happen, and does the skill stop cleanly when context is missing?
Does the description have a third sentence that draws the line against the closest sibling?
Does the spine run in the same order every time? Are we using this as an encyclopedia or a router?
Is there a "what this skill does NOT do" section, and does each item point at a different skill?
Does the exit block confirm what was done, name the file path, and tell the user how to revise?
Do the guardrails name the failure mode and the person who loses when the rule fails?
The user finishes with a real diagnosis of one real skill, not a theory of skills in general.
2. Pick the worst-scoring part and fix only that one.
Not all six, just the lowest-scoring single part.
Make an update to the skill to see a real difference in the output. The point is not to make the skill perfect. The point is to feel the difference one part makes, in one skill, in one work week.
3. Set the improvement loop running.
The next time the user corrects the output of any skill, the rewrite or the edit or the "no, do it like this", append the rule to the skill the moment the correction lands.
The skill is now operational infrastructure, not a prompt with a YAML header. Repeat for the next correction. Then the one after that. By the end of a quarter the user has a library that learns instead of a library that ages.
4. Audit the meta-skill: the file that creates the other skills.
Most users have not realised the skill-creator is itself a skill. A weak skill-creator silently produces weak children.

Passionate about all things AI, emerging tech and start-ups, Mike is the Founder of The AI Corner.
Subscribe to The AI Corner
