Claude Code: hooks y slash commands para automatizar tu flujo de desarrollo con IA
El problema que nadie te cuenta sobre los asistentes de IA en desarrollo
Usas Claude Code, le pides que refactorice una función, y funciona. Pero diez minutos después repites el mismo ciclo: mismas instrucciones, mismo contexto, mismo esfuerzo manual. Si tu flujo de trabajo con IA requiere que tú siempre inicies cada conversación desde cero, no estás automatizando nada; estás delegando con pasos extra.
Los hooks y los slash commands de Claude Code son la respuesta a esto. Permiten que el modelo actúe de forma proactiva en momentos específicos de tu flujo, y que tú invoque rutinas complejas con una sola línea. Aquí te explico cómo usarlos con ejemplos reales.
¿Qué son los hooks en Claude Code?
Los hooks son scripts que Claude Code ejecuta automáticamente en respuesta a eventos del ciclo de desarrollo. Piensa en ellos como los git hooks, pero integrados directamente en tu sesión de IA. Se definen en el archivo de configuración del proyecto (.claude/settings.json o claude.json según tu versión) y se disparan en momentos como:
- PreToolUse: antes de que Claude ejecute una herramienta (leer archivo, escribir código, ejecutar terminal).
- PostToolUse: después de que la herramienta termina.
- Notification: cuando Claude envía una notificación al usuario.
- Stop: cuando el agente termina su turno.
Esto significa que puedes interceptar cada acción del agente y añadir lógica propia sin tocar el prompt principal.
Ejemplo práctico: validar código antes de escribirlo al disco
Supón que quieres que nunca se escriba un archivo Python sin pasar primero por ruff (linter). Configura un hook PreToolUse que inspeccione la herramienta write_file:
{
"hooks": {
"PreToolUse": [
{
"matcher": "write_file",
"hooks": [
{
"type": "command",
"command": "bash -c 'echo \"$CLAUDE_TOOL_INPUT\" | python -c \"import sys,json; open(\\\"/tmp/check.py\\\",\"w\").write(json.load(sys.stdin)[\"content\"])\"' && ruff check /tmp/check.py"
}
]
}
]
}
}
Si ruff detecta errores, el hook devuelve un código de salida distinto de cero y Claude Code interrumpe la escritura. No necesitas recordar pedírselo: ocurre siempre, de forma sistemática.
Slash commands: rutinas complejas en una palabra
Los slash commands son comandos personalizados que puedes invocar durante una sesión escribiendo /nombre-del-comando. Se definen como archivos Markdown dentro de .claude/commands/ y el contenido del archivo es el prompt que se ejecuta.
Ejemplo: crea el archivo .claude/commands/revisar-pr.md con este contenido:
Analiza los cambios en el diff actual comparado con la rama main.
Identifica:
1. Posibles regresiones o bugs introducidos.
2. Funciones sin tests unitarios.
3. Violaciones del estilo de código definido en CONTRIBUTING.md.
Devuelve un informe estructurado con prioridad alta/media/baja.
Ahora, cuando estés revisando un pull request, escribe simplemente /revisar-pr en tu sesión de Claude Code. El agente ejecutará ese prompt completo con el contexto actual del repositorio. Sin copiar y pegar, sin recordar la estructura exacta del prompt.
Combinar hooks y slash commands: el flujo real
El verdadero poder aparece cuando los combinas. Aquí un flujo concreto para equipos que trabajan con TDD:
- Slash command
/nueva-feature: genera el esqueleto de la función, el archivo de test y actualiza el README de módulo automáticamente. - Hook
PostToolUseenwrite_file: ejecutapytestsobre el archivo recién creado y devuelve el resultado a Claude para que corrija si hay fallos. - Hook
Stop: al finalizar el turno, registra en un log local qué archivos fueron modificados en la sesión.
Este setup convierte a Claude Code en un agente que no solo escribe código, sino que verifica, corrige y documenta dentro del mismo ciclo, sin intervención manual en cada paso.
Variables de entorno disponibles en hooks
Claude Code expone variables que puedes usar en tus scripts de hook:
CLAUDE_TOOL_NAME: nombre de la herramienta que se va a ejecutar.CLAUDE_TOOL_INPUT: JSON con los parámetros de entrada de la herramienta.CLAUDE_TOOL_OUTPUT: resultado de la herramienta (disponible en PostToolUse).
Con estas variables puedes construir scripts de bash o Python que filtren, transformen o bloqueen acciones específicas con lógica arbitraria.
Próximo paso: audita tu flujo actual
Antes de configurar cualquier hook, dedica 15 minutos a anotar las tres cosas que repites más en tus sesiones de Claude Code: instrucciones de contexto que siempre das al inicio, validaciones que haces manualmente después de cada cambio, informes que generas al cerrar. Esas tres cosas son exactamente donde los hooks y los slash commands recuperan tiempo real.
La automatización con IA no consiste en hacer las cosas más rápido; consiste en eliminar la fricción que te obliga a ser el intermediario entre el modelo y tu proceso de desarrollo.