LABORATORIO
agentes paralelos Intermedio

Comandos y Flujos de Trabajo

Lección 04: Slash Commands, Skills, Hooks y Agentes Paralelos

Puntos Clave
  • 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 .md dentro 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.
claude session
# 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.

terminal
# 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:

.claude/settings.json
{
  "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:

  1. Refactorización masiva: Actualizar 15 archivos que siguen el mismo patrón pero son independientes entre sí.
  2. Investigación multi-archivo: Analizar distintas partes del codebase simultáneamente para responder una pregunta compleja.
  3. Tests y validaciones: Ejecutar verificaciones en paralelo sobre distintos módulos.
  4. Generación de código: Crear múltiples componentes, endpoints o migraciones que no dependen unos de otros.
claude session
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.
Referencia de Comandos

Comandos esenciales para gestionar la sesión y obtener información básica.

/helpLista todos los comandos disponibles con su descripción.
/clearLimpia el historial completo de la sesión actual.
/compactResume la conversación para liberar ventana de contexto sin perder información clave.
/costMuestra tokens consumidos y coste acumulado en la sesión.
/modelCambia 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.

/commitAnaliza cambios staged/unstaged y genera un commit semántico con mensaje descriptivo.
/reviewEjecuta una revisión de código sobre los cambios pendientes con feedback estructurado.
/doctorDiagnostica el entorno: autenticación, versión, conectividad y permisos.
/initGenera un CLAUDE.md analizando la estructura del proyecto actual.
/memoryAñade instrucciones persistentes al CLAUDE.md del proyecto desde la sesión.

Comandos personalizados definidos como skills en .claude/commands/.

/componentEjemplo: genera un componente React completo con tests, tipos y estilos. Recibe el nombre como argumento.
/deploy-stagingEjemplo: ejecuta lint, tests, build y deploy a staging con verificación de healthcheck.
/migrationEjemplo: crea una migración de base de datos con Prisma siguiendo convenciones del proyecto.
/api-endpointEjemplo: genera un endpoint REST completo con validación Zod, handler y tests de integración.
/changelogEjemplo: genera un changelog a partir de los commits desde el último tag de release.
# Los skills custom se crean como archivos .md .claude/commands/component.md .claude/commands/deploy-staging.md .claude/commands/migration.md # Y se invocan como cualquier slash command /component DatePicker /deploy-staging

Preguntas Frecuentes

Sobre comandos y flujos de trabajo en Claude Code

Sí. Puedes definir comandos personalizados como skills creando archivos .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.
El número está limitado por el contexto disponible y los recursos del sistema. En la práctica, Claude Code maneja entre 3 y 5 sub-agentes paralelos de forma eficiente. Cada agente consume su propia ventana de contexto, por lo que lanzar demasiados puede degradar la calidad de las respuestas individuales. Claude decide automáticamente cuántos lanzar según la complejidad de la tarea.
Los hooks permiten ejecutar acciones automáticas en momentos clave del flujo de trabajo. Los casos de uso más comunes son: auto-formateo con Prettier/ESLint después de cada escritura, validaciones de seguridad que bloquean comandos peligrosos antes de ejecutarse, y notificaciones que te avisan cuando Claude necesita atención o termina una tarea larga. Se configuran en .claude/settings.json.