Hooks
Qué es
Piensa en una luz con sensor de movimiento: se enciende sola en el momento en que alguien pasa cerca, y nadie tiene que acordarse de mover un interruptor. Un hook funciona igual. Un hook es tu propio comando que se ejecuta automáticamente en un punto específico del ciclo de vida de un — antes de que ejecute un comando de , después de que edite un archivo, cuando arranca una , y así sucesivamente. Los hooks te permiten observar y controlar lo que hace el agente usando scripts comunes y corrientes, en lugar de confiar en que recordará una regla por sí solo. Son la capa de aplicación (enforcement) de un harness de programación con IA.
Fortalezas
- Deterministas: un hook se ejecuta cada vez, así que una regla no puede olvidarse ni discutirse.
- Se escriben como shell o scripts sencillos, así que puedes hacer cualquier cosa que tu máquina pueda hacer.
- Pueden bloquear una acción, no solo registrarla — un hook de pre-comando puede rechazar un comando peligroso.
- Excelentes para barreras de protección: formatear al guardar, correr tests después de editar, escanear en busca de secretos antes de hacer .
Contrapartidas
- Un hook es código real que se ejecuta automáticamente, así que uno con errores puede romper el flujo de trabajo.
- Los hooks lentos añaden latencia a cada evento que los dispara.
- Se disparan según patrones, así que un hook demasiado amplio puede interferir con acciones legítimas.
- Más configuración y otro lugar donde mirar cuando algo se comporta de forma inesperada.
Cuándo usarlo
Usa hooks cuando quieras una garantía firme sobre el comportamiento del agente — formateo automático, ejecución obligatoria de tests, bloqueo de comandos destructivos, o registro de cada acción — en lugar de confiar en que el agente cumpla voluntariamente.
Encaje en vibe coding
Los hooks son la forma de mantener a un agente seguro mientras lo dejas moverse rápido. El agente propone; el hook aplica la regla. Un hook de "antes de ejecutar" que bloquea rm -rf, o un hook de "después de editar" que corre el verificador de tipos, convierte a un asistente desenfadado en uno que físicamente no puede saltarse tus barreras de protección.
// run the formatter after every file edit
{
"hooks": {
"PostToolUse": [
{ "matcher": "Edit", "command": "npx prettier --write $FILE" }
]
}
}