Contenido detallado
📄 Qué es, en definitiva, un SKILL.md
Una Agent Skill es, en esencia, un archivo de texto Markdown llamado
SKILL.md. Nada de binarios compilados ni instalaciones complejas: es un
documento que puedes abrir en un editor de texto y leer de principio a fin. Lo que lo hace especial no es la tecnología, sino
el contrato que establece: enseña a Claude a ejecutar una tarea
específica y dice cuándo se aplica esa tarea.
🧬 Las dos zonas del archivo
Todo SKILL.md se divide en dos zonas con funciones muy diferentes:
- •Frontmatter (YAML): la tarjeta de presentación —
nameedescription. Es lo que Claude lee para decidir usar la skill. - •Cuerpo (Markdown): las instrucciones de verdad: el «cómo hacerlo». Solo se carga después que se elige la skill.
---
name: travel-itinerary
description: Generates an interactive HTML travel itinerary.
Use when the user wants to "plan a trip", "create an itinerary",
or types /travel.
---
# TravelWings — AI Travel Itinerary Generator
## Setup Flow
Before generating anything, ask the user the trip basics...
## Output Format
Generate a single self-contained HTML file...
💡 Consejo práctico
Si sabes escribir un buen README, ya sabes el 80% de cómo escribir un SKILL.md. La diferencia está en los dos campos de la parte superior — no son documentación, son el disparador que hace que Claude use la skill por su cuenta.
🏷️ El campo name: la identidad
O name es el identificador de la skill. Parece el campo más insignificante del archivo,
pero es la clave estable por la que se referencia la skill — en comandos, en
otras skills, en registros. Un buen name es corto, en kebab-case,
y explica de un vistazo qué es la skill.
✓ Nombres que funcionan
- ✓
travel-itinerary— dice exactamente qué produce - ✓
vibe-coding— término memorable y específico - ✓
n8n-workflow-reviewer— dominio + acción claros
✗ Nombres que estorban
- ✗
helper— demasiado genérico, ¿para qué ayuda? - ✗
my_skill_v2_final— ruido, sin significado - ✗
SkillDeViagem— fuera de la convención kebab-case
📐 Convenciones que valen la pena
- kebab-case: todo en minúsculas, palabras separadas por guiones.
- Estable: cambiar el
namepuede romper referencias y comandos — elígelo bien y mantenlo. - Único: dos
nameiguales crean ambigüedad sobre cuál cargar.
🎯 El campo description: el disparador
Si el name es la identidad, la description é o
cerebro del descubrimiento. Es la única parte de la skill que Claude lee cuando decide si
debe usarla o no. Por eso, no puede ser una simple definición: tiene que decir lo que
hace la skill E cuándo debe usarse. Este módulo solo presenta la
idea; todo el Módulo 1.3 está dedicado a escribir descriptions precisas.
⚖️ La fórmula «Hace + Cuándo»
Compara la misma skill descrita de dos formas:
"Generates travel itineraries."
"Generates an interactive HTML travel itinerary. Use when the user wants to plan a trip, create an itinerary, or types /travel."
💡 Consejo práctico
Vuelve a leer la descripción imaginando que eres Claude y solo ves esa línea, sin el resto del archivo. Si no puedes decidir «¿esta skill se aplica a esta solicitud?», Claude tampoco podrá.
📝 El cuerpo: el «cómo hacerlo»
Debajo del frontmatter viene el cuerpo de la skill — Markdown libre donde escribes el paso a paso de la ejecución. Aquí se decide la calidad del resultado. Un cuerpo bien estructurado suele tener cuatro bloques recurrentes, como vemos en las skills reales que el curso analiza.
Setup / descubrimiento
"Qué preguntar antes de producir"
El generador de itinerarios, por ejemplo, define un Setup Flow obligatorio: antes de generar cualquier HTML, Claude recopila el destino, las fechas, el origen y las integraciones. Eso hace que el resultado sea útil en vez de genérico.
Workflow / pasos
"La secuencia de ejecución"
El orden de las acciones. La skill de corrección de frontend, por ejemplo, define pasos con barreras: confirmar el workspace, crear una rama, probar en vivo y solo entonces editar el código.
Reglas estrictas / límites
"Qué no hacer nunca"
Restricciones innegociables — generalmente en mayúsculas o con advertencias. Son las que impiden que Claude se salte pasos críticos o realice acciones destructivas.
Formato de salida
"Cómo debe ser el resultado"
La definición precisa del entregable: un único archivo HTML autocontenido, un informe con secciones fijas, un JSON. Sin esto, cada ejecución produce un formato diferente.
📊 Lo que distingue a un buen cuerpo
- Específico > genérico: "genera un HTML autocontenido" prevalece sobre "genera un buen resultado".
- Principios al final: las buenas skills terminan con una lista de principios que resumen la filosofía («datos reales > marcador de posición»).
- Ejemplos integrados: los fragmentos de entrada y salida anclan el comportamiento mejor que la prosa abstracta.
🔍 Cómo Claude descubre la skill
Aquí está el detalle que lo cambia todo: Claude no lee el cuerpo de todas las skills todo
el tiempo. Imagina 50 skills instaladas, cada una con cientos de líneas: cargar todo en cada mensaje sería
impracticable. En su lugar, mantiene un índice ligero: solo el
name + a description de cada skill. Es contra este índice que
se compara la solicitud del usuario.
🗂️ El índice de descripciones
Piensa en el catálogo de una biblioteca: no lees todos los libros para encontrar uno; lees las fichas. La description es la ficha de la skill.
- •La solicitud del usuario se compara con las descripciones disponibles.
- •La candidata es la skill cuya descripción mejor coincide con la intención.
- •Solo entonces el contenido completo de esa skill entra en el contexto.
travel-itinerary → "plan a trip, create an itinerary, /travel"
vibe-coding → "fix CSS/layout live in the browser before editing"
n8n-reviewer → "review an n8n automation as a senior engineer"
rag-architect → "design the right RAG before writing code"
... → (só name + description, nunca o corpo inteiro)
💡 Consejo práctico
Esta mecánica explica una frustración común: «creé la skill perfecta y Claude nunca la usa». Casi siempre el cuerpo está muy bien, pero la description no indica cuándo activarse. Claude nunca llega a leer el brillante cuerpo porque la ficha no lo convenció.
⚡ Cómo Claude activa la skill
Descubrir significa reconocer que la skill se aplica; activar es, en la práctica, cargar el cuerpo y empezar a seguir sus instrucciones. Hay dos caminos para que esto ocurra, y entender la diferencia evita mucha confusión.
✓ Activación automática
Claude lee la solicitud, ve que coincide con una description y usa la skill por su cuenta.
- ✓Se activa por la intención: «planea mi viaje a Tokio»
- ✓Lo ideal: que el usuario ni siquiera necesite saber que existe la skill
- ✓Depende 100% de una buena description
↳ Invocación explícita
El usuario llama a la skill por su nombre o mediante un comando de barra.
- →Se activa con el comando:
/travel - →Útil cuando el usuario sabe exactamente lo que quiere
- →Funciona incluso con una description débil
⚠️ El error que debes evitar
Depender solo de la invocación explícita es desperdiciar la mitad del poder de las skills. Si la skill nunca se activa sola, se convierte en un comando manual y el usuario tiene que acordarse de usarla. El objetivo de una skill bien hecha es pasar desapercibida: activarse en el momento adecuado sin que nadie lo pida.
💡 Consejo práctico
Prueba siempre los dos caminos. Pide la tarea en lenguaje natural (sin mencionar la skill) y fíjate si se activa. Después, invócala por su nombre. Si solo funciona el segundo, hay que trabajar en la descripción, y eso es exactamente lo que enseña el Módulo 1.3: corregirla.
🧰 Prompts copiables
Usa estos prompts con Claude para fijar en la práctica el contenido del módulo.
Abra um SKILL.md qualquer que você tenha acesso e me explique,
linha a linha: qual é o frontmatter, o que cada campo (name,
description) faz, e onde começa o corpo de instruções.
Aqui está a description da minha skill: "<cole aqui>".
Lendo SÓ essa linha, sem o corpo, você saberia em quais pedidos
de usuário disparar esta skill? Liste 3 pedidos que disparariam
e 3 que NÃO disparariam.
Vou descrever uma tarefa que faço sempre. Me ajude a separar:
(1) qual seria o name e a description (o gatilho), e
(2) o que vai no corpo (workflow, regras, formato de saída).
A tarefa é: <descreva>.
📤 Ejemplo de salida
Uno SKILL.md mínimo, pero completo y válido: exactamente el esqueleto que vas a ampliar en los próximos módulos.
---
name: changelog-writer
description: Writes a clean CHANGELOG entry from a list of git
commits. Use when the user asks to "write a changelog",
"summarize these commits", or "prep release notes".
---
# Changelog Writer
## Workflow
1. Ask for the version number and the commit list (or read it).
2. Group commits into: Added, Changed, Fixed, Removed.
3. Rewrite each line in plain, user-facing language.
## Rules
- Never invent changes that aren't in the commits.
- Keep each entry to a single line.
## Output Format
Markdown under a `## [version] - YYYY-MM-DD` header,
one section per group, bullets per change.
✏️ Ejercicios prácticos
1. Analiza un SKILL.md en profundidad
Toma cualquier skill que conozcas y marca con un marcador de color dónde termina el frontmatter y empieza el cuerpo. Identifica los cuatro bloques del cuerpo (configuración, flujo de trabajo, reglas, salida) y anota cuál falta.
2. Reescribe una descripción débil
Toma la description "Generates reports." y reescríbela según el patrón "Hace + Cuándo", agregando al menos dos activadores concretos que diría un usuario.
3. Crea un SKILL.md ejecutable ⭐
Escribe, desde cero, un SKILL.md completo para una tarea repetitiva tuya (ej.: "resumir reuniones", "estandarizar nombres de commit"). Debe tener: frontmatter con name + description con el patrón "Hace + Cuándo" y un cuerpo con un workflow, al menos una regla estricta y un formato de salida. Después pídele a Claude que lo ejecute con una entrada de prueba y observa si el resultado tiene el formato definido.
🧬 Resumen del módulo
name (identidad) y description (disparador) determinan la activación.Siguiente módulo:
1.2 — Divulgación progresiva y estructura