Qué es una skill (y cuándo la invoca Claude)
Un slash command es una skill de un solo fichero. Una skill completa es un directorio con un SKILL.md y, opcionalmente, ficheros de apoyo. Lo nuevo y potente: Claude puede cargarla solo cuando es relevante, no solo cuando tú la invocas.
Tu primera skill en tres pasos
Las skills personales viven en ~/.claude/skills/<nombre>/SKILL.md. Crea una que resuma tus cambios sin commitear:
mkdir -p ~/.claude/skills/resumen-cambios
~/.claude/skills/resumen-cambios/SKILL.md:
---
description: Resume los cambios sin commitear y señala riesgos. Úsala cuando el
usuario pregunte qué ha cambiado, quiera un mensaje de commit o pida revisar su diff.
---
## Cambios actuales
!`git diff HEAD`
## Instrucciones
Resume los cambios de arriba en dos o tres bullets, luego lista los riesgos que
veas (falta de manejo de errores, valores hardcodeados, tests por actualizar).
Si el diff está vacío, dilo.
Ya puedes usarla de dos formas. A mano: /resumen-cambios. O dejando que Claude la invoque cuando preguntes algo que encaje con la description, p.ej. "¿qué he cambiado?".
Editar el
SKILL.mdse aplica en la misma sesión. Pero si creas una carpeta de skills nueva que no existía al arrancar y la skill no aparece, ejecuta/reload-skillspara re-escanear sin reiniciar.
Esa línea
!`git diff HEAD`no es decorativa: Claude Code ejecuta el comando antes de pasarle la skill y sustituye la línea por su salida. Así la skill llega con tu diff real ya dentro. Lo vemos a fondo en la próxima lección.
La description es el disparador
Este es el concepto clave de toda la skill. La description no es documentación: es lo que Claude lee para decidir si esta skill aplica a lo que estás pidiendo. Por eso se escribe pensando en los disparadores:
- ❌ Vago: "Ayuda con git."
- ✅ Concreto: "Resume los cambios sin commitear y señala riesgos. Úsala cuando el usuario pregunte qué ha cambiado, quiera un mensaje de commit o pida revisar su diff."
Si la skill no se activa cuando esperas, casi siempre es que a la description le faltan las palabras que tú usarías de forma natural.
Manual, automática, o ambas
Por defecto, una skill la podéis invocar los dos: tú con /nombre, y Claude cuando la ve relevante. Dos campos del frontmatter ajustan eso:
| Frontmatter | Tú la invocas | Claude la invoca | Para qué |
|---|---|---|---|
| (por defecto) | sí | sí | conocimiento o acciones seguras |
disable-model-invocation: true | sí | no | acciones con efectos: /deploy, /commit |
user-invocable: false | no | sí | conocimiento de fondo, no una acción |
La regla práctica: si la skill despliega, commitea o envía algo, ponle
disable-model-invocation: true. No quieres que Claude decida hacer un deploy porque "el código parece listo". El timing de las acciones con efectos lo decides tú.
Skills que ya vienen de serie
Claude Code trae skills integradas que invocas igual, con /: /code-review, /debug, /loop, /run, /verify… No son comandos de lógica fija: son prompts que le dan a Claude instrucciones detalladas para orquestar el trabajo. Échales un ojo antes de escribir las tuyas; alguna te ahorra el esfuerzo.
Qué llevas hasta aquí
- Una skill es un directorio con
SKILL.md; vive en~/.claude/skills/(personal) o.claude/skills/(proyecto). - La
descriptiones el disparador: escríbela con las palabras que usarías al pedirlo. - Controlas quién la invoca con
disable-model-invocationyuser-invocable.
En la siguiente lección, la anatomía completa: frontmatter, ficheros de soporte y contexto dinámico.
Fuente oficial: Skills
¿Quieres llevar la cuenta de las lecciones que has terminado?
Entrar para guardar progreso