¿Qué hace block-no-verify-hook?
Configura un hook PreToolUse para evitar que los agentes de IA omitan los hooks de pre-commit de git con --no-verify y otras banderas de omisión. Úsalo al configurar proyectos de Claude Code que exijan barreras de calidad en los commits.
Resumen
Esta habilidad agrega un hook PreToolUse que bloquea cualquier intento de omitir los hooks de pre-commit de git. Dado que los agentes de IA a veces pasan banderas como --no-verify o -n para acelerar los commits, este hook garantiza que todos los commits sigan las políticas de calidad definidas en el proyecto.
Plataformas compatibles
- Claude Code
- Cursor
- Codex (OpenAI)
- Cualquier plataforma que admita hooks PreToolUse
Cómo funciona
- El hook intercepta llamadas a
git commitantes de que se ejecuten. - Analiza el comando en busca de banderas de omisión como
--no-verify,-n,--no-verify(y variantes). - Si se detecta alguna bandera de omisión, el hook detiene la operación y muestra un mensaje de error.
- Se solicita al agente que elimine la bandera y reintente el commit.
Instalación
Claude Code
Agrega el siguiente hook a tu archivo CLAUDE.md o a la configuración del proyecto:
hooks:
PreToolUse:
- name: block-no-verify
pattern: "git commit.*--no-verify|git commit.*-n"
action: reject
message: "No se permite omitir los hooks de pre-commit. Elimina --no-verify o -n y reintenta."
Cursor
En Cursor, puedes agregar hooks similares en la configuración de tu proyecto (por ejemplo, en .cursor/rules/).
Codex (OpenAI)
En Codex, los hooks se configuran a través del archivo de reglas del proyecto. Consulta la documentación de Codex para más detalles.
Ejemplo de uso
Escenario: Un agente intenta hacer un commit con --no-verify para saltarse el linter.
Comportamiento esperado:
- El agente ejecuta:
git commit -m "fix: corrige error tipográfico" --no-verify - El hook intercepta el comando y rechaza la operación.
- El agente recibe el mensaje: "No se permite omitir los hooks de pre-commit. Elimina --no-verify o -n y reintenta."
- El agente vuelve a ejecutar el commit sin la bandera de omisión.
Personalización
Puedes personalizar el mensaje de error y el patrón de detección según las necesidades de tu proyecto.
Patrones comunes de omisión
| Banderas | Descripción |
|---|---|
--no-verify | Omite los hooks de pre-commit estándar |
-n | Abreviatura de --no-verify |
--no-verify --no-verify | Doble omisión (raro) |
Notas importantes
- Asegúrate de que el hook no bloquee commits legítimos que no usen banderas de omisión.
- Si tu proyecto requiere omitir hooks para ciertos commits de emergencia, considera agregar una bandera de escape explícita (por ejemplo,
--allow-no-verify) y modificar la lógica del hook para permitirla. - Este hook no reemplaza los hooks del lado del servidor (por ejemplo, en GitHub). Es una capa adicional de protección a nivel del agente.
Licencia
MIT