Cómo crear una Skill de Claude Code que realmente funcione (Guía completa)

@undefinedKi
INGLÉShace 3 días · 18 jul 2026
116K
75
10
12
176

TL;DR

Esta guía explica cómo crear Skills de Claude Code, que son conjuntos de instrucciones permanentes que automatizan tareas repetitivas de IA. Cubre la estructura de carpetas, descripciones efectivas y el uso de scripts para obtener resultados consistentes.

Has usado Claude durante una semana y sigues escribiendo lo mismo cada vez. Cada vez que confirmas código, pegas las mismas tres reglas sobre el formato de tus confirmaciones. Cada vez que escribes un documento, vuelves a explicar tu estilo. Claude lo hace bien, pero lo olvida en cuanto el chat termina, y mañana vuelves a escribirlo todo.

Una skill soluciona eso. Es una pequeña carpeta que escribes una vez y que le enseña a Claude un flujo de trabajo de forma permanente, para que lo aplique en cada sesión sin que tengas que pedírselo.

Así es como funciona, de un vistazo: una skill es una carpeta con un archivo dentro. Claude mantiene visible un resumen de una línea en todo momento, y carga las instrucciones completas solo cuando tu solicitud coincide. Ese es todo el mecanismo.

En esta guía creamos una skill real desde cero: commit-messages, que escribe commits de git en tu formato exacto. Si tienes Claude instalado y nada más, puedes seguir cada paso.

Lo que obtendrás al final

En esencia, una skill es una carpeta con un archivo obligatorio, SKILL.md. Tres carpetas opcionales vienen después a medida que la skill crece:

text
1tu-nombre-de-skill/
2├── SKILL.md # Obligatorio - el archivo principal de la skill
3├── scripts/ # Opcional - código ejecutable
4├── references/ # Opcional - documentación
5└── assets/ # Opcional - plantillas, etc.

SKILL.md tiene dos partes: un encabezado corto que le dice a Claude cuándo usar la skill, y las instrucciones debajo que le dicen a Claude qué hacer. La razón de esta división es importante. Claude lee el encabezado constantemente, por lo que siempre sabe que la skill existe, pero solo carga las instrucciones cuando tu solicitud coincide. Ten presente esa distinción, porque casi todo lo demás en esta guía se deriva de ella.

Crearla

Las skills viven en una carpeta llamada .claude/skills dentro de tu directorio de usuario, que tanto Claude Code como la aplicación de escritorio leen. Está oculta y probablemente aún no existe, así que la forma más rápida de crearla, junto con la carpeta de tu skill, es un solo comando.

En Mac, abre Terminal y ejecuta:

bash
1mkdir -p ~/.claude/skills/your-skill-name

En Windows, abre PowerShell y ejecuta:

text
1New-Item -ItemType Directory -Force -Path "$HOME\.claude\skills\your-skill-name"

El nombre de la carpeta no es solo estético. Claude lo usa como identificador de la skill, y hay una regla de formato que causa más problemas que cualquier otra:

  • Usa kebab-case: notion-project-setup ✔
  • Sin espacios: Notion Project Setup ✖
  • Sin guiones bajos: notion_project_setup ✖
  • Sin mayúsculas: NotionProjectSetup ✖

Dentro de esa carpeta, crea un archivo llamado exactamente SKILL.md y ábrelo en cualquier editor de texto. Todo lo que sigue es lo que va en ese archivo.

Diseñala antes de escribirla

Las skills que funcionan comienzan con dos decisiones, tomadas antes de escribir una línea del archivo. Ambas parecen saltables y ninguna lo es.

Primero, decide exactamente cuándo debería activarse la skill. Anota dos o tres situaciones reales en las palabras que un usuario realmente escribiría:

  • "confirmar estos cambios"
  • "escribir un mensaje de commit para este diff"
  • "hacer stage y confirmar"

Esto no es trabajo innecesario. Estas frases se convierten en el material base para tu descripción y tus pruebas más adelante, y una skill diseñada sin ellas tiende a ser vaga justo en la forma que impide que se active.

Segundo, decide cómo sabrás que funciona. El criterio que más importa por encima de todos es si la skill se carga por sí sola, sin que la nombres. Si tienes que invocarla manualmente cada vez, la skill técnicamente se ejecuta pero ha fallado en su trabajo real. Vale la pena observar también: si termina la tarea sin que la corrijas a mitad de camino, y si te da el mismo tipo de resultado en sesiones separadas.

La descripción es lo que la hace o la rompe

De todo lo que hay en el archivo, la descripción en el encabezado es lo que más trabajo hace, porque es la única parte que Claude lee al decidir si cargar la skill o no. Tus instrucciones podrían ser impecables y no importaría, ya que Claude nunca llega a ellas si la descripción no coincide. Aquí es donde fallan la mayoría de las skills que "no funcionan".

Una buena descripción responde dos preguntas en una sola frase: qué hace la skill y cuándo debería Claude recurrir a ella. Esa segunda mitad es la que la gente omite.

Aquí está la diferencia:

yaml
1# débil - dice qué es, pero no le da a Claude nada con qué coincidir una solicitud
2description: Ayuda con commits de git.
3
4# fuerte - nombra los momentos en los que debería activarse
5description: Escribe mensajes de commit de git en formato Conventional Commits. Úsala cuando el usuario pida confirmar cambios, escribir un mensaje de commit, o hacer stage y confirmar archivos.

La versión débil le dice a Claude que la skill existe, pero nunca la conecta con nada que puedas decir. La versión fuerte nombra las frases reales, así que cuando escribes "confirmar estos cambios", Claude tiene algo con qué coincidir. Nombra las palabras que un usuario realmente usaría, mantén todo por debajo de 1024 caracteres y no pongas < o > dentro.

Cuando una skill no se activa, la solución casi siempre está aquí. Añade las frases que realmente usas. Si dices "guardar mi trabajo" pero la descripción solo menciona "commit", Claude no tiene forma de vincularlos. Y si ocurre lo contrario y la skill se activa cuando no debería, reduce la descripción o añade un disparador negativo:

yaml
1description: Escribe mensajes de commit de git en formato Conventional Commits. Úsala al confirmar cambios. No la uses para escribir comentarios de código o documentación.

Hay una forma rápida de verificar tu trabajo antes de confiar en él. Pregúntale directamente a Claude:

"¿Cuándo usarías la skill commit-messages?"

Claude te leerá tu descripción en sus propias palabras. Si eso no coincide con cuándo realmente quieres que la skill se active, has encontrado tu problema, y está en la descripción, no en las instrucciones de abajo.

Escribe instrucciones que Claude realmente siga

Debajo del encabezado viene el cuerpo, en Markdown plano. Aquí es donde vive tu flujo de trabajo real, y dos hábitos separan las instrucciones que Claude sigue de aquellas que pasa por alto silenciosamente.

El primero es ser específico. Claude actúa sobre instrucciones concretas y pasa por alto las vagas, así que cuanto más exacto seas, más confiablemente se comportará:

markdown
1# Mal
2Valida el commit antes de finalizar.
3
4# Bien
5Ejecuta `python scripts/validate.py "<mensaje>"`.
6Si falla, corrige esto:
7- Tipo inválido: usa feat, fix, docs, refactor, test, chore
8- Resumen de más de 60 caracteres: acórtalo

El segundo es el orden. Claude pondera lo que lee primero, así que una regla enterrada al final de un archivo largo es una regla que se omite. Pon cualquier cosa que no deba romperse al principio, bajo un encabezado que lo señale:

markdown
1## Importante
2- Línea de resumen de menos de 60 caracteres, siempre
3- Solo tiempo presente: "add", no "added"

También hay un límite en lo que el lenguaje puede garantizar. Las instrucciones se interpretan, lo que significa que Claude las sigue bien, pero no de manera idéntica cada vez. Cuando una verificación realmente tiene que pasar en cada ejecución, no la describas en prosa, muévela a un script y haz que las instrucciones lo ejecuten. El código hace lo mismo cada vez; una frase no. (Para eso está la carpeta scripts/, que se cubre a continuación.)

Una estructura que se sostiene en la mayoría de las skills se ve así:

markdown
1# Nombre de la Skill
2
3## Importante
4Reglas críticas que no deben pasarse por alto.
5
6## Instrucciones
7Paso a paso, específicas y accionables.
8
9## Ejemplos
10Entrada y salida concretas. Claude copia los ejemplos de manera más confiable que sigue las reglas.

Mantén el archivo ligero. En el momento en que empiece a crecer más allá de sus instrucciones principales, es el momento de sacar el detalle extra, que es exactamente para lo que sirven las carpetas opcionales.

Scripts, referencias, assets

Todo lo hasta ahora produce una skill que le da instrucciones a Claude. Las tres carpetas opcionales la convierten en una skill que le da herramientas a Claude, y aquí es donde una skill hace cosas que un prompt simple no puede.

scripts/ contiene código que Claude ejecuta, para cualquier cosa que deba ser exacta. En lugar de confiar en que Claude evalúe visualmente si un commit tiene el formato correcto, le pasas un script que lo verifica:

python
1# scripts/validate.py
2import sys
3msg = sys.argv[1]
4types = ("feat", "fix", "docs", "refactor", "test", "chore")
5
6if msg.split(":")[0] not in types:
7 print(f"Tipo inválido. Usa: {', '.join(types)}")
8elif len(msg.split("\n")[0]) > 60:
9 print("Resumen demasiado largo (más de 60 caracteres)")
10else:
11 print("OK")

Luego le dices a Claude que lo use en SKILL.md:

markdown
1Antes de finalizar, ejecuta `python scripts/validate.py "<mensaje>"`
2y corrige cualquier cosa que marque.

Ahora la regla de formato se aplica mediante código que se ejecuta igual cada vez, en lugar de depender de que Claude recuerde verificarlo.

references/ contiene documentación que se carga solo cuando es necesario. Digamos que tus convenciones de commit ocupan dos páginas de ámbitos, pies de página y casos extremos. Pon todo eso en SKILL.md y se cargará en cada commit, incluso en uno de una línea. En su lugar, muévelo a un archivo de referencia:

text
1tu-nombre-de-skill/
2├── SKILL.md
3└── references/
4 └── conventions.md

Y señálalo desde el archivo principal:

markdown
1Para la lista completa de convenciones, consulta references/conventions.md

Claude abre ese archivo solo cuando la tarea lo requiere. Esta es la razón principal por la que las skills siguen siendo económicas de ejecutar: el detalle pesado permanece en el disco hasta que realmente es relevante, en lugar de viajar en el contexto cada vez.

assets/ contiene archivos que la skill usa en su salida en lugar de leer para obtener orientación, como una plantilla, un archivo de configuración o un logotipo. Una skill de commits no necesita ninguno, pero una skill que genera informes podría mantener un template.md aquí y completarlo cada vez, para que cada informe tenga la misma estructura.

En conjunto, estas tres carpetas son la diferencia entre una skill que le dice a Claude cómo trabajas y una que le entrega a Claude las herramientas exactas para hacer el trabajo a tu manera.

Lo único que debes recordar

Una skill no le enseña a Claude una nueva capacidad. Ya sabe cómo escribir un commit. Lo que hace la skill es que haga el trabajo a tu manera, cada vez, sin que tengas que repetirlo.

Y cuando una skill no funciona, la causa casi nunca son las instrucciones en las que trabajaste. Es la descripción. Claude decide si cargar la skill a partir de esa única línea, antes de leer el trabajo que hay debajo. Acierta con la descripción y todo lo que está debajo finalmente se usará.

Si te fue útil, dirígete a mi perfil y sígueme. Escribo sobre tecnología, IA y sistemas que realmente funcionan.

Ciao,

@undefinedKi

Recrear en YouMind

Turn one viral article into a full content workflow

Collect the source, decode the pattern, create assets, draft the story, and distribute from one AI workspace.

Explore YouMind
Para creadores

Convierte tu Markdown en un artículo de 𝕏 impecable

Cuando publicas tus propios textos largos, dar formato en 𝕏 a imágenes, tablas y bloques de código es un fastidio. YouMind convierte un borrador completo en Markdown en un artículo de 𝕏 impecable y listo para publicar.

Prueba Markdown a 𝕏

Más patrones por descifrar

Artículos virales recientes

Explorar más artículos virales