Claude Code Skills: qué son, cómo crearlos y usar SKILL.md
Los Claude Code Skills permiten convertir
instrucciones, checklists, conocimiento especializado
y procedimientos repetitivos en capacidades reutilizables.
Cada Skill puede incluir un archivo
SKILL.md, documentación adicional,
scripts, argumentos, herramientas autorizadas
y reglas para decidir cuándo Claude
debe cargarlo automáticamente.
¿Qué son los Skills de Claude Code?
Un Skill es una capacidad reutilizable
definida mediante un archivo SKILL.md.
Claude Code puede cargar el Skill automáticamente
cuando su descripción coincide con la tarea
o puedes ejecutarlo manualmente con
/nombre-del-skill.
Para un Skill de proyecto se utiliza normalmente
.claude/skills/nombre/SKILL.md,
mientras que los Skills personales se guardan en
~/.claude/skills/.
A diferencia de CLAUDE.md,
el contenido completo del Skill
solo entra al contexto cuando se utiliza.
Qué puede contener un Claude Code Skill
Un Skill puede ser mucho más que un prompt guardado.
Instrucciones
Procedimientos, reglas, checklists y conocimiento especializado.
Referencias
Documentación extensa cargada únicamente cuando realmente sea necesaria.
Argumentos
Recibe nombres, archivos, entornos y otros parámetros al ejecutarlo.
Comandos
Puede incorporar contexto generado mediante comandos de terminal.
Scripts
Python, Bash, PowerShell u otras herramientas auxiliares.
Subagentes
Un Skill puede ejecutarse en un contexto aislado.
Claude descubre el Skill y lo carga cuando lo necesita
El objetivo es mantener el contexto ligero hasta que una capacidad sea realmente relevante.
Claude conoce el Skill
La descripción informa qué hace y cuándo debería utilizarse.
Carga SKILL.md
El contenido completo entra al contexto únicamente cuando se invoca.
Ejecuta el procedimiento
Claude aplica las instrucciones, herramientas y recursos definidos.
Claude Code Skills vs CLAUDE.md
Ambos proporcionan instrucciones a Claude, pero sirven para necesidades diferentes.
| Aspecto | CLAUDE.md | Skill |
|---|---|---|
| Reglas generales | Ideal | Posible |
| Procedimientos largos | No recomendado | Ideal |
| Carga constante | Sí | No |
| Carga bajo demanda | No | Sí |
| Scripts auxiliares | No es su función | Sí |
| Invocación con /comando | No | Sí |
| Argumentos | No | Sí |
Si Claude debe recordarlo
prácticamente todo el tiempo,
colócalo en
CLAUDE.md.
Si es un procedimiento
que solo necesitas
en determinadas tareas,
conviértelo en Skill.
Dónde guardar los Skills de Claude Code
La ubicación determina en qué proyectos estará disponible cada Skill.
| Tipo | Ruta | Disponible en |
|---|---|---|
| Personal | ~/.claude/skills/nombre/SKILL.md |
Todos tus proyectos locales |
| Proyecto | .claude/skills/nombre/SKILL.md |
Ese repositorio |
| Nested | subdir/.claude/skills/nombre/SKILL.md |
Área específica del proyecto |
| Plugin | plugin/skills/nombre/SKILL.md |
Donde esté habilitado el plugin |
| Enterprise | Directorio administrado | Usuarios de la organización |
Skills compartidos dentro de un proyecto
Si una capacidad pertenece al repositorio, guárdala dentro del propio proyecto.
mi-proyecto/
├── .claude/
│ └── skills/
│ ├── security-review/
│ │ └── SKILL.md
│ ├── create-endpoint/
│ │ └── SKILL.md
│ └── deploy-staging/
│ └── SKILL.md
├── src/
└── tests/
Al incluir
.claude/skills/
en el repositorio,
todo el equipo
puede utilizar
los mismos workflows.
Cómo crear un Claude Code Skill
La estructura mínima
requiere un directorio
y un archivo
llamado exactamente
SKILL.md.
Crear el directorio
mkdir -p .claude/skills/security-review
Crear SKILL.md
---
name: security-review
description: Revisa cambios de código buscando vulnerabilidades, validación insuficiente, problemas de autorización y exposición de secretos.
---
# Security Review
Analiza los cambios relacionados con seguridad.
Comprueba:
- autenticación
- autorización
- validación de inputs
- sanitización
- escaping
- SQL injection
- XSS
- CSRF
- exposición de secretos
- permisos de archivos
- llamadas a APIs externas
Devuelve primero los problemas críticos.
Incluye archivo y ubicación para cada hallazgo.
No modifiques el código salvo que el usuario lo solicite.
Qué es el frontmatter de SKILL.md
La cabecera YAML controla cómo Claude Code descubre y ejecuta el Skill.
---
name: my-skill
description: Describe qué hace el Skill y cuándo debe usarse
disable-model-invocation: false
user-invocable: true
allowed-tools: Read Grep
---
Claude Code solo interpreta la cabecera como frontmatter cuando el archivo comienza directamente con los delimitadores YAML.
Campos importantes de un Skill
| Campo | Función |
|---|---|
name |
Nombre visible del Skill |
description |
Explica qué hace y cuándo utilizarlo |
when_to_use |
Añade contexto sobre cuándo debería activarse |
argument-hint |
Muestra qué argumentos espera |
arguments |
Define argumentos posicionales con nombre |
disable-model-invocation |
Impide que Claude lo ejecute automáticamente |
user-invocable |
Controla si aparece como comando para el usuario |
allowed-tools |
Preautoriza herramientas durante la invocación |
context |
Puede ejecutar el Skill en contexto aislado |
agent |
Selecciona el subagente que lo ejecutará |
La descripción determina cuándo Claude descubre el Skill
description
es uno de los campos
más importantes.
“Ayuda con código”
Es demasiado genérica. Claude no sabe qué tareas deberían activar el Skill.
Describe tarea + contexto
Explica claramente qué hace y qué solicitudes deberían utilizarlo.
---
description: Revisa código WordPress buscando problemas de seguridad. Usa este Skill cuando el usuario solicite revisar plugins, themes, AJAX, REST API, formularios, nonces, capabilities o consultas SQL de WordPress.
---
Skills automáticos vs Skills manuales
| Configuración | Tú puedes usarlo | Claude puede usarlo |
|---|---|---|
| Predeterminado | Sí | Sí |
disable-model-invocation: true |
Sí | No |
user-invocable: false |
No | Sí |
Acciones con efectos
importantes como
desplegar producción,
enviar mensajes
o crear releases
deberían considerar
disable-model-invocation: true.
Ejemplo de Skill que solo puede ejecutar el usuario
---
name: deploy
description: Despliega la aplicación al entorno indicado
disable-model-invocation: true
argument-hint: "[staging|production]"
---
Despliega $ARGUMENTS.
Antes del despliegue:
1. revisa git status
2. ejecuta los tests
3. ejecuta lint
4. ejecuta build
5. detente si algo falla
Después:
1. realiza el despliegue
2. verifica la aplicación
3. informa la versión desplegada
4. resume cualquier problema encontrado
Invocación manual
/deploy staging
Pasar argumentos a un Skill
Los Skills pueden reutilizar la misma lógica con diferentes entradas.
Obtener todos los argumentos
---
name: explain
description: Explica un componente del proyecto
argument-hint: "[archivo o componente]"
---
Investiga y explica:
$ARGUMENTS
Incluye:
- responsabilidad
- dependencias
- entradas
- salidas
- posibles riesgos
/explain src/auth/AuthService.php
Utilizar $0, $1 y $2
---
name: migrate-component
description: Migra un componente entre tecnologías
argument-hint: "[componente] [origen] [destino]"
---
Migra el componente $0
desde $1
hacia $2.
Mantén:
- comportamiento actual
- tests existentes
- compatibilidad externa
/migrate-component SearchBar JavaScript TypeScript
Un Skill puede contener varios archivos
No necesitas introducir toda la documentación dentro de SKILL.md.
security-review/
├── SKILL.md
├── checklist.md
├── wordpress-security.md
├── examples.md
└── scripts/
└── scan.php
El Skill principal puede explicar qué recursos existen y cuándo Claude debería consultarlos.
## Recursos adicionales
- Para la checklist general consulta [checklist.md](checklist.md)
- Para WordPress consulta [wordpress-security.md](wordpress-security.md)
- Para ejemplos de vulnerabilidades consulta [examples.md](examples.md)
Cuánto debería medir SKILL.md
Mantén SKILL.md por debajo de unas 500 líneas
Para documentación extensa, especificaciones, ejemplos o referencias, utiliza archivos auxiliares en el mismo directorio.
Cuando un Skill es invocado, su contenido renderizado permanece disponible durante los siguientes turnos de la conversación. Por eso conviene mantenerlo conciso.
Inyectar datos actuales mediante comandos
Un Skill puede ejecutar un comando antes de enviarse a Claude.
Ejemplo con Git
---
name: review-changes
description: Revisa los cambios actuales de Git y detecta riesgos
---
## Cambios actuales
!`git diff HEAD`
## Estado
!`git status --short`
## Instrucciones
Revisa los cambios anteriores.
Busca:
- bugs
- cambios accidentales
- seguridad
- falta de tests
- código muerto
- valores hardcoded
Claude Code ejecuta primero la instrucción y reemplaza el marcador por la salida real.
Skills con PowerShell
Los Skills también pueden utilizar PowerShell cuando el entorno lo soporta.
---
name: windows-status
description: Analiza información del entorno Windows
shell: powershell
---
## Git
!`git status --short`
## Node
!`node --version`
## PHP
!`php --version`
Analiza el entorno anterior
y señala posibles incompatibilidades.
Preautorizar herramientas con allowed-tools
Un Skill puede autorizar determinadas herramientas durante el turno en que se ejecuta.
---
name: git-summary
description: Resume el estado actual del repositorio
allowed-tools:
- Bash(git status *)
- Bash(git diff *)
- Bash(git log *)
---
Revisa el repositorio
y resume los cambios recientes.
allowed-tools
se aplica al turno
que invoca el Skill.
Al enviar
el siguiente mensaje,
esa concesión
desaparece.
Un Skill puede concederse herramientas, por lo que conviene revisar su frontmatter antes de utilizar Skills descargados o incluidos en repositorios ajenos.
Ejecutar un Skill dentro de un subagente
Algunas tareas generan demasiado contexto para ejecutarse en la conversación principal.
---
name: deep-research
description: Investiga profundamente una parte del codebase
context: fork
agent: Explore
---
Investiga $ARGUMENTS.
1. encuentra los archivos relevantes
2. analiza el código
3. sigue las dependencias
4. identifica riesgos
5. devuelve conclusiones con referencias concretas
Crea un contexto separado, el subagente realiza el trabajo y devuelve un resumen a la conversación principal.
Skill vs subagente
| Aspecto | Skill | Subagente |
|---|---|---|
| Objetivo | Procedimiento reutilizable | Delegar trabajo |
| Contexto propio | Opcional | Sí |
| Comando /nombre | Sí | No directamente |
| Autoactivación | Sí | Claude decide delegar |
| Archivos auxiliares | Sí | No es su función principal |
| Pueden combinarse | Sí | Sí |
Claude Code también incluye Skills propios
No todos los Skills tienen que ser creados manualmente.
Revisión de código
Skill incluido para analizar cambios de código.
Debugging
Ayuda a investigar errores y comportamiento inesperado.
Verificación
Puede construir y ejecutar la aplicación para comprobar cambios.
Ejecutar aplicación
Intenta iniciar y utilizar el proyecto en ejecución.
Diagnóstico
Analiza la instalación y configuración de Claude Code.
Claude API
Skill especializado en tareas relacionadas con la API de Anthropic.
Los custom commands ahora forman parte de Skills
Claude Code mantiene compatibilidad con el formato anterior.
| Formato | Ejemplo | Resultado |
|---|---|---|
| Skill actual | .claude/skills/deploy/SKILL.md |
/deploy |
| Formato anterior | .claude/commands/deploy.md |
/deploy |
Los archivos
de .claude/commands/
continúan funcionando,
pero Skills
admiten además
directorios,
recursos auxiliares
y funciones avanzadas.
Ejemplo de Skill para revisar plugins WordPress
Un procedimiento especializado en WordPress es un excelente candidato para Skill.
---
name: wordpress-review
description: Revisa plugins y themes WordPress. Úsalo para auditorías de PHP, AJAX, REST API, WooCommerce, seguridad y calidad de código WordPress.
---
# WordPress Review
Investiga el proyecto antes de emitir conclusiones.
## Seguridad
Comprueba:
- sanitización de inputs
- escaping de outputs
- nonces
- capabilities
- validación de usuarios
- SQL preparado
- AJAX
- REST permissions_callback
- subida de archivos
- exposición de secretos
## WordPress
Comprueba:
- hooks
- filtros
- acciones
- uso de APIs del core
- consultas con $wpdb
- compatibilidad
- prefijos
- activación y desactivación
## WooCommerce
Cuando corresponda revisa:
- endpoints
- My Account
- órdenes
- roles
- checkout
- datos de clientes
## Resultado
Clasifica hallazgos:
1. crítico
2. alto
3. medio
4. bajo
Para cada problema incluye:
- archivo
- causa
- impacto
- recomendación
No modifiques código hasta que el usuario lo solicite.
/wordpress-review
Ejemplo de Skill para preparar releases
---
name: prepare-release
description: Prepara una release sin publicarla
disable-model-invocation: true
allowed-tools:
- Bash(git status *)
- Bash(git diff *)
- Bash(git log *)
---
Prepara la release $ARGUMENTS.
1. comprueba git status
2. revisa cambios desde la última versión
3. identifica breaking changes
4. revisa tests
5. revisa documentación
6. genera release notes
7. propone versión semántica
No:
- hagas push
- publiques releases
- cambies tags
- despliegues producción
Ejemplo de Skill para crear endpoints
---
name: create-endpoint
description: Crea endpoints siguiendo las convenciones API del proyecto
argument-hint: "[recurso]"
---
Crea el endpoint para:
$ARGUMENTS
Antes de programar:
1. encuentra endpoints similares
2. identifica arquitectura actual
3. revisa validación
4. revisa autenticación
5. revisa formato de errores
Durante la implementación:
- reutiliza patrones existentes
- valida inputs
- verifica autorización
- añade tests
- documenta el endpoint
Al terminar:
- ejecuta tests
- ejecuta lint
- resume los archivos modificados
Skills dentro de Claude Code Plugins
Si quieres distribuir varios Skills junto con agents, Hooks o servidores MCP, un Plugin puede ser más apropiado.
my-plugin/
├── .claude-plugin/
│ └── plugin.json
├── skills/
│ ├── review/
│ │ └── SKILL.md
│ └── deploy/
│ └── SKILL.md
├── agents/
├── hooks/
└── .mcp.json
Un Skill llamado
review
dentro del plugin
my-plugin
puede aparecer como
/my-plugin:review.
Ver los Skills disponibles
Abrir el administrador
/skills
El administrador permite revisar qué Skills están disponibles y ajustar cómo aparecen en la sesión.
Editar Skills sin reiniciar Claude Code
Claude Code observa normalmente los directorios de Skills existentes.
Edita SKILL.md durante la sesión
Los cambios realizados sobre Skills personales o del proyecto pueden detectarse durante la sesión sin reiniciar Claude Code.
Si creas por primera vez el directorio principal de Skills después de iniciar la sesión, puede ser necesario reiniciar Claude Code para que empiece a observarlo.
Cómo saber si un Skill realmente funciona
Que Claude active un Skill no significa automáticamente que esté bien diseñado.
Prueba solicitudes donde sí debería activarse.
Prueba solicitudes donde no debería activarse.
Compara el resultado con el Skill activado y desactivado.
Ejecuta las pruebas desde sesiones nuevas para evitar contexto residual.
Ajusta especialmente
description
si se activa
demasiado
o demasiado poco.
Skill Creator para probar Skills
Anthropic dispone de un plugin oficial orientado a evaluar y mejorar Skills.
Instalar Skill Creator
/plugin install skill-creator@claude-plugins-official
Puede ejecutar casos aislados, evaluar resultados, comparar con y sin Skill, medir tokens y ayudar a optimizar la descripción.
Demasiados Skills también tienen un coste
El contenido completo no se carga siempre, pero Claude necesita conocer las descripciones de los Skills disponibles.
Encontrar Skills poco utilizados
/skill-doctor
Desactiva Skills que nunca utilizas o cuya descripción ocupa contexto sin aportar valor.
Cómo diseñar buenos Claude Code Skills
Define una responsabilidad clara por Skill.
Escribe una description específica sobre cuándo utilizarlo.
Mantén SKILL.md conciso y mueve referencias extensas a otros archivos.
Utiliza argumentos cuando el procedimiento deba adaptarse.
Haz manuales los Skills con efectos importantes.
Limita allowed-tools a lo realmente necesario.
Ejecuta tareas muy grandes en un subagente.
Versiona los Skills compartidos junto al proyecto.
Cuándo convertir un procedimiento en Skill
Documentación oficial de Claude Code Skills
Los Skills están evolucionando rápidamente, por lo que conviene revisar la documentación para nuevas opciones de frontmatter, agentes y distribución.
Claude Code Skills
Creación, SKILL.md, scopes, arguments, scripts y subagentes.
Ver documentación oficial →Plugins
Distribución de Skills junto con agents, Hooks y MCP.
Ver Plugins →Guías relacionadas
Continúa con subagentes, MCP, Plugins, Hooks y automatización.
FAQ sobre Claude Code Skills
Respuestas sobre SKILL.md, rutas, activación, argumentos, scripts, herramientas y distribución.
Un Skill es una capacidad reutilizable definida mediante un archivo SKILL.md. Puede contener instrucciones, procedimientos, recursos, scripts y configuración.
Los Skills personales
se guardan normalmente
en
~/.claude/skills/.
Los Skills compartidos
de un proyecto
se guardan en
.claude/skills/.
SKILL.md es el archivo principal de un Skill. Contiene frontmatter YAML con la configuración y contenido Markdown con las instrucciones que Claude debe seguir.
Sí. De forma predeterminada Claude conoce las descripciones de los Skills disponibles y puede cargar uno automáticamente cuando resulte relevante.
Utiliza
una barra
seguida del nombre
del directorio del Skill.
Por ejemplo,
un Skill ubicado
en
.claude/skills/review/SKILL.md
puede ejecutarse
mediante
/review.
Añade
disable-model-invocation: true
al frontmatter.
El Skill seguirá
disponible
para que tú
lo invoques manualmente.
CLAUDE.md contiene instrucciones generales cargadas como contexto del proyecto. Un Skill se utiliza para capacidades o procedimientos concretos y su contenido completo se carga únicamente cuando se invoca.
Sí. El directorio puede incluir documentación, ejemplos, referencias y scripts auxiliares. SKILL.md debe indicar cuándo utilizar esos recursos.
Sí. Claude Code admite inyección de contexto mediante comandos utilizando la sintaxis de shell del Skill, sujeto a configuración y permisos.
Sí.
Un Skill puede utilizar
context: fork
y seleccionar
un agente
como Explore,
Plan,
general-purpose
o un subagente
personalizado.
Delega tareas con Claude Code Subagents
Ya puedes convertir procedimientos repetitivos en Skills reutilizables. El siguiente paso es aprender a crear agentes especializados con su propio contexto, modelo, instrucciones, herramientas y permisos.
Claude Code Subagents →