Inteligencia Artificial

Skills de Claude Code: cómo crearlas y cuándo usarlas

Autorangel cruz
Publicado
Lectura4 min de lectura
Skills de Claude Code: cómo crearlas y cuándo usarlas

Una skill de Claude Code es un conjunto de instrucciones (un archivo SKILL.md) que Claude carga solo cuando hace falta. A diferencia del CLAUDE.md, que se carga entero en cada sesión, el cuerpo de una skill no cuesta contexto hasta que se usa. Es perfecta para checklists y procedimientos de varios pasos que ejecutas de vez en cuando.

Cuándo crear una skill

Crea una skill cuando te descubres pegando las mismas instrucciones una y otra vez, o cuando una sección de tu CLAUDE.md dejó de ser un "dato" y se convirtió en un procedimiento: revisar un PR, hacer un release, correr una migración con sus comprobaciones. Eso no debería vivir siempre en el contexto (lo gastaría en cada sesión sin usarse casi nunca): debería cargarse solo cuando lo invocas.

La regla mental: si es algo que Claude debe saber siempre, va en el CLAUDE.md. Si es algo que Claude debe hacer a veces, es una skill.

El formato: SKILL.md

Una skill es una carpeta con un archivo SKILL.md: frontmatter YAML (con la description que le dice a Claude cuándo usarla) más el cuerpo en markdown con las instrucciones. El nombre de la carpeta se convierte en el comando que escribes.

---
description: Resume los cambios sin commitear y marca lo riesgoso. Úsala cuando el usuario pregunte qué cambió o pida un mensaje de commit.
---
 
## Cambios actuales
 
!`git diff HEAD`
 
## Instrucciones
 
Resume los cambios de arriba en dos o tres bullets y lista los riesgos que veas (falta de manejo de errores, valores hardcodeados, tests por actualizar).

La línea !`git diff HEAD` (con backticks) usa inyección dinámica de contexto: Claude Code corre el comando y reemplaza la línea por su salida antes de que Claude lea la skill, así las instrucciones llegan con el diff ya incrustado. Y con $ARGUMENTS capturas lo que el usuario escriba después del nombre de la skill.

Un ejemplo real: revisar un PR de Laravel

Aquí es donde una skill brilla, porque el procedimiento es siempre el mismo y quieres que se ejecute igual cada vez. Una skill revisar-pr para un proyecto Laravel:

---
description: Revisa el PR actual en un proyecto Laravel. Úsala antes de aprobar o mergear.
---
 
## Estado
 
!`git diff main...HEAD --stat`
 
## Instrucciones
 
1. Corre `./vendor/bin/pint --test` y reporta si el estilo falla.
2. Corre `php artisan test` y resume los tests rojos.
3. Revisa las migraciones nuevas: ¿son reversibles (`down()`)? ¿tocan tablas grandes sin cuidado?
4. Marca cualquier `env()` fuera de un archivo de config, credenciales hardcodeadas o queries en bucle (N+1).
5. Cierra con un veredicto: listo para mergear, o lista de cambios pendientes.

Ese procedimiento, con las comprobaciones propias de Laravel, no tiene por qué ocupar contexto en cada sesión. Vive en una skill y se activa cuando lo pides.

Dónde viven y cómo se invocan

Ubicación Ruta Alcance
Personal ~/.claude/skills/<nombre>/SKILL.md Todos tus proyectos
Proyecto .claude/skills/<nombre>/SKILL.md Solo ese proyecto (se versiona con el repo)
Plugin <plugin>/skills/<nombre>/SKILL.md Donde el plugin esté activo

Se invocan de dos formas: automática (Claude la carga cuando tu pedido encaja con la description, por eso esa línea importa tanto) o explícita escribiendo /nombre-de-la-skill. Dato útil: los comandos personalizados se fusionaron con las skills, así que un .claude/commands/deploy.md y una skill .claude/skills/deploy/SKILL.md crean ambos el comando /deploy y funcionan igual; tus archivos de .claude/commands/ siguen sirviendo.

Skill, CLAUDE.md, hook o subagente

Cuatro herramientas parecidas que conviene no confundir:

  • CLAUDE.md: datos y reglas que quieres en cada sesión.
  • Skill: un procedimiento que se carga bajo demanda.
  • Hook: un comando determinista que se dispara en un evento fijo (siempre, sin que el modelo decida).
  • Subagente: una tarea que corre en un contexto aislado.

Mover procedimientos del CLAUDE.md a skills es, además, una de las mejores formas de reducir tokens: mantienes el contexto base pequeño y cargas el detalle solo cuando se usa.

Preguntas frecuentes

¿Qué es una skill en Claude Code?

Un archivo SKILL.md con instrucciones que Claude carga solo cuando son relevantes o cuando la invocas con /nombre. Sirve para empaquetar procedimientos repetibles.

¿En qué se diferencia del CLAUDE.md?

El CLAUDE.md se carga completo en cada sesión (gasta contexto siempre); la skill se carga bajo demanda (no cuesta contexto hasta que se usa). Regla: dato siempre necesario, CLAUDE.md; procedimiento ocasional, skill.

¿Dónde se guardan las skills?

En ~/.claude/skills/<nombre>/SKILL.md (personales) o .claude/skills/<nombre>/SKILL.md (del proyecto), además de las que traen los plugins.

¿Cómo invoco una skill?

Automáticamente, cuando tu pedido coincide con su description, o a mano escribiendo /nombre-de-la-skill.

¿Puedo pasarle datos o argumentos a una skill?

Sí. Con !`comando` inyectas la salida de un comando (por ejemplo un git diff) y con $ARGUMENTS capturas el texto que escribas después del nombre de la skill.