Modulo 04: Automatizacion, hooks y agentes
Automatizacion inteligente: de repetir a delegar
Hay una diferencia fundamental entre automatizar y delegar. Automatizar es programar una secuencia fija: "cuando pase X, haz Y". Delegar es dar contexto a un agente y que decida como actuar.
graph LR
A[Evento] --> B{Hook}
B -->|PostToolUse| C[ESLint auto-fix]
B -->|PreToolUse| D[Validar permisos]
C --> E[Agente Custom]
D --> E
E --> F{Tipo tarea}
F -->|Investigar| G[Explorer]
F -->|Planificar| H[Plan Agent]
F -->|Implementar| I[Builder]
F -->|Revisar| J[Reviewer]
La mayoria de herramientas de automatizacion (Zapier, Make, IFTTT) operan en el primer nivel: triggers y acciones predefinidas. Son utiles, pero rigidas. Un agente de IA opera en el segundo nivel: recibe un objetivo, analiza el contexto y elige las acciones necesarias.
- Nivel 1 (Automatizacion): Reglas fijas, triggers, flujos lineales. Ideal para tareas repetitivas y predecibles.
- Nivel 2 (Agentes): Objetivos, contexto, herramientas. Ideal para tareas que requieren juicio o adaptacion.
- Nivel 3 (Orquestacion): Multiples agentes coordinados con un supervisor. Para flujos complejos multi-paso.
Hooks: automatizar acciones en tu editor
Los hooks en Claude Code permiten ejecutar comandos automaticamente antes o despues de que el agente use una herramienta. Son el puente entre la IA y tu flujo de desarrollo.
Existen dos tipos principales:
- PreToolUse: Se ejecuta antes de que la herramienta actue. Util para validaciones, confirmaciones o transformaciones previas.
- PostToolUse: Se ejecuta despues de que la herramienta termine. Perfecto para linting, formateo, tests o notificaciones.
Configuracion en .claude/settings.json:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"command": "npx eslint --fix $CLAUDE_FILE_PATH"
},
{
"matcher": "Write",
"command": "npx prettier --write $CLAUDE_FILE_PATH"
}
],
"PreToolUse": [
{
"matcher": "Bash",
"command": "echo 'Ejecutando comando bash...'"
}
]
}
}
Casos de uso avanzados para hooks:
- Ejecutar tests unitarios cada vez que se modifica un archivo de codigo
- Formatear archivos con Prettier al guardar
- Validar tipos con
tsc --noEmittras ediciones en TypeScript - Enviar notificaciones a Slack cuando se completa una tarea larga
- Generar documentacion automatica tras crear nuevas funciones
Agentes custom: tu equipo virtual
Claude Code permite crear agentes especializados que trabajan como un equipo. Cada agente tiene un rol definido, herramientas especificas y un ambito de actuacion limitado.
Tipos de agentes segun su funcion:
- General-purpose: El agente por defecto. Puede hacer de todo, pero no esta optimizado para nada especifico.
- Explore: Investiga el codebase, lee archivos, entiende la arquitectura. No modifica nada.
- Plan: Analiza requisitos y genera un plan de implementacion detallado paso a paso.
- Builder: Implementa codigo siguiendo un plan. Crea archivos, edita, ejecuta tests.
- Investigator: Busca bugs, analiza logs, traza errores. Especialista en debugging.
- Reviewer: Revisa codigo, busca problemas de seguridad, rendimiento y estilo.
Un pipeline tipico: Explore analiza el codebase, Plan genera la estrategia, Builder implementa el codigo, Reviewer valida el resultado. Cada paso alimenta al siguiente.
Ejemplo de pipeline multi-agente:
# 1. Investigar el estado actual
claude --agent explore "Analiza la estructura del modulo auth"
# 2. Planificar cambios
claude --agent plan "Anade soporte para OAuth2 al modulo auth"
# 3. Implementar
claude --agent builder "Implementa el plan de OAuth2"
# 4. Revisar
claude --agent reviewer "Revisa la implementacion de OAuth2"
Permisos y seguridad
Controlar que puede y que no puede hacer cada agente es critico. Claude Code ofrece control granular sobre las herramientas disponibles.
Categorias de permisos:
- Read: Leer archivos del proyecto
- Edit: Modificar archivos existentes
- Write: Crear archivos nuevos
- Bash: Ejecutar comandos en terminal
- MCP: Usar servidores MCP externos
Principio de minimo privilegio: cada agente solo debe tener acceso a las herramientas que necesita para su tarea.
{
"permissions": {
"allowedTools": ["Read", "Grep", "Glob"],
"denyTools": ["Bash", "Write"],
"autoApprove": ["Read"]
}
}
allowedTools para restringir las herramientas disponibles. Un agente de revision no necesita poder escribir archivos. Un agente de analisis no necesita ejecutar bash.
Configuracion para ejecucion headless (sin intervencion humana):
claude --headless \
--allowedTools "Read,Grep,Glob" \
--prompt "Revisa el codigo del directorio src/ y genera un informe"
n8n y automatizacion visual
n8n es una plataforma de automatizacion visual open-source que complementa perfectamente a los hooks de codigo. Mientras los hooks actuan dentro de tu editor, n8n conecta servicios externos sin escribir codigo.
Cuando usar cada herramienta:
- Hooks (codigo): Acciones dentro del flujo de desarrollo. Linting, tests, formateo.
- n8n (visual): Conexiones entre servicios externos. Email, CRM, Slack, bases de datos.
Tres workflows practicos con n8n:
1. Email a clasificar a Slack:
Trigger: Email recibido (IMAP)
-> Nodo IA: Clasificar urgencia (alta/media/baja)
-> Condicional: Si urgencia == "alta"
-> Slack: Enviar a #urgente con mencion @channel
-> Si no: Guardar en base de datos para revision
2. Formulario a CRM:
Trigger: Webhook (formulario web)
-> Nodo IA: Extraer datos estructurados del mensaje
-> Supabase: Crear lead en tabla prospects
-> Brevo: Anadir a lista de nurturing
-> Slack: Notificar al equipo comercial
3. RSS a resumen diario:
Trigger: Cron (08:00 cada dia)
-> RSS: Leer 5 feeds tecnologicos
-> Nodo IA: Resumir las 10 noticias mas relevantes
-> Email: Enviar digest al equipo
-> Notion: Archivar en base de conocimiento
Comparativa de plataformas de automatizacion:
| Criterio | Zapier | Make | n8n |
|---|---|---|---|
| Precio | Desde 19 USD/mes | Desde 9 USD/mes | Gratis (self-hosted) |
| Self-hosting | No | No | Si (Docker) |
| Nodos IA | Limitados | Buenos | Excelentes |
| Codigo custom | Basico | Medio | Completo (JS/Python) |
| Soberania datos | No (cloud US) | No (cloud EU) | Total (tu servidor) |
Comandos reutilizables (Skills)
Los comandos personalizados en .claude/commands/ permiten crear atajos para tareas frecuentes. Cada archivo .md en esa carpeta se convierte en un comando invocable.
Estructura de un comando:
# .claude/commands/deploy.md
Ejecuta el proceso de deploy completo:
1. Ejecuta los tests con `npm test`
2. Si todos pasan, ejecuta `npm run build`
3. Verifica que el build no tiene errores
4. Ejecuta `npm run deploy`
5. Confirma que el deploy fue exitoso
6. Notifica el resultado
Mas ejemplos de comandos utiles:
# .claude/commands/review.md
Revisa el codigo del ultimo commit:
1. Lee los archivos modificados con `git diff HEAD~1`
2. Busca problemas de seguridad (inyecciones, secrets expuestos)
3. Verifica que no hay console.log en produccion
4. Comprueba que hay tests para las funciones nuevas
5. Genera un resumen con hallazgos y sugerencias
# .claude/commands/test.md
Ejecuta la suite de tests y analiza resultados:
1. Ejecuta `npm test -- --coverage`
2. Si hay tests fallidos, analiza la causa
3. Sugiere fixes para los tests rotos
4. Muestra un resumen de cobertura
Para invocar un comando, escribe /deploy, /review o /test en Claude Code. Los comandos se comparten con el equipo a traves del repositorio.
/feature lanza un agente Plan, luego un Builder, con hooks de ESLint y tests automaticos en cada paso.
Pon a prueba tus conocimientos
Completa el quiz para verificar que dominas hooks, agentes y automatizacion.
Hacer quiz