Guía de skills de los agentes
Agent Skills son capacidades reutilizables basadas en sistemas de archivos que amplían la funcionalidad de Claude. Empaquetan conocimientos específicos de dominio, flujos de trabajo y mejores prácticas en componentes detectables que Claude utiliza automáticamente cuando es relevante.
Introducción
Skills de los agentes son capacidades modulares que transforman a los agentes de uso general en especialistas. A diferencia de los avisos (instrucciones de nivel de conversación para tareas únicas), las skills cargan bajo demanda y eliminan la necesidad de proporcionar repetidamente la misma orientación a través de múltiples conversaciones.
Principales beneficios
- Especializar a Claude: Capacidades de adaptación para tareas específicas del dominio
- Reducir la repetición: Crear una vez, utilizar automáticamente a través de las conversaciones
- Capacidades de composición: Combinar skills para crear flujos de trabajo complejos
- Escalar los flujos de trabajo: Reutilizar skills en múltiples proyectos y equipos
- Mantener la calidad: Incorporar las mejores prácticas directamente en su flujo de trabajo
Las skills siguen el Skills de los agentes estándar abierto, que funciona en múltiples herramientas de IA. Claude Code amplía el estándar con características adicionales como control de invocación, ejecución de subagentes e inyección dinámica de contexto.
Nota: Los comandos de barra personalizada se han fusionado en skills.
.claude/commands/los archivos todavía funcionan y soportan los mismos campos de frontmatter. Las skills se recomiendan para el nuevo desarrollo. Cuando ambos existen en la misma ruta (por ejemplo,.claude/commands/review.mdy.claude/skills/review/SKILL.md), la habilidad tiene prioridad.
Cómo funcionan las skills: Divulgación progresiva
Capacidades apalancar un divulgación progresiva de información arquitectura: Claude carga la información por etapas según sea necesario, en lugar de consumir el contexto por adelantado. Esto permite una gestión eficiente del contexto mientras mantiene escalabilidad ilimitada.
Tres niveles de carga
graph TB
subgraph "Nivel 1: metadatos (siempre cargados)"
A["YAML Frontmatter"]
A1["~100 fichas por habilidad"]
A2["nombre + descripción"]
end
subgraph "Nivel 2: Instrucciones (cuando se activa)"
B["SKILL.md Body"]
B1["Bajo 5k tokens"]
B2["Flujos de trabajo y orientación"]
end
subgraph "Nivel 3: Recursos (según se necesiten)"
C["Archivos agrupados"]
C1["De hecho, ilimitado"]
C2["Scripts, plantillas, documentos"]
end
A --> B
B --> C
| Nivel | Cuando se cargue | Costo de la token | Contenido |
|---|---|---|---|
| Nivel 1: metadatos | Siempre (en el inicio) | ~100 fichas por habilidad | name y description de YAML frontmatter |
| Nivel 2: Instrucciones | Cuando se activa la habilidad | Bajo 5k tokens | SKILL.md cuerpo con instrucciones y orientación |
| Nivel 3+: Recursos | Según sea necesario | De hecho, ilimitado | Archivos agrupados ejecutados a través de bash sin cargar contenido en contexto |
Esto mantiene las Skills ligeras: Claude solo sabe que cada habilidad existe y cuándo usarla hasta que se active realmente, pero no es gratis: cada habilidad listada añade su descripción al contexto en cada turno.
Proceso de carga de skills
sequenceDiagram
participant User
participant Claude
participant System
participant SkillInst as Skill Instructions
participant SkillRes as Skill Resources
User->>Claude: "Revisar este código para cuestiones de seguridad"
Claude->>System: Check available skills (metadata)
System-->>Claude: Skill descriptions loaded at startup
Claude->>Claude: Match request to skill description
Claude->>SkillInst: Read code-review-specialist/SKILL.md
SkillInst-->>Claude: Level 2: Instructions loaded
Claude->>Claude: Determine: Need templates?
Claude->>SkillRes: Read templates/checklist.md
SkillRes-->>Claude: Level 3: Template loaded
Claude->>Claude: Execute skill instructions
Claude->>User: Comprehensive code review
Tipos de skills y ubicaciones
| Tipo | Zona | Ámbito de aplicación | Compartido | Lo mejor para |
|---|---|---|---|---|
| Empresa | Configuración administrada | Todos los usuarios de org | Sí. | Normas aplicables a toda la Organización |
| Datos personales | ~/.claude/skills/<skill-name>/SKILL.md |
Individual | No | Flujos de trabajo personales |
| Proyecto | .claude/skills/<skill-name>/SKILL.md |
Equipo | Sí (a través de git) | Normas de los equipos |
| Complemento | <plugin>/skills/<skill-name>/SKILL.md |
Cuando esté habilitado | Depende | Agrupado con complementos |
Cuando las skills comparten el mismo nombre entre los niveles, las ubicaciones de mayor prioridad ganan: empresa > personal > proyecto. Con el mismo nombre en ~/.claude/skills/ y .claude/skills/, el personal corre. Para cambiar la visibilidad de una habilidad (no su precedencia), utilice el skillOverrides ajuste (v2.1.129+) — véase Controlar el comportamiento de superación de skills. Las skills de plugin utilizan un plugin-name:skill-name espacio de nombres, por lo que no pueden entrar en conflicto.
Descubrimiento de skills de subagente (v2.1.133+): Los subagentes ahora descubren skills de proyecto, usuario y plugin a través de la herramienta Habilidad de la misma manera que la sesión principal. Versiones anteriores limitaban los subagentes a su propio conjunto integrado, lo que significaba que los flujos de trabajo de habilidad + subagente se degradaban silenciosamente; desde v2.1.133 el mismo catálogo de skills es visible para ambos.
Descubrimiento automático
Directorios anidados: Cuando trabajas con archivos en subdirectorios, Claude Code descubre automáticamente skills de anidado .claude/skills/ directorios. Por ejemplo, si está editando un archivo en packages/frontend/, Claude Code también busca skills en packages/frontend/.claude/skills/. Esto soporta configuraciones monorepo donde los paquetes tienen sus propias skills. Cuando una habilidad anidada tiene el mismo nombre que una habilidad repo-root, ambas cargas: por a deploy habilidad en la raíz y en apps/web/.claude/skills/, /deploy ejecuta la raíz uno y /apps/web:deploy corre el anidado.
--add-dir directorios: Skills de los directorios añadidos a través de --add-dir se cargan automáticamente con detección de cambios en vivo. Cualquier edición a archivos de habilidad en esos directorios tendrá efecto inmediatamente sin reiniciar Claude Code. Si la habilidad de un directorio añadido tiene el mismo nombre que una habilidad de empresa, personal o proyecto, o uno de un directorio añadido anteriormente, se ejecuta bajo un nombre prefijado en su lugar. --add-dir ../cli y a verify habilidad en ambos lugares, /verify ejecuta la habilidad de su proyecto y /cli:verify ejecuta el uno de ../cli (v2.1.309+).
Recarga de skills: El /reload-skills comando (añadido v2.1.152) vuelve a escanear todos los directorios de skills sin reiniciar la sesión — útil después de añadir o editar una habilidad que no se recoge por detección en vivo. A SessionStart Hook puede desencadenar el mismo re-escanear regresando reloadSkills: true (véase Hooks).
Descripción del presupuesto: Las descripciones de skills (metadatos de nivel 1) están 1% de la ventana de contexto (retroceso: 8.000 caracteresSi tiene muchas skills instaladas, las descripciones pueden ser acortadas. Todos los nombres de skills siempre se incluyen, pero las descripciones se recortan para encajar. SLASH_COMMAND_TOOL_CHAR_BUDGET variable de entorno.
Crear skills personalizadas
Estructura básica del directorio
my-skill/
├── SKILL.md # Main instructions (required)
├── template.md # Template for Claude to fill in
├── examples/
│ └── sample.md # Example output showing expected format
└── scripts/
└── validate.sh # Script Claude can execute
Formato SKILL.md
---
name: your-skill-name
description: Brief description of what this Skill does and when to use it
---
# Your Skill Name
## Instructions
Provide clear, step-by-step guidance for Claude.
## Examples
Show concrete examples of using this Skill.
Campos recomendados
- Descripción (recomendado): lo que hace la Habilidad Y cuándo utilizarla. Si se omite, Claude Code utiliza la primera línea no vacía de contenido de marcado hacia abajo.
description+when_to_useel texto se trunca en 1.536 caracteres en el listado de skills (configurable a través deskillListingMaxDescChars). Esto es lo que Claude coincide para decidir cuándo activar la habilidad. - nombre (opcional): por defecto a la habilidad nombre de directorio. Cuando se suministra, establece el nombre de la pantalla — letras minúsculas, números, guiones solamente (máximo 64 caracteres) es la forma recomendada, portátil (requerido para claude.ai y la API de skills). Claude Code en sí mismo (v2.1.299+) omite una habilidad o comando cuyo nombre contiene caracteres ocultos, cambio de dirección o como en blanco,
<o>, o supera 256 caracteres, hasta que lo renombras. En Claude Code,anthropic-skillsysyncedse reservan y no se cargan fuera de un plugin; la prohibición más estricta de "antrópico" o "claude" se aplica a las skills subidas a claude.ai o la API de skills.nametambién establece el último segmento del comando.
Todos los campos de frontmatter SKILL.md son opcionales; description es el único que se recomienda.
Campos de Frontmatter opcional
---
name: my-skill
description: What this skill does and when to use it
argument-hint: "[filename] [format]" # Hint for autocomplete
disable-model-invocation: true # Only user can invoke
user-invocable: false # Hide from slash menu
allowed-tools: Read, Grep, Glob # Pre-approve these tools (no permission prompts) while the skill runs
disallowed-tools: Write, Edit # Remove specific tools while active (v2.1.152)
model: opus # Specific model to use
effort: high # Effort level override (low, medium, high, xhigh, max)
context: fork # Run in isolated subagent
agent: Explore # Which agent type (with context: fork)
background: false # Fork skills run in background (default true); false = foreground
shell: bash # Shell for commands: bash (default) or powershell
hooks: # Hooks registered when the skill is invoked
PreToolUse:
- matcher: "Bash"
hooks:
- type: command
command: "./scripts/validate.sh"
paths: "src/api/**/*.ts" # Glob patterns limiting when skill activates
---
| Campo | Descripción |
|---|---|
name |
Recomendado (portátil): letras minúsculas, números, guiones solamente (máx. 64 caracteres). anthropic-skills y synced están reservados en Claude Code. |
description |
Lo que hace la Habilidad Y cuándo usarla. description + when_to_use texto se trunca a 1.536 caracteres en el listado de skills (configurable a través de skillListingMaxDescChars). Crítico para la correspondencia de auto-invocación. |
when_to_use |
Contexto adicional para cuando Claude debe invocar la habilidad. description en la lista de skills y cuenta hacia el gorro de 1.536 caracteres. |
argument-hint |
Pista mostrada en el / menú autocompletado (por ejemplo, "[filename] [format]"). |
disable-model-invocation |
true = sólo el usuario puede invocar vía /nameClaude nunca se auto-invocará. |
user-invocable |
false = oculto de la / menú. Sólo Claude puede invocarlo automáticamente. |
allowed-tools |
Lista separada por comas de herramientas que la habilidad puede usar sin solicitudes de permiso. hooks en strictPluginOnlyCustomization, una habilidad personal o de proyecto cuya materia prima declara hooks pierde esta pre-aprobación (v2.1.304); eliminar su hooks o moverlo a un plugin. |
disallowed-tools |
Lista separada por coma de herramientas para eliminar mientras la habilidad está activa (complementa allowed-tools) Agregado v2.1.152. |
model |
Modelo anular mientras la habilidad está activa (por ejemplo, opus, sonnet). |
effort |
El nivel de esfuerzo anula mientras la habilidad está activa: low, medium, high, xhigho bien max — los cinco están soportados en Fable 5.1, Fable 5, Opus 5.5, Sonnet 5.5, Haiku 5.5, Opus 5, Sonnet 5, Opus 4.8 y Opus 4.7. high en cada modelo que apoya el esfuerzo, excepto Opus 5.5, Sonnet 5.5 y Haiku 5.5, que por defecto medium, y Opus 4.7, que por defecto xhigh. |
context |
fork ejecutar la habilidad en un contexto de subagente bifurcado con su propia ventana de contexto. |
agent |
Tipo de subagente cuando context: fork (por ejemplo, Explore, Plan, general-purpose). |
background |
Sólo significa con context: fork. Predeterminados true para context: fork skills, por lo que corren en el fondo; conjunto false para ejecutarlos en primer plano. Añadido v2.1.218. |
shell |
Concha utilizada para !`command` sustituciones y guiones: bash (por defecto) o powershell. |
hooks |
Los hooks registrados cuando se invoca la habilidad (el mismo formato que los hooks de configuración; cualquier evento). Se mantienen activos durante el resto de la sesión. Desde v2.1.304 las skills de una fuente (su proyecto, su carpeta de skills personales, o un plugin) pueden registrarse como máximo 1.024 hooks y 16.384 caracteres emparejadores por sesión; más allá de eso, una habilidad corre sin sus hooks de frontmatter (ver con /hooks). |
paths |
Patrones Glob que limitan cuando la habilidad se activa automáticamente. Cadena separada por comas o lista YAML. Los patrones son relativos al directorio de trabajo actual de Claude, y archivos fuera de él, como un árbol de trabajo hermano añadido con /add-dir, no coinciden (inicie Claude Code allí o utilizar /cd). El mismo formato que las reglas específicas de la ruta. |
arguments |
Declara los argumentos que la habilidad acepta, para autocompletado y sustitución de argumento. Sólo se rellenan los primeros 64 nombres, cada uno de hasta 64 caracteres (v2.1.301). |
metadata |
Mapa de clave/valor de forma libre para su propia contabilidad (por ejemplo. version, author) Claude Code lo pasa. |
license |
Identificador de la licencia para la habilidad (por ejemplo: MIT). |
compatibility |
Declaración de compatibilidad de texto libre, hasta 500 caracteres. Claude Code lo acepta pero no actúa en consecuencia. |
Nota: Sólo
name,description,license,compatibility,metadata, yallowed-toolsson válidos para skills subidas a claude.ai o creadas a través de la API de Skills. Los otros campos de esta tabla son específicos de Claude Code.
Dado que v2.1.218, los campos de la primera materia booleana también aceptan yes/no, on/off, y 1/0 (insensible a las causas) además de true/false.
Tipos de contenido de skills
Las skills pueden contener dos tipos de contenido, cada uno adecuado para diferentes propósitos:
Contenido de referencia
Agrega conocimiento Claude aplica a su trabajo actual: convenciones, patrones, guías de estilo, conocimientos de dominio. Se ejecuta en línea con su contexto de conversación.
---
name: api-conventions
description: API design patterns for this codebase
---
When writing API endpoints:
- Use RESTful naming conventions
- Return consistent error formats
- Include request validation
Contenido de la tarea
Instrucciones paso a paso para acciones específicas. /skill-name.
---
name: deploy
description: Deploy the application to production
context: fork
disable-model-invocation: true
---
Deploy the application:
1. Run the test suite
2. Build the application
3. Push to the deployment target
Controlar la invocación de skills
Por defecto, tanto usted como Claude pueden invocar cualquier habilidad. Dos campos de frontmatter controlan los tres modos de invocación:
| Frontmatter | Puedes invocar | Claude puede invocar |
|---|---|---|
| (por defecto) | Sí. | Sí. |
disable-model-invocation: true |
Sí. | No |
user-invocable: false |
No | Sí. |
Uso disable-model-invocation: true para los flujos de trabajo con efectos secundarios: /commit, /deploy, /send-slack-messageNo quieres que Claude decida implementarlo porque tu código parece estar listo.
Uso user-invocable: false para el conocimiento de fondo que no es procesable como un comando. legacy-system-context habilidad explica cómo funciona un sistema antiguo, útil para Claude, pero no una acción significativa para los usuarios.
Sustitución de cadenas
Las skills soportan valores dinámicos que se resuelven antes de que el contenido de habilidad llegue a Claude:
| Variable | Descripción |
|---|---|
$ARGUMENTS |
Todos los argumentos aprobados al invocar la habilidad |
$ARGUMENTS[N] o $N |
Acceda a argumentos específicos por índice (0 basado) |
${CLAUDE_SESSION_ID} |
ID del período de sesiones en curso |
${CLAUDE_SKILL_DIR} |
Directorio que contiene el archivo SKILL.md de la habilidad |
${CLAUDE_PROJECT_DIR} |
Ruta absoluta a la raíz del proyecto. Usable en el cuerpo de la habilidad y en allowed-tools (v2.1.196) |
${CLAUDE_EFFORT} |
Nivel de esfuerzo actual (low, medium, high, xhigho bien max). Útil para el comportamiento de la habilidad de ramificación: por ejemplo, [ "${CLAUDE_EFFORT}" = "max" ] && deep_analysis (v2.1.120+) |
!`command` |
Inyección dinámica de contexto — ejecuta un comando shell e inlines la salida |
Ejemplo
---
name: fix-issue
description: Fix a GitHub issue
---
Fix GitHub issue $ARGUMENTS following our coding standards.
1. Read the issue description
2. Implement the fix
3. Write tests
4. Create a commit
Correr /fix-issue 123 sustituye $ARGUMENTS con 123.
Capacidades de apilamiento
Puede apilar las skills de barra en una sola invocación en el indicador de terminal, como /write-tests /fix-issue 123. A partir de v2.1.199, esto carga TODAS las skills líderes — la primera más hasta 5 más — y pasa los argumentos siguientes (123) a cada uno; anteriormente sólo la primera habilidad cargada. La expansión se detiene en una habilidad que se ejecuta como un subagente bifurcado, como /code-reviewy a través del Agente SDK o claude -p Si se invoca la misma habilidad más de una vez, su contenido idéntico se des-duplica (v2.1.202) en lugar de adjuntarse dos veces.
Inyectar contexto dinámico
Los !`command` sintaxis ejecuta comandos shell antes de que el contenido de habilidad sea enviado a Claude:
Nota (v2.1.299):
UserPromptSubmithooks se ejecutan antes de que el comando se expande, por lo que un hook que bloquea el prompt también detiene estos!órdenes de ejecución.
---
name: pr-summary
description: Summarize changes in a pull request
context: fork
agent: Explore
---
## Pull request context
- PR diff: !`gh pr diff`
- PR comments: !`gh pr view --comments`
- Changed files: !`gh pr diff --name-only`
## Your task
Summarize this pull request...
Las órdenes se ejecutan inmediatamente; Claude solo ve la salida final. Por defecto, las órdenes se ejecutan en bash. Set shell: powershell en primer plano para usar PowerShell en su lugar.
Skills de ejecución en subagentes
Añadir context: fork para ejecutar una habilidad en un contexto de subagente aislado. El contenido de habilidad se convierte en la tarea de un subagente dedicado con su propia ventana de contexto, manteniendo la conversación principal sin desorden. background valores predeterminados a true para context: fork skills, por lo que corren en el fondo; conjunto background: false en la materia frontal para ejecutar una habilidad de tenedor en el primer plano.
v2.1.145 fix: Una habilidad de usar
context: forkpreviamente podría desencadenar un bucle de re-invocación infinito en casos raros. Actualizar a v2.1.145+ si usted autor o confiar en skills de forking.
Los agent campo especifica qué tipo de agente usar:
| Tipo de agente | Lo mejor para |
|---|---|
Explore |
Investigación de sólo lectura, análisis de base de código |
Plan |
Creación de planes de aplicación |
general-purpose |
Tareas amplias que requieren todas las herramientas |
| Agentes de aduanas | Agentes especializados definidos en su configuración |
Ejemplo de materia frontal:
---
context: fork
agent: Explore
---
Ejemplo completo de habilidad:
---
name: topic-research
description: Research a topic thoroughly
context: fork
agent: Explore
---
Research $ARGUMENTS thoroughly:
1. Find relevant files using Glob and Grep
2. Read and analyze the code
3. Summarize findings with specific file references
Ejemplos prácticos
Ejemplo 1: Habilidad de revisión de código
Estructura del directorio:
~/.claude/skills/code-review-specialist/
├── SKILL.md
├── templates/
│ ├── review-checklist.md
│ └── finding-template.md
└── scripts/
├── analyze-metrics.py
└── compare-complexity.py
Archivo: ~/.claude/skills/code-review-specialist/SKILL.md
---
name: code-review-specialist
description: Comprehensive code review with security, performance, and quality analysis. Use when users ask to review code, analyze code quality, evaluate pull requests, or mention code review, security analysis, or performance optimization.
---
# Code Review Skill
This skill provides comprehensive code review capabilities focusing on:
1. **Security Analysis**
- Authentication/authorization issues
- Data exposure risks
- Injection vulnerabilities
- Cryptographic weaknesses
2. **Performance Review**
- Algorithm efficiency (Big O analysis)
- Memory optimization
- Database query optimization
- Caching opportunities
3. **Code Quality**
- SOLID principles
- Design patterns
- Naming conventions
- Test coverage
4. **Maintainability**
- Code readability
- Function size (should be < 50 lines)
- Cyclomatic complexity
- Type safety
## Review Template
For each piece of code reviewed, provide:
### Summary
- Overall quality assessment (1-5)
- Key findings count
- Recommended priority areas
### Critical Issues (if any)
- **Issue**: Clear description
- **Location**: File and line number
- **Impact**: Why this matters
- **Severity**: Critical/High/Medium
- **Fix**: Code example
For detailed checklists, see [templates/review-checklist.md](templates/review-checklist.md).
Ejemplo 2: Habilidad del visualizador de base de código
Una habilidad que genera visualizaciones HTML interactivas:
Estructura del directorio:
~/.claude/skills/codebase-visualizer/
├── SKILL.md
└── scripts/
└── visualize.py
Archivo: ~/.claude/skills/codebase-visualizer/SKILL.md
---
name: codebase-visualizer
description: Generate an interactive collapsible tree visualization of your codebase. Use when exploring a new repo, understanding project structure, or identifying large files.
allowed-tools: Bash(python *)
---
# Codebase Visualizer
Generate an interactive HTML tree view showing your project's file structure.
## Usage
Run the visualization script from your project root:
```bash
python ~/.claude/skills/codebase-visualizer/scripts/visualize.py .
```
This creates `codebase-map.html` and opens it in your default browser.
## What the visualization shows
- **Collapsible directories**: Click folders to expand/collapse
- **File sizes**: Displayed next to each file
- **Colors**: Different colors for different file types
- **Directory totals**: Shows aggregate size of each folder
El guión de Python agrupado hace el levantamiento pesado mientras Claude maneja la orquestación.
Ejemplo 3: Implementar habilidad (solo por cuenta del usuario)
---
name: deploy
description: Deploy the application to production
disable-model-invocation: true
allowed-tools: Bash(npm *), Bash(git *)
---
Deploy $ARGUMENTS to production:
1. Run the test suite: `npm test`
2. Build the application: `npm run build`
3. Push to the deployment target
4. Verify the deployment succeeded
5. Report deployment status
Ejemplo 4: Habilidad de voz de marca (conocimiento de fondo)
---
name: brand-voice
description: Ensure all communication matches brand voice and tone guidelines. Use when creating marketing copy, customer communications, or public-facing content.
user-invocable: false
---
## Tone of Voice
- **Friendly but professional** - approachable without being casual
- **Clear and concise** - avoid jargon
- **Confident** - we know what we're doing
- **Empathetic** - understand user needs
## Writing Guidelines
- Use "you" when addressing readers
- Use active voice
- Keep sentences under 20 words
- Start with value proposition
For templates, see [templates/](templates/).
Ejemplo 5: Habilidad del generador CLAUDE.md
---
name: claude-md
description: Create or update CLAUDE.md files following best practices for optimal AI agent onboarding. Use when users mention CLAUDE.md, project documentation, or AI onboarding.
---
## Core Principles
**LLMs are stateless**: CLAUDE.md is the main project file loaded into every conversation (alongside auto memory and unscoped rules).
### The Golden Rules
1. **Less is More**: Keep each CLAUDE.md under 200 lines
2. **Universal Applicability**: Only include information relevant to EVERY session
3. **Don't Use Claude as a Linter**: Use deterministic tools instead
4. **Never Auto-Generate**: Craft it manually with careful consideration
## Essential Sections
- **Project Name**: Brief one-line description
- **Tech Stack**: Primary language, frameworks, database
- **Development Commands**: Install, test, build commands
- **Critical Conventions**: Only non-obvious, high-impact conventions
- **Known Issues / Gotchas**: Things that trip up developers
Ejemplo 6: Refactorización de la habilidad con guiones
Estructura del directorio:
refactor/
├── SKILL.md
├── references/
│ ├── code-smells.md
│ └── refactoring-catalog.md
├── templates/
│ └── refactoring-plan.md
└── scripts/
├── analyze-complexity.py
└── detect-smells.py
Archivo: refactor/SKILL.md
---
name: refactor
description: Systematic code refactoring based on Martin Fowler's methodology. Use when users ask to refactor code, improve code structure, reduce technical debt, or eliminate code smells.
---
# Code Refactoring Skill
A phased approach emphasizing safe, incremental changes backed by tests.
## Workflow
Phase 1: Research & Analysis → Phase 2: Test Coverage Assessment →
Phase 3: Code Smell Identification → Phase 4: Refactoring Plan Creation →
Phase 5: Incremental Implementation → Phase 6: Review & Iteration
## Core Principles
1. **Behavior Preservation**: External behavior must remain unchanged
2. **Small Steps**: Make tiny, testable changes
3. **Test-Driven**: Tests are the safety net
4. **Continuous**: Refactoring is ongoing, not a one-time event
For code smell catalog, see [references/code-smells.md](references/code-smells.md).
For refactoring techniques, see [references/refactoring-catalog.md](references/refactoring-catalog.md).
Archivos de soporte
Skills pueden incluir varios archivos en su directorio más allá SKILL.md. Estos archivos de soporte (templates, ejemplos, scripts, documentos de referencia) le permiten mantener el archivo principal de habilidad enfocado mientras proporciona a Claude recursos adicionales que puede cargar según sea necesario.
my-skill/
├── SKILL.md # Main instructions (required, keep under 500 lines)
├── templates/ # Templates for Claude to fill in
│ └── output-format.md
├── examples/ # Example outputs showing expected format
│ └── sample-output.md
├── references/ # Domain knowledge and specifications
│ └── api-spec.md
└── scripts/ # Scripts Claude can execute
└── validate.sh
Directrices para los archivos de soporte:
- Mantener
SKILL.mdbajo 500 líneas. Mueva el material de referencia detallado, los ejemplos grandes, y las especificaciones para separar archivos. - Archivos adicionales de referencia desde
SKILL.mdUso rutas relativas (por ejemplo,[API reference](references/api-spec.md)). - Los archivos de soporte se cargan en el nivel 3 (según sea necesario), por lo que no consumen contexto hasta que Claude los lee.
Gestión de las capacidades
Viendo las skills disponibles
Pregunte directamente a Claude:
What Skills are available?
O compruebe el sistema de archivos:
# List personal Skills
ls ~/.claude/skills/
# List project Skills
ls .claude/skills/
Tip (v2.1.121+): Escriba para filtrar el
/skillsmenú interactivo — útil cuando se instalan muchas skills.
Probando una habilidad
Dos maneras de probar:
Deja que Claude lo invoque automáticamente. preguntando algo que coincida con la descripción:
Can you help me review this code for security issues?
O invocarlo directamente con el nombre de habilidad:
/code-review-specialist src/auth/login.ts
Nota: Esta habilidad local se instala como
code-review-specialistasí que lo hace no colisionar con el paquete/code-reviewskills (examen centrado en el bug, alias/review). Si lo copia a~/.claude/skills/code-review/en su lugar, reemplaza el paquete/code-review(aunque/reviewtodavía se ejecuta el paquete uno) — mantener el-specialistSufijo para evitar eso.
Actualizar una habilidad
Editar el SKILL.md archivo directamente, luego ejecutar /reload-skills (v2.1.152+) para volver a escanear los directorios de skills. Reiniciar Claude Code también funciona, pero no es necesario — skills en --add-dir los directorios se recogen en directo, y un SessionStart Hook de retorno reloadSkills: true dispara el mismo re-escaneo.
# Personal Skill
code ~/.claude/skills/my-skill/SKILL.md
# Project Skill
code .claude/skills/my-skill/SKILL.md
Restringiendo el acceso de habilidad de Claude
Tres maneras de controlar las skills que Claude puede invocar:
Desactivar todas las skills en /permissions:
# Add to deny rules:
Skill
Permitir o negar skills específicas:
# Allow only specific skills
Skill(commit)
Skill(review-pr *)
# Deny specific skills
Skill(deploy *)
Ocultar las skills individuales añadiendo disable-model-invocation: true a su primer plano.
Controlar el comportamiento de superación de skills (skillOverrides)
skillOverrides (v2.1.129+) es un mapa de visibilidad per-skill, no un interruptor de precedencia: establece cómo se muestra cada habilidad desde la configuración, sin editar su SKILL.md. Cada clave es un nombre de habilidad; el /skills menú lo escribe para usted (salvo para .claude/settings.local.json) La precedencia no cambia — una habilidad personal todavía supera a una habilidad de proyecto del mismo nombre. ~/.claude/settings.json o proyecto .claude/settings.json:
{
"skillOverrides": {
"deploy": "off",
"legacy-helper": "name-only"
}
}
Valores aceptados:
| Valor | Comportamiento |
|---|---|
"on" (por defecto) |
Nombre y descripción enumerados a Claude; se muestra en el / menú. |
"name-only" |
Sólo el nombre está en la lista de Claude; se muestra en el / menú. |
"user-invocable-only" |
Oculto de Claude; todavía se muestra en el / menú. |
"off" |
Oculto tanto de Claude como de la / menú. |
Las skills del plugin no se ven afectadas por skillOverrides; gestionarlos a través de /plugin.
Mejores prácticas
1. Hacer descripciones específicas
- Mal (vaga): "Ayuda con los documentos"
- Bien (específico): "Extraer texto y tablas de archivos PDF, rellenar formularios, fusionar documentos. Utilizar cuando se trabaja con archivos PDF o cuando el usuario menciona PDFs, formularios, o extracción de documentos."
2. Mantener las skills enfocadas
- Una habilidad = una capacidad
- "Rellenar el formulario PDF"
- • "Procesamiento de documentos" (demasiado amplio)
3. Incluir términos de activación
Añadir palabras clave en las descripciones que coincidan con las peticiones de los usuarios:
description: Analyze Excel spreadsheets, generate pivot tables, create charts. Use when working with Excel files, spreadsheets, or .xlsx files.
4. Mantenga SKILL.md bajo 500 líneas
Mueva el material de referencia detallado a archivos separados que Claude carga según sea necesario.
5. Archivos de apoyo de referencia
## Additional resources
- For complete API details, see [reference.md](reference.md)
- For usage examples, see [examples.md](examples.md)
Do's
- Usar nombres claros y descriptivos
- Incluir instrucciones completas
- Añádanse ejemplos concretos
- Scripts y plantillas relacionados con paquetes
- Prueba con escenarios reales
- Dependencias de los documentos
No lo hagas
- No crear skills para tareas de una sola vez
- No duplique la funcionalidad existente
- No hagas skills demasiado amplias.
- No te saltes el campo de descripción
- No instale skills de fuentes no confiables sin auditoría
Solución de problemas
Referencia rápida
| Cuestión | Solución |
|---|---|
| Claude no usa Habilidad | Hacer la descripción más específica con términos de activación |
| Archivo de habilidad no encontrado | Verificar la ruta: ~/.claude/skills/name/SKILL.md |
| Errores de YAML | Comprobar --- marcadores, sangría, sin pestañas |
| Conflicto de aptitudes | Usar términos de activación distintos en las descripciones |
| Scripts que no se están ejecutando | Comprobar permisos: chmod +x scripts/*.py |
| Claude no ve todas las skills | Demasiadas skills; comprobar /context para las advertencias, luego correr /skill-doctor (v2.1.252+) para ver qué skills no se utilizan y cuánto cuestan |
Habilidad no desencadenante
Si Claude no usa tu habilidad cuando se espera:
- Comprobar la descripción incluye palabras clave que los usuarios dirían naturalmente
- Verificar la habilidad aparece cuando se pregunta "¿Qué skills están disponibles?"
- Intente refrasear su solicitud para que coincida con la descripción
- Invocar directamente con
/skill-namea probar
Los desencadenantes de skills con demasiada frecuencia
Si Claude usa tu habilidad cuando no la quieres:
- Hacer la descripción más específica
- Añadir
disable-model-invocation: truepara la invocación manual únicamente
Claude no ve todas las skills
Las descripciones de skills se cargan en 1% de la ventana de contexto (retroceso: 8.000 caracteres) Cada entrada description + when_to_use se limita a 1.536 caracteres por defecto (skillListingMaxDescChars) Ejecutar /context En el caso de las empresas, el coste total de la inversión en el sector de los servicios es de aproximadamente el 50 % del PIB. SLASH_COMMAND_TOOL_CHAR_BUDGET variable de entorno.
Consideraciones de seguridad
Sólo use Skills de fuentes de confianza. Las skills proporcionan a Claude capacidades a través de instrucciones y código: una habilidad maliciosa puede ordenar a Claude que invoque herramientas o ejecute código de manera dañina.
Consideraciones clave en materia de seguridad:
- Auditoría exhaustiva: Revisar todos los archivos en el directorio Habilidad
- Las fuentes externas son riesgosas: Las skills que se obtienen de URLs externas pueden verse comprometidas
- Uso indebido de las herramientas: Las skills maliciosas pueden invocar herramientas de maneras dañinas
- Tratar como instalar software: Sólo use skills de fuentes de confianza
Desactivar la sustitución de shells en las skills
Las cualificaciones apoyan la !`command` sintaxis para inyectar la salida de comandos shell en el prompt antes de que Claude lo vea. En entornos sensibles a la seguridad (desplegaciones empresariales compartidas, corredores CI bloqueados) puede desactivar esta sustitución completamente a través del disableSkillShellExecution (añadido en v2.1.91):
// ~/.claude/settings.json or managed policy
{
"disableSkillShellExecution": true
}
Cuándo disableSkillShellExecution es true, cada uno !`command` marcapuntos en una habilidad se sustituye por [shell command execution disabled by policy] en lugar de ser ejecutado — quitar la superficie de ataque de inyección de shell nivel de habilidad sin inhabilitar las propias skills. Considere combinar esto con un allowedTools lista de permisos para la defensa en profundidad.
Ocultar skills combinadas (disableBundledSkills)
Los disableBundledSkills (añadido en v2.1.169) oculta las skills, flujos de trabajo y comandos agrupados que se envían con Claude Code del modelo. Utilícelo cuando las skills incorporadas son ruido para un proyecto determinado, o para reducir la superficie de habilidad del modelo:
// ~/.claude/settings.json or project .claude/settings.json
{
"disableBundledSkills": true
}
La forma equivalente variable para el medio ambiente es:
export CLAUDE_CODE_DISABLE_BUNDLED_SKILLS=1
Skills vs. otras características
| Característica | Invocación | Lo mejor para |
|---|---|---|
| Skills | Auto o /name |
Experiencia reutilizable, flujos de trabajo |
| Comandos de barra | Iniciado por el usuario /name |
Accesos rápidos (combinados en skills) |
| Subagentes | Delegado automáticamente | Ejecución de tareas aislada |
| Memoria (CLAUDE.md) | Siempre cargado | Contexto del proyecto persistente |
| MCP | En tiempo real | Acceso externo a datos/servicios |
| Hooks | Acontecimientos | Efectos adversos automatizados |
Skills combinadas
Claude Code barcos con un conjunto de skills integradas que siempre están disponibles sin instalación (los más útiles se enumeran a continuación; ver el referencia de comandos para el conjunto completo):
| Habilidad | Descripción |
|---|---|
/batch <instruction> |
Orchestete cambios paralelos a gran escala en base de código usando git worktrees |
/claude-api |
Cargar la referencia API/SDK de Claude; auto-activar anthropic/@anthropic-ai/sdk las importaciones. /claude-api api-version actualiza su código a una versión más reciente de API, como 2026-10-21 (v2.1.307+); /claude-api managed-agents-secure [<agent-id>] comprueba la configuración de un Agente Gestionado con la guía de seguridad de Anthropic, sin cambiar nada (necesita el ant CLI, v2.1.304+) |
/dataviz |
Guía de diseño de gráficos y tableros con un validador de paletas de color (v2.1.198) |
/debug [description] |
Solución de problemas en la sesión actual leyendo el registro de depuración |
/deep-research <question> |
Un paquete flujo de trabajo, no una habilidad: los fans de búsquedas web y sintetiza un informe citado (la invocación explícita sólo desde v2.1.218 — Claude no desencadenará esto por sí solo) |
/fewer-permission-prompts |
Escanear transcripciones y proponer un lista de permisos priorizada para herramientas comunes de sólo lectura |
/loop [interval] [prompt] |
Ejecutar prompt repetidamente en el intervalo (por ejemplo, /loop 5m check the deploy) |
/run (v2.1.145+) |
Lanzar la aplicación de este proyecto para ver un cambio en ejecución — busca una habilidad del proyecto, de lo contrario cae de nuevo a patrones incorporados por tipo de proyecto |
/run-skill-generator (v2.1.145+) |
Enseñar /run//verify cómo manejar un proyecto específico generando una habilidad por proyecto |
/code-review [effort] |
Revise la diferencia actual para detectar errores de corrección a un nivel de esfuerzo elegido (por ejemplo. /code-review high); pase --comment para publicar los resultados como comentarios en línea PR. Una habilidad distinta de /simplify (calidad/reutilizar limpiezas), que se dividió de nuevo en v2.1.154. Claude también puede iniciarlo por su cuenta, en todas partes desde v2.1.246. Desde v2.1.218 se ejecuta como un subagente de fondo, por lo que el trabajo de revisión ya no llena su conversación y apilado comandos de barra de barras mantener su objetivo de revisión. |
/simplify |
Revisión exclusivamente de limpieza —reutilización, simplificación, eficiencia, altitud— y aplica las correcciones. /code-review en v2.1.154 |
/verify (v2.1.145+) |
Construye, ejecuta y observa la aplicación para confirmar una corrección de obras (no sólo que las pruebas pasan) (la invocación explícita sólo desde v2.1.215 — Claude no desencadenará esto por sí solo) |
Para las revisiones automáticas en GitHub pull peticiones, las organizaciones de equipo y Enterprise pueden activar Revisión de código gestionada.
Nota: Si su proyecto o skills de usuario incluyen uno llamado
verify, Claude lo ejecuta justo antes de cometerlo, excepto los documentos-solamente y pruebas-solamente confirma (v2.1.286).
Estas skills están disponibles fuera de la caja y no es necesario instalarlas o configurarlas. Siguen el mismo formato SKILL.md que las skills personalizadas.
Compartir skills
Skills para proyectos (compartición de equipos)
- Crear habilidad en
.claude/skills/ - Comprometerse con git
- Los miembros del equipo retiran cambios — Skills disponibles inmediatamente
Skills personales
# Copy to personal directory
cp -r my-skill ~/.claude/skills/
# Make scripts executable
chmod +x ~/.claude/skills/my-skill/scripts/*.py
Distribución de complementos
Paquete de skills en un plugin skills/ directorio para una distribución más amplia.
Más allá: Una colección de skills y un administrador de skills
Una vez que empiezas a desarrollar skills seriamente, dos cosas se vuelven esenciales: una biblioteca de skills probadas y una herramienta para manejarlas.
luongnv89/skills — Una colección de skills que utilizo diariamente en casi todos mis proyectos. logo-designer (genera logotipos de proyecto sobre la marcha) y ollama-optimizer (tune el rendimiento local de LLM para su hardware). Gran punto de partida si desea skills listas para usar.
luongnv89/asm — Agent Skill Manager. Maneja el desarrollo de skills, la detección duplicada y las pruebas. asm link comando le permite probar una habilidad en cualquier proyecto sin copiar archivos alrededor — esencial una vez que usted tiene más de un puñado de skills.
Recursos adicionales
- Documentación oficial de skills
- Blog de Arquitectura de Skills Agente
- Repositorio de skills - Colección de skills listas para el uso
- Guía de comandos de barra - Accesos directos iniciados por el usuario
- Guía de subagentes - Agentes delegados de IA
- Guía de memoria - Contexto persistente
- MCP (Protocolo modelo de contexto) - Datos externos en tiempo real
- Guía de hooks - Automatización impulsada por eventos
Última actualización: 26 de octubre de 2026 Versión de Claude Code: 2.1.310 Fuentes: - https://code.claude.com/docs/en/skills - https://code.claude.com/docs/en/slash-commands - https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md - https://code.claude.com/docs/en/model-config - https://code.claude.com/docs/en/model-config#adjust-effort-level - https://code.claude.com/docs/en/settings-reference - https://github.com/anthropics/claude-code/releases/tag/v2.1.286 - https://code.claude.com/docs/en/hooks#hooks-in-skills-and-agents - https://code.claude.com/docs/en/skills#characters-a-skill-name-cant-hold - https://code.claude.com/docs/en/hooks#hook-lifecycle - https://code.claude.com/docs/en/changelog#2-1-299 - https://code.claude.com/docs/en/skills#pre-approve-tools-for-a-skill - https://code.claude.com/docs/en/commands - https://code.claude.com/docs/en/memory#write-effective-instructions - https://code.claude.com/docs/en/memory - https://code.claude.com/docs/en/changelog#2-1-301 - https://code.claude.com/docs/en/code-review - https://code.claude.com/docs/en/changelog#2-1-304 - https://code.claude.com/docs/en/changelog#2-1-307 - https://code.claude.com/docs/en/changelog#2-1-309 - https://code.claude.com/docs/en/commands#all-commands - https://code.claude.com/docs/en/hooks#limits-on-skill-hooks - https://code.claude.com/docs/en/skills#how-a-skill-gets-its-command-name - https://code.claude.com/docs/en/skills#run-a-same-named-skill-from-an-added-directory - https://code.claude.com/docs/en/skills#when-managed-settings-lock-hooks-to-plugins - https://code.claude.com/docs/en/skills#frontmatter-reference - https://code.claude.com/docs/en/skills#skill-not-triggering - https://code.claude.com/docs/en/skills#work-on-claude-api-projects Modelos compatibles: Claude Fable 5, Claude Opus 5, Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.8, Claude Haiku 4.5