Sistema de Skills
Los skills son archivos Markdown con frontmatter YAML que inyectan prompts especializados en las conversaciones. Claude Code incluye 17 skills integrados y permite crear skills personalizados a nivel de proyecto y usuario.
/nombre-skill (como los comandos de barra)
pero funcionan diferente: inyectan un prompt en la conversación en lugar de ejecutar código local.
El modelo también puede auto-invocar skills cuando detecta una tarea relevante.
Arquitectura
El sistema de Skills tiene 7 componentes principales que trabajan juntos para cargar, descubrir, mostrar y ejecutar skills.
| Componente | Archivo | Propósito |
|---|---|---|
| SkillTool | src/tools/SkillTool/ | Herramienta que invoca el modelo para ejecutar skills |
| Bundled Skills | src/skills/bundled/ | Skills compilados en el binario de la CLI |
| Skill Loader | src/skills/loadSkillsDir.ts | Carga skills desde directorios en disco |
| Skill Discovery | src/utils/skills/skillChangeDetector.ts | Detección dinámica de nuevos skills en tiempo de ejecución |
| Skill Listing | src/utils/attachments.ts | Inyecta el listado de skills en system-reminder cada turno |
| Usage Tracking | src/utils/suggestions/skillUsageTracking.ts | Seguimiento con decaimiento exponencial para ordenar sugerencias |
| Skill Improvement | src/utils/hooks/skillImprovement.ts | Hook post-muestreo que mejora automáticamente los prompts de skills |
Fuentes de carga (por prioridad)
Los skills se cargan desde 9 fuentes distintas. Las de mayor prioridad sobreescriben a las de menor cuando hay conflicto de nombres.
| # | Fuente | Ruta | Alcance |
|---|---|---|---|
| 1 | Gestionado (política) | <managed_path>/.claude/skills/ | Corporativo / toda la organización |
| 2 | Usuario | ~/.claude/skills/ | Personal, todos los repos |
| 3 | Proyecto | .claude/skills/ (y directorios padre hasta home) | Proyecto, compartido con el equipo |
| 4 | Directorios adicionales | --add-dir <path>/.claude/skills/ | Específico de la sesión |
| 5 | Comandos legacy | ~/.claude/commands/ y .claude/commands/ | Formato obsoleto (deprecado) |
| 6 | Integrados | Compilados en el binario | Incorporados |
| 7 | Plugin | Instalados via marketplace | Alcance del plugin |
| 8 | MCP | Desde servidores MCP conectados | Alcance del servidor |
| 9 | Dinámico | Descubiertos en tiempo de ejecución al tocar archivos | Condicional a la ruta |
Formato del archivo de skill
Los skills viven en .claude/skills/<nombre>/SKILL.md.
El nombre del directorio se convierte en el nombre del skill. Existe un formato legacy de archivo único (<nombre>.md) que está deprecado.
Campos clave del frontmatter
| Campo | Tipo | Descripción |
|---|---|---|
| name | string | Nombre a mostrar (por defecto, nombre del directorio) |
| description | string | Descripción corta que aparece en el listado de skills |
| allowed-tools | string[] | Lista blanca de herramientas que puede usar el skill (ej. Bash(npm:*), Read) |
| when_to_use | string | Cuándo debe auto-invocar este skill el modelo |
| argument-hint | string | Texto de sugerencia para los argumentos en el typeahead |
| model | sonnet|opus|haiku|inherit | Sobreescribe el modelo para este skill |
| effort | low|medium|high|max | Sobreescribe el nivel de esfuerzo/razonamiento |
| context | inline|fork | inline: expande en la conversación actual; fork: ejecuta en sub-agente aislado |
| user-invocable | boolean | Si el usuario puede invocarlo con /nombre |
| disable-model-invocation | boolean | Impide que el modelo lo auto-invoque |
| paths | string[] | Patrones glob para activación condicional cuando se tocan ciertos archivos |
| hooks | object | Hooks de ciclo de vida con alcance de sesión (PreToolUse, PostToolUse) |
| skills | string | Lista de skills a precargar cuando este skill se ejecuta |
Variables de contenido
| Variable | Descripción |
|---|---|
| $ARGUMENTS o $1, $2 | Argumentos pasados por el usuario al invocar el skill |
| ${CLAUDE_SKILL_DIR} | Directorio base del archivo de skill |
| ${CLAUDE_SESSION_ID} | ID de la sesión actual |
| !`comando` | Ejecución de shell en línea: la salida se inyecta en el prompt al cargarse |
Skills integrados
17 skills están compilados en el binario. 10 están disponibles para todos los usuarios, 5 son exclusivos de Anthropic y 2 requieren feature flags.
Skills públicos (10)
Escribe cambios en settings.json. Contiene el schema completo de configuración, patrones de hooks, sintaxis de permisos y un proceso de verificación de hooks en 7 pasos.
Referencia para editar keybindings.json. Se auto-invoca cuando el usuario pregunta sobre atajos de teclado. No es invocable por el usuario.
Lee el final del log de depuración y ejecuta un proceso de investigación en 5 pasos. Sugiere lanzar el subagente claude-code-guide.
Revisión de código en 3 fases: identifica cambios, lanza 3 agentes de revisión en paralelo (reutilización, calidad, eficiencia) y luego corrige los problemas.
Orquestador de cambios a gran escala. Descompone el trabajo en 5-30 unidades, lanza un agente en segundo plano por unidad con aislamiento de worktree y hace seguimiento del progreso.
Programa una tarea recurrente via CronCreate. Convierte intervalos en lenguaje natural a expresiones cron y ejecuta la tarea de inmediato.
Programa agentes remotos via RemoteTrigger. Asistente interactivo para crear, listar y ejecutar tareas de agentes programadas.
Carga 247KB de documentación de API integrada. Detecta automáticamente el lenguaje del proyecto y ofrece enrutamiento de tareas para el uso de la Claude API/SDK.
Activa las herramientas de automatización del navegador Chrome. Solo se habilita cuando se detecta la extensión de Chrome.
Genera un informe analítico de tus sesiones de Claude Code. Se carga de forma lazy.
Skills exclusivos de Anthropic (5)
Verifica que un cambio de código funciona ejecutando realmente la aplicación. Los archivos de referencia proporcionan ejemplos para CLI y patrones de verificación de servidores.
Genera texto de relleno aleatorio a partir de palabras en inglés verificadas de 1 token. Por defecto 10.000 tokens, máximo 500.000. Se usa para pruebas de contexto largo.
Proceso en 4 pasos para capturar un flujo de trabajo repetible como SKILL.md. Entrevista al usuario en 4 rondas via AskUserQuestion y luego genera el archivo.
Revisión de memoria en 4 pasos: recopilar todas las capas, clasificar cada entrada por destino (CLAUDE.md, local, equipo, auto), identificar duplicados, presentar propuestas.
Diagnostica sesiones congeladas o lentas inspeccionando procesos, muestras de CPU y logs de depuración. Reporta via Slack MCP. Nunca mata procesos.
Skills con feature flag (2)
Consolida los logs diarios en entradas estructuradas de MEMORY.md. Se ejecuta por la noche en modo autónomo KAIROS.
Skill de caza de bugs y artefactos de revisión.
Sistema de descubrimiento
Aparición automática
Los skills se listan en los mensajes system-reminder cada turno. Presupuesto: 1% de la ventana de contexto. Los skills integrados nunca se truncan.
Activación basada en rutas
Los skills con paths: en el frontmatter solo se activan cuando el modelo toca archivos que coincidan con esos patrones glob.
Descubrimiento dinámico
Al leer/escribir archivos, Claude recorre los directorios padre buscando directorios .claude/skills/. Esto permite jerarquías de skills anidadas por paquete.
Observador de archivos
chokidar monitorea los directorios de skills y recarga automáticamente cuando cambian los archivos. Puedes editar skills en vivo durante una sesión.
Seguimiento de uso
Decaimiento exponencial con vida media de 7 días. Los skills usados más recientemente y frecuentemente aparecen más arriba en las sugerencias.
Búsqueda experimental
Un sistema de búsqueda remota (EXPERIMENTAL_SKILL_SEARCH) puede descubrir skills canónicos desde un backend. Se cachean localmente con prefijo _canonical_.
Crear skills personalizados
Crea un archivo SKILL.md en cualquiera de estos directorios.
El nombre del directorio se convierte en el comando de barra.
| Ubicación | Alcance | Cuándo se descubre |
|---|---|---|
| ~/.claude/skills/<nombre>/SKILL.md | Personal, todos los repos | Al iniciar |
| .claude/skills/<nombre>/SKILL.md | Proyecto, compartido con el equipo | Al iniciar + dinámico |
| <subdir>/.claude/skills/ | Anidado, por paquete | Al tocar archivos del subdirectorio |
| ~/.claude/commands/<nombre>.md | Personal (legacy, deprecado) | Al iniciar |
| .claude/commands/<nombre>.md | Proyecto (legacy, deprecado) | Al iniciar |
Skill mínimo
---
description: Ejecutar tests y corregir fallos
user-invocable: true
---
Ejecuta la suite de tests. Si fallan, corrígelos. Ejemplo con contexto fork
Los skills con context: fork se ejecutan en un sub-agente aislado.
La salida no contamina el contexto principal, puede usar un modelo diferente y tiene su propio presupuesto de tokens.
---
name: Auditoria de Seguridad
description: Ejecuta una auditoría de seguridad en un agente aislado
context: fork
agent: general-purpose
model: opus
effort: high
user-invocable: true
---
Realiza una auditoría de seguridad exhaustiva del código actual.
Busca el OWASP top 10, secretos embebidos y dependencias inseguras.