Spent today learning about Claude Skills. Built one following the day 3 instructions, then rebuilt it through Anthropic's skill-creator to see what it does under the hood. Sharing the stuff that wasn't obvious to me going in. 👇
1. The description is the trigger contract. Not the body. 🎯
This was the biggest unlock for me. Claude only sees a skill's name + description at conversation start. The body isn't loaded until after the skill is picked.
Which means: a strong body with a vague description will rarely fire. A simpler body with a sharp description gets used reliably.
2. Some description-writing rules that actually help ✍️
- Start with e.g. "Use when..." frames it as user intent, not capability
- List the actual phrases users type (synonyms matter)
- Add negative space: "even if they don't explicitly say X". This catches paraphrased asks
- Keep it short. Descriptions are loaded every turn for every skill, so tokens add up
- Skip the marketing. "Best-in-class image generator" doesn't help Claude match anything
3. Two skills with overlapping descriptions = unstable triggering ⚠️
If two skills can both match the same prompt, Claude just picks one and it's not consistent across conversations. One skill should own a trigger surface. If you've got a v1 and v2 hanging around, delete v1.
4. The body plays by different rules 📋
Once a skill fires, the body is the playbook. Different rules from the description:
- Write imperatively not descriptive: "Confirm the prompt" not "This skill confirms prompts". Claude is reading the body to decide what to do. "This skill confirms prompts" is a description of behavior where Claude has to translate it into an action. "Confirm the prompt" already is the action. Less ambiguity, less room to interpret it as flavor text.
- Rule of thumb: imperative when the model should follow the text (skill bodies, system prompts, user prompts). Descriptive when the model is deciding whether to use the text (skill descriptions, tool definitions).
- Number the steps. Claude follows them in order
- If your reference docs are long, put them in a separate file so the body stays scannable
- Spell out failure modes. "If the API returns 429, wait and retry once" beats "handle errors"
5. Skill-creator runs a 4-phase loop 🔄
When you invoke Anthropic's skill-creator (meta skill), it doesn't just spit out a SKILL.md file. It walks you through four phases: 1. Elicit — it asks you questions. What's the skill for? What should trigger it? What are the edge cases? Think of it like a PM doing requirements gathering before any code gets written.
2. Scaffold — it generates the actual files: SKILL.md (with the description and body), plus any supporting files like API specs or reference docs. This goes into a workspace folder, not into your live skills directory yet. 3. Eval — it generates test cases (typically 3 diverse prompts a real user might type) and runs them two ways: once with your new skill loaded, and once without. The "without" run is the baseline — what Claude does naturally. This is how you know if your skill is actually adding value.
4. Optimize — a judge LLM scores both runs against the success criteria you specified. If the skill underperforms, skill-creator rewrites the description or body and runs the evals again.
So it's a workflow, not a generator. A generator would hand you a file once and call it done. A workflow keeps looping until the output measurably works.