A skill is a small, opinionated workflow you've codified. A SKILL.md file with frontmatter at the top and prose below. The frontmatter tells the agent what the skill does and when to use it. The prose tells it how.
A skill is not a prompt. A prompt is what you type once. A skill is what you've already typed a hundred times and never want to type again.
Anatomy
---
name: redesign-cta-button
description: Reshape a CTA button so it matches the rest of the system without breaking accessibility.
when_to_use: When a button feels off in context — too loud, too quiet, wrong shape.
---
When the user asks to rework a button, do this:
1. Read the surrounding components for tone, radius, density.
2. Match radius and padding to the closest sibling.
3. Default to outline variant if the page already has a primary action.
4. Preserve focus ring, hover, and disabled states without changing their tokens.
Reject the task if the button is on a form with no other styled inputs — the problem is the form, not the button.
That's the whole skill. Eight lines of yaml-front-mattered markdown.
Why skills are different from design.md
- design.md = how you think.
- skills = what you do, repeatedly, that you'd rather an agent did instead.
A designer who's published five skills has effectively delegated five of their patterns to anyone who installs their MCP. The next teammate who runs into a button problem doesn't bother them; they bother the agent.
Read it, or run it
A connected agent can use a skill two ways:
- Read it (
get_skill): the agent pulls the full SKILL.md as text and applies it itself. - Run it (
invoke_skill): the skill executes on Yelmo's side and the agent gets back only the result, never the instructions.
Running it is the one that matters for your work. When a skill is invoked, your method does the job and the caller never sees the recipe, so a skill you spent real time on isn't a thing someone copies once and never needs again. They use it; they don't take it.
When to publish a skill, and public vs private
Publish anything you've done more than three times and would happily do again the same way. Keep private the things that depend on tacit context — internal naming, NDA work, ongoing negotiations.
A public skill is readable and runnable by anyone who connects, the way people discover your work. A private skill stays yours until you grant access, the seam where paid access will eventually sit. You set this per skill with a toggle in the editor.
Examples worth studying
Browse /dsaltaren/skills for live examples.
Now write yours → Get started