Claude Code — Skills
Las Agent Skills son capacidades reutilizables y combinables: un directorio con un archivo SKILL.md (frontmatter YAML más un cuerpo en markdown) y, opcionalmente, archivos de apoyo al lado (plantillas, ejemplos, scripts). Claude las descubre solo y las invoca cuando su descripción encaja con la tarea — o las invocas tú directamente con /<nombre>.
Los comandos slash personalizados se fusionaron con las Skills: tanto .claude/commands/review.md como .claude/skills/review/SKILL.md crean /review y se comportan igual. Si hay conflicto de nombres, gana la skill.
Ubicaciones y precedencia
| Ubicación | Ámbito |
|---|---|
| Ajustes gestionados (empresa) | Toda la organización |
~/.claude/skills/<nombre>/SKILL.md | Personal, todos tus proyectos |
.claude/skills/<nombre>/SKILL.md | Del proyecto, se sube a git |
<plugin>/skills/<nombre>/SKILL.md | Incluida en un plugin, con el espacio de nombres nombre-plugin:nombre-skill |
Precedencia cuando coincide el nombre: empresa > personal > proyecto.
Extras del descubrimiento:
- Monorepos: al editar archivos en
packages/frontend/también se cargan las skills depackages/frontend/.claude/skills/. - Las skills de los directorios añadidos con
--add-dirse cargan y detectan cambios en vivo.
Estructura de SKILL.md
---
name: changelog
description: Redacta una entrada de changelog orientada al usuario a partir de los commits desde el último tag. Úsala al preparar una release.
argument-hint: "[versión]"
allowed-tools: Bash(git log *), Bash(git tag *)
---
Redacta la entrada de changelog para la versión $ARGUMENTS.
1. Ejecuta `git tag` para encontrar el último tag.
2. Ejecuta `git log <tag>..HEAD --oneline` para obtener los commits.
3. Agrúpalos en Añadido / Cambiado / Arreglado, escrito para usuarios, no para desarrolladores.
Estado actual de git, como contexto:
!`git status --short`
Mantén SKILL.md por debajo de las 500 líneas; el material de referencia largo va en archivos de apoyo al lado, enlazados desde el cuerpo.
Campos del frontmatter
Todos son opcionales, pero description es muy recomendable: es lo que dispara la invocación automática.
| Campo | Para qué sirve |
|---|---|
name | Por defecto, el nombre del directorio; minúsculas, números y guiones; máximo 64 caracteres |
description | Qué hace la skill y cuándo usarla |
argument-hint | Lo que se muestra en el autocompletado de / |
disable-model-invocation | false por defecto; true = sólo la puede invocar la persona |
user-invocable | true por defecto; false = no aparece en el menú de / |
allowed-tools | Herramientas que la skill puede usar |
model | Sobrescribe el modelo |
context: fork | Ejecuta la skill en un subagente bifurcado |
agent | Tipo de subagente para esa bifurcación (por ejemplo Explore) |
hooks | Hooks propios de la skill |
Cómo se invocan
- Escribe
/<nombre>— el autocompletado muestra todo lo disponible. - O deja que Claude la invoque solo a partir del
description. - Encadena skills al principio de un mensaje (v2.1.199+):
/skill-a /skill-b haz XYZ, hasta seis.
Sustitución de argumentos
| Marcador | Se sustituye por |
|---|---|
$ARGUMENTS | Todo lo que va después del comando |
$ARGUMENTS[N] | El argumento N |
$N | Forma corta de $ARGUMENTS[N] |
${CLAUDE_SESSION_ID} | El ID de la sesión actual |
Si $ARGUMENTS no aparece en ninguna parte del cuerpo, los argumentos se añaden al final como ARGUMENTS: <valor>.
Inyección dinámica de contexto
Un marcador !`comando` ejecuta ese comando de shell antes de que el contenido de la skill llegue a Claude, y su salida sustituye al marcador. Incluir la palabra ultrathink en el cuerpo activa el razonamiento extendido.
Permisos y presupuesto
- Reglas de permisos:
Skill(deniega todas las skills),Skill(commit)(exacta),Skill(review-pr *)(por prefijo). - Las descripciones de las skills comparten un presupuesto del 2% de la ventana de contexto (16.000 caracteres de reserva); se sobrescribe con
SLASH_COMMAND_TOOL_CHAR_BUDGET. Puedes ver cuánto consumen con/context.
Última verificación: 2026-09-07
Fuentes oficiales:
Las herramientas de IA para programar evolucionan rápido. Si encuentras información desactualizada, abre un issue o un pull request.