Lección 04: Slash Commands, Skills, Hooks y Agentes Paralelos
- Los slash commands controlan la sesión sin salir de Claude Code: limpiar contexto, cambiar modelo, revisar costes y diagnosticar problemas.
- Las skills son comandos personalizados reutilizables definidos en archivos
.mddentro de.claude/commands/. - Los hooks permiten ejecutar scripts automáticos antes o después de las acciones de Claude, habilitando validaciones y formateo sin intervención manual.
- Los agentes paralelos dividen tareas complejas en sub-agentes independientes que trabajan simultáneamente, multiplicando la velocidad de ejecución.
Usar Claude Code sin conocer sus comandos es como conducir un coche solo en primera marcha. Funciona, pero estás desperdiciando el 80% de su capacidad. En esta lección vas a aprender las herramientas que convierten una sesión básica en un flujo de trabajo profesional: desde los slash commands nativos hasta la orquestación de agentes paralelos.
Slash Commands
Los slash commands son instrucciones que comienzan con / y controlan el comportamiento de Claude Code sin consumir tokens del modelo. Se ejecutan en la propia interfaz de la sesión y afectan directamente al estado de la misma.
Comandos de Sesión
Estos comandos gestionan el ciclo de vida de tu sesión activa:
/clear— Limpia todo el historial de la sesión actual. Útil cuando el contexto acumulado empieza a generar confusiones o respuestas inconsistentes./compact— Compacta la conversación: resume el historial manteniendo los puntos clave. Ideal para sesiones largas donde no quieres perder contexto pero necesitas liberar espacio./cost— Muestra el coste acumulado en tokens de la sesión actual. Imprescindible para controlar el gasto cuando trabajas con API key.
Comandos de Ayuda y Diagnóstico
/help— Lista todos los comandos disponibles con una breve descripción de cada uno./doctor— Ejecuta diagnósticos del entorno: verifica la autenticación, la versión, la conectividad y la configuración de permisos./model— Cambia el modelo activo sin reiniciar la sesión. Puedes alternar entre Opus, Sonnet y Haiku según la complejidad de la tarea.
Comandos de Desarrollo
/review— Solicita una revisión de código. Claude analiza los cambios pendientes (staged o unstaged) y genera feedback estructurado./commit— Genera un mensaje de commit semántico basado en los cambios actuales y ejecuta el commit si lo apruebas.
# Ver el coste acumulado de la sesión Tu: /cost > Session cost: $0.42 > Input tokens: 12,847 > Output tokens: 3,291 # Compactar la conversación para liberar contexto Tu: /compact > Compacting conversation... > Summarized 47 messages into 1 context block > Context reduced by 68% # Cambiar a un modelo más rápido para tareas simples Tu: /model sonnet > Model changed to claude-sonnet-4-20250514 # Generar commit con mensaje semántico Tu: /commit > Analyzing staged changes... > feat(auth): add OAuth2 refresh token rotation > Commit? [y/n]
Skills y Comandos Personalizados
Los slash commands nativos cubren operaciones genéricas. Pero cada proyecto tiene sus propios flujos repetitivos: ejecutar tests con una configuración específica, desplegar a staging, generar un componente con una estructura determinada. Las skills resuelven exactamente esto.
Qué es una Skill
Una skill es un archivo .md dentro de .claude/commands/ que define un comando personalizado. Cuando Claude Code detecta estos archivos, los registra como slash commands accesibles con / seguido del nombre del archivo.
Estructura de una Skill
Cada skill es un prompt reutilizable con instrucciones claras. Puede incluir variables con la sintaxis $ARGUMENTS para recibir parámetros dinámicos.
# Crear la carpeta de comandos personalizados mkdir -p .claude/commands # Crear una skill para generar componentes React cat > .claude/commands/component.md << 'EOF' Genera un componente React en TypeScript con las siguientes reglas: - Nombre del componente: $ARGUMENTS - Ubicación: src/components/$ARGUMENTS/ - Archivos: index.tsx, styles.module.css, $ARGUMENTS.test.tsx - Usar forwardRef si el componente recibe ref - Exportar tipos del componente en un archivo types.ts - Incluir tests unitarios con Vitest EOF # Crear una skill para deploy a staging cat > .claude/commands/deploy-staging.md << 'EOF' Ejecuta el proceso de deploy a staging: 1. Ejecutar lint y tests 2. Build de producción 3. Desplegar con el comando: pnpm run deploy:staging 4. Verificar que el healthcheck responde 200 Si algún paso falla, detente e informa del error. EOF # Ahora en Claude Code puedes usarlos directamente $ claude Tu: /component DatePicker > Creating component DatePicker... > [Write] src/components/DatePicker/index.tsx > [Write] src/components/DatePicker/styles.module.css > [Write] src/components/DatePicker/DatePicker.test.tsx > [Write] src/components/DatePicker/types.ts
Skills del Proyecto vs. Personales
Las skills en .claude/commands/ son del proyecto y se comparten vía Git. Para skills personales que apliquen a todos tus proyectos, usa ~/.claude/commands/. Claude Code carga ambas ubicaciones automáticamente.
Hooks: Automatización Pre/Post Ejecución
Los hooks son scripts que se ejecutan automáticamente en momentos clave del flujo de Claude Code. Funcionan como los git hooks, pero aplicados a las operaciones del agente: antes de escribir un archivo, después de ejecutar un comando, al iniciar una sesión.
Tipos de Hooks
- PreToolExecution — Se ejecuta antes de que Claude use una herramienta (Write, Bash, etc.). Permite validar o bloquear operaciones.
- PostToolExecution — Se ejecuta después de que una herramienta termina. Ideal para formateo automático o notificaciones.
- Notification — Se dispara cuando Claude necesita atención del usuario. Puedes redirigirlo a Slack, email o cualquier webhook.
- Stop — Se ejecuta cuando Claude termina su turno. Útil para validaciones finales o logging.
Configuración de Hooks
Los hooks se configuran en el archivo .claude/settings.json del proyecto. Cada hook especifica el evento, un patrón de coincidencia opcional y el comando a ejecutar:
{
"hooks": {
"PostToolExecution": [
{
"matcher": "Write|Edit",
"command": "npx prettier --write \"$FILEPATH\""
},
{
"matcher": "Write",
"command": "npx eslint --fix \"$FILEPATH\""
}
],
"PreToolExecution": [
{
"matcher": "Bash",
"command": "echo \"$TOOL_INPUT\" | grep -qE 'rm -rf|sudo|:(){' && exit 1 || exit 0"
}
],
"Notification": [
{
"command": "terminal-notifier -message \"$MESSAGE\" -title \"Claude Code\""
}
]
}
}Seguridad en Hooks
Un hook PreToolExecution que retorna exit code 1 bloquea la operación. Esto te permite crear guardrails automáticos: impedir borrados masivos, bloquear comandos peligrosos o rechazar escrituras en directorios protegidos.
Agentes Paralelos
Cuando una tarea es lo suficientemente grande, Claude Code puede dividirla en sub-tareas y delegarlas a agentes independientes que trabajan en paralelo. Cada sub-agente recibe su propia ventana de contexto y opera de forma autónoma, reportando resultados al agente principal.
Cómo Funciona el Task Tool
Claude Code utiliza internamente la herramienta Task (también llamada sub-agent) para orquestar trabajo paralelo. El agente principal descompone el problema, lanza múltiples Tasks y luego sintetiza los resultados.
- Descomposición automática: Claude identifica tareas independientes que pueden ejecutarse simultáneamente.
- Contexto aislado: Cada sub-agente tiene su propio contexto, evitando interferencias entre tareas.
- Síntesis de resultados: El agente principal recibe los outputs de todos los sub-agentes y los integra en una respuesta coherente.
Cuándo Usar Agentes Paralelos
No toda tarea justifica paralelismo. Los casos ideales son:
- Refactorización masiva: Actualizar 15 archivos que siguen el mismo patrón pero son independientes entre sí.
- Investigación multi-archivo: Analizar distintas partes del codebase simultáneamente para responder una pregunta compleja.
- Tests y validaciones: Ejecutar verificaciones en paralelo sobre distintos módulos.
- Generación de código: Crear múltiples componentes, endpoints o migraciones que no dependen unos de otros.
Tu: Migra todos los componentes de clase a componentes funcionales con hooks. Hay 12 componentes en src/legacy/. > [Think] Analyzing 12 class components... > [Think] Components are independent. Launching parallel agents. > [Task 1/4] Migrating: UserProfile, UserSettings, UserAvatar > [Task 2/4] Migrating: Dashboard, DashboardStats, DashboardChart > [Task 3/4] Migrating: OrderList, OrderDetail, OrderForm > [Task 4/4] Migrating: NavBar, Sidebar, Footer > [Task 1/4] Complete - 3 components migrated > [Task 3/4] Complete - 3 components migrated > [Task 4/4] Complete - 3 components migrated > [Task 2/4] Complete - 3 components migrated > All 12 components migrated to functional components. > Changes: 12 files modified, 847 lines changed. > Running tests... All 94 tests pass.
Comandos esenciales para gestionar la sesión y obtener información básica.
| /help | Lista todos los comandos disponibles con su descripción. |
| /clear | Limpia el historial completo de la sesión actual. |
| /compact | Resume la conversación para liberar ventana de contexto sin perder información clave. |
| /cost | Muestra tokens consumidos y coste acumulado en la sesión. |
| /model | Cambia el modelo activo (opus, sonnet, haiku) sin reiniciar la sesión. |
Comandos de desarrollo que integran Claude Code con tu flujo de trabajo Git y diagnóstico.
| /commit | Analiza cambios staged/unstaged y genera un commit semántico con mensaje descriptivo. |
| /review | Ejecuta una revisión de código sobre los cambios pendientes con feedback estructurado. |
| /doctor | Diagnostica el entorno: autenticación, versión, conectividad y permisos. |
| /init | Genera un CLAUDE.md analizando la estructura del proyecto actual. |
| /memory | Añade instrucciones persistentes al CLAUDE.md del proyecto desde la sesión. |
Comandos personalizados definidos como skills en .claude/commands/.
| /component | Ejemplo: genera un componente React completo con tests, tipos y estilos. Recibe el nombre como argumento. |
| /deploy-staging | Ejemplo: ejecuta lint, tests, build y deploy a staging con verificación de healthcheck. |
| /migration | Ejemplo: crea una migración de base de datos con Prisma siguiendo convenciones del proyecto. |
| /api-endpoint | Ejemplo: genera un endpoint REST completo con validación Zod, handler y tests de integración. |
| /changelog | Ejemplo: genera un changelog a partir de los commits desde el último tag de release. |
Preguntas Frecuentes
Sobre comandos y flujos de trabajo en Claude Code
.md dentro de .claude/commands/. El nombre del archivo se convierte en el nombre del comando. Por ejemplo, .claude/commands/deploy.md se invoca con /deploy. También puedes definir skills globales en ~/.claude/commands/ para que estén disponibles en todos tus proyectos..claude/settings.json.