Skill author guide
A skill is a contract between you and an agent. This one explains how to write a contract the agent keeps — and that passes emdly review the first time.
When to use
- Before writing your first skill. Load it into your agent and ask it to draft one with you.
- When a submission was bounced — the review checklist at the end is what reviewers use.
Anatomy of a skill that works
- Title — the H1 is the skill's name in words.
- One-paragraph purpose — what job it does and what it refuses to do. If this paragraph could describe five different tools, keep writing.
- When to use — 2–4 concrete situations. Agents use this to decide whether to load you at all.
- Input — what the skill expects to be given. Naming the inputs is half the reliability.
- Process — numbered steps in the order the agent should take them. Each step produces something the next step uses.
- Rules — the binding constraints. See below.
- Output format — a literal example in a code block. Agents copy shapes far better than they follow descriptions.
- Edge cases — the three inputs that would tempt a shortcut, and what to do instead.
- License — a
## Licensesection with an SPDX id. MIT is the default.
Rules vs. preferences
A rule is something the agent must do even when it seems unhelpful in the moment. Write rules as absolutes with the reason: "Never invent acceptance criteria — propose them and label the proposal." A preference ("prefer short sentences") is fine but goes in a separate line; mixing the two teaches the agent that rules are negotiable.
The rules that matter most in practice:
- What not to invent. Name the things that must come from the input (numbers, quotes, file names, decisions).
- What to do with uncertainty. "Flag it" beats "guess" every time; say how to flag.
- Scope of action. If the skill can run commands, say which ones and which need a human.
Output contracts
Give a real example, not a schema. Include the hard parts: an empty case, a flagged item, a number with its source. Then test it: run the skill on three inputs and check that the output matches the example's shape exactly. If it drifts, the example is ambiguous — fix the example, not the prose.
What reviewers bounce
- No license line.
- A prompt, not a skill: one paragraph of "you are a helpful…" with no process or output.
- Instructions that override the visible rules, hidden text, or anything that sends data outside the task. These are blocked automatically.
- Urgency or persuasion tricks in outreach skills ("say the offer ends today").
- Credentials in the file. Skills are public; keys live in the agent's configuration.
- Copy-pasted tool output instead of instructions.
Review checklist (self-check before submitting)
- Someone who has never seen my tooling could run this from the file alone.
- Every "never" has a reason and an alternative.
- The output example includes a flagged/empty case.
- Nothing in the file asks the agent to fetch, post or contact anything the task did not mention.
-
## Licensepresent.
License
MIT