đŻ Description as the sole trigger
The field description in the SKILL.md frontmatter is the only signal the agent uses to decide whether to activate a skill. Itâs your "announcement" to the agentâwrite it as if you had to convince someone in 5 seconds.
What makes a description effective
⥠Writing strong trigger phrases
Trigger phrases are the clauses TRIGGER when in the description. They explicitly list the activation contexts, covering multiple ways the user might express the same request.
description: |-
Build, debug, and optimize Claude API / Anthropic SDK apps.
Apps built with this skill should include prompt caching.
Also handles migrating existing Claude API code between
Claude model versions.
TRIGGER when: code imports `anthropic`/`@anthropic-ai/sdk`;
user asks for the Claude API, Anthropic SDK, or Managed
Agents; user adds/modifies/tunes a Claude feature (caching,
thinking, tool use, batch) or model (Opus/Sonnet/Haiku).
SKIP: file imports `openai`/other-provider SDK, filename
like `*-openai.py`, provider-neutral code, general
programming/ML.
â Strong triggers
- âExplicit "TRIGGER when:" or "Use when:" prefixes
- âCovers multiple phrasings of the same request
- âIncludes synonyms and domain variations
- âMentions concrete artifacts (imports, files)
- âTestable: "if it says X, should it trigger?"
â Weak triggers
- âNo prefix â there's no clear separation from the summary
- âCovers only 1 phrasing ("create a course")
- âGeneric keywords ("code", "web")
- âToo technical for the user (âprocesses tokensâ)
- âWithout SKIP â triggers in the wrong contexts
đĄ Technique: 5 test questions
Before publishing the skill, test the description with 5 real questions the user might ask. For each one, check:
- 1. Should the skill trigger? (yes/no)
- 2. Is it clear from the description alone whether the answer is yes or no?
- 3. Could another skill compete for this trigger?
- 4. Does SKIP eliminate false positives?
- 5. Would someone without context understand the description?
đŤ SKIP Clauses: Preventing False Triggers
SKIP defines the anti-cases: situations where the skill should NOT trigger, even if there is thematic overlap with the trigger. This is the boundary that separates the skill from its neighbors.
đ Why SKIP matters
Imagine you have claude-api and a generic "Python code" skill. Without SKIP, any Python script that mentions an API could trigger the wrong skill. SKIP creates clear boundaries:
- ⢠import anthropic
- ⢠Claude API / SDK
- ⢠Opus, Sonnet, Haiku
- ⢠import openai
- ⢠provider-neutral code
- ⢠Generic ML without an SDK
How to refine SKIP in practice
Identify false positives
Use the skill for 1 week. Make a note every time it triggers when it shouldnât â those are your false positives.
Find the pattern
What do the false positives have in common? Is it a library? A file type? A specific context?
Add to SKIP
Add the pattern to the SKIP clause in the description. Re-test with the original false positives.
â Well-written SKIP
- âExplicit uppercase "SKIP:" prefix
- âLists non-use cases with concrete examples
- âComplements the TRIGGER without contradicting it
- âRefined using real false positives
â SKIP pitfalls
- âSKIP so broad that it blocks valid cases
- âContradicts the TRIGGER ("Use when X... SKIP: X")
- âMissing SKIP in a broad-scope skill
- âSKIP too generic ("SKIP: general code")
đ¤ kebab-case Name
The folder and field name name in the frontmatter follow a single convention: kebab-case.
đĄ Why kebab-case works
works as a slug without encoding
without needing quotes in the shell
instantly scannable
â Real examples of effective descriptions
Analysis of descriptions for real skills in production. What makes them effective and why.
description: |-
Template e padrĂľes de design para criar pĂĄginas HTML de cursos
no formato INEMA.CLUB.
Use esta skill SEMPRE que o usuĂĄrio pedir para criar, editar ou
revisar pĂĄginas HTML de curso â incluindo index de trilhas,
påginas de módulos, componentes como navegação, cards, tópicos
expansĂveis, modais e slides.
Acione tambĂŠm quando o usuĂĄrio mencionar trilhas, mĂłdulos,
tĂłpicos, INEMA.CLUB, ou quando pedir para seguir o
"formato de curso" ou "template de curso".
Nao deixe de usar esta skill se o usuĂĄrio mencionar qualquer
coisa relacionada a pĂĄginas HTML de cursos ou ao projeto skillx.
Why this description works
â Description anti-patterns
Poor descriptions are invisible (the skill never triggers), overbroad (it triggers for everything), or confusing (it triggers when it shouldn't). The 4 most common anti-patterns:
â Anti-pattern 1: Too vague
Problem: "code" is everything. Every dev skill will compete. None will win predictably.
â Anti-pattern 2: Circular
Problem: all skills "use AI." The description needs to differentiate, not generalize.
â Anti-pattern 3: Too technical
Problem: users donât think in terms of "tokens" and "context window" â they think, "I need an answer."
â Anti-pattern 4: No anchors
Problem: which API? REST? GraphQL? Anthropic? OpenAI? Without a specific anchor, the match will be wrong.
đĄ The one-sentence test
Show the description to someone who has never seen the skill. Ask: "In what situation would you use this?" If the answer is vague or wrong, the description failed. The test takes 30 seconds and saves hours of debugging.
đŻ Module Summary
Next Module:
3.3 â Scripts and supporting references: how to structure scripts/, references/, .env.example, and apply progressive disclosure