PTENES
MÓDULO 1.1

🧬 Anatomía de una Skill

Una skill no es magia ni un plugin compilado. Es un archivo de texto — o SKILL.md — que Claude lee, decide cargar y empieza a seguir. En este módulo abres ese archivo y entiendes cada parte: el frontmatter, el cuerpo y la mecánica de descubrimiento y activación.

6
Temas
40
Minutos
Básico
Nivel
Teoría
Tipo

Contenido detallado

--- frontmatter (YAML) --- nombre: travel-itinerary description: hace X · úsala cuando Y… ↑ esto es lo único que Claude ve al inicio # Cuerpo de instrucciones (Markdown) workflow · reglas estrictas · formato de salida cargado solo cuando se activa la skill Claude decide y ejecuta
1

📄 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 — name e description. 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.
SKILL.md — ejemplo mínimo Markdown
---
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.

Texto
Markdown puro, sin build
Versionable
Vive en git como código
Portable
Copia de una máquina a otra
Legible
Tú y Claude leen igual
2

🏷️ 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 name puede romper referencias y comandos — elígelo bien y mantenlo.
  • Único: dos name iguales crean ambigüedad sobre cuál cargar.
Breve
2-4 palabras
Descriptivo
Di qué hace
Estable
No cambia porque sí
kebab-case
La convención
3

🎯 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:

SOLO EL «HAZLO» — débil

"Generates travel itineraries."

"HACE + CUÁNDO" — fuerte

"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á.

Hace
Qué produce
Cuándo
Disparadores de uso
Concreta
Frases reales
Decisoria
Permite elegir
4

📝 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.

1

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.

2

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.

3

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.

4

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.
Setup
Qué preguntar
Workflow
La secuencia
Reglas
Los límites
Salida
El formato final
5

🔍 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.
el índice que consulta Claude (ilustrativo) índice ligero
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ó.

Índice ligero
name + description
Matching
Solicitud × descripción
A demanda
Cuerpo, solo después
Escala
Muchas skills, liviano
6

⚡ 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.

Automático
Por intención
Explícito
Por comando
Contexto
Pesa en la decisión
Desaparecer
Lo ideal: invisible

🧰 Prompts copiables

Usa estos prompts con Claude para fijar en la práctica el contenido del módulo.

Prompt — explicar la anatomía
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.
Prompt — auditar el disparador
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.
Prompt — separar identidad de instrucción
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.

changelog-writer/SKILL.md ejecutable
---
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

✓
Skill = SKILL.md — un archivo Markdown, texto plano, versionable y portable.
✓
El Frontmatter manda — name (identidad) y description (disparador) determinan la activación.
✓
El cuerpo es el «cómo» — la configuración, el workflow, las reglas y el formato de salida determinan la calidad.
✓
Descubrimiento ≠ activación — Claude indexa solo las descriptions y carga el cuerpo cuando se necesita.

Siguiente módulo:

1.2 — Divulgación progresiva y estructura