En el artículo anterior de esta serie hablamos de cómo el CLAUDE.md le da instrucciones persistentes al agente. Y mencionamos una limitación importante: esas instrucciones son sugerencias. El agente las sigue la mayor parte del tiempo, pero en sesiones largas, bajo un contexto muy denso, o simplemente cuando considera que una excepción es razonable, puede saltarse una instrucción.
Los hooks resuelven exactamente eso. Son comandos que Claude Code ejecuta automáticamente en puntos específicos de su ciclo de vida, sin importar lo que diga el agente, sin importar el estado del contexto, sin que nadie tenga que acordarse de activarlos. Mientras el agente puede olvidarse de formatear un archivo o de correr los tests antes de un commit, un hook no olvida nada.
En este artículo veremos todo el sistema de hooks desde cero: los 12 eventos del ciclo de vida, los 4 tipos de handlers, el sistema de exit codes, los hooks que pueden modificar el input de una herramienta antes de ejecutarla, los HTTP hooks para integraciones con servicios externos, y 5 ejemplos prácticos — 3 específicos para proyectos Java con Gradle y 2 aplicables a cualquier tecnología.
Sin más, vamos al tema.