Ir al contenido
← Volver al blog
·5 min de lectura

Probamos Vigil en nuestros propios PRs generados por IA

Qué pasa cuando apuntas una herramienta de verificación de PRs a su propio código? Hallazgos reales, scores reales, mejoras reales.

Cada PR en el código de Vigil está escrito por agentes de IA — principalmente Claude Code. Usamos Vigil para verificar cada uno. No como truco de marketing, sino porque lo necesitamos. Cuando todo tu código es generado por IA, la brecha entre “lo que dice el PR” y “lo que hace el código” se convierte en lo más importante a verificar.

Esto es lo que pasó cuando apuntamos Vigil a sus propios PRs.

Tres hallazgos reales

Undocumented Changes
URI de redirección hardcodeada en flujo de auth
El PR #82 agregó GitHub OAuth. La descripción mencionaba “agrega flujo de auth.” Lo que no mencionó: la URL de callback estaba hardcodeada a https://keepvigil.dev/api/auth/callback. Sin variable de entorno, sin configuración. Vigil lo flagó como cambio no documentado. En un setup multi-ambiente, esto habría roto staging y desarrollo.
Claims Verifier
Auto-approve crea review de GitHub no documentado
El PR #92 implementó auto-approve para PRs con score alto. La descripción decía “agrega auto-approve cuando score > threshold.” Lo que no decía: crea un review de GitHub con evento APPROVE — un efecto secundario que cambia el estado de merge del PR. Vigil capturó la brecha entre lo declarado y lo que realmente hacía el código.
Undocumented Changes
Página de redirección silenciosa agregada sin mención
El PR #93 agregó soporte i18n. Enterrado en el diff: una nueva página redirect de /docs a /docs/getting-started. No mencionada en ninguna parte de la descripción del PR. ¿Pequeño? Sí. ¿El tipo de cosa que se escapa en review? También.

La trayectoria de scores

Antes de fixes (PRs #81–#86)
59PR #81
70PR #82
66PR #83
70PR #84
Después de fixes (PRs #91–#93)
82PR #91
93PR #92
100PR #107

Nuestros primeros PRs sacaron entre 59 y 70. El culpable: falsos positivos. La confusión de template literals destruía diffs de JSX (10+ falsos positivos por PR). El credential scan flaggeaba archivos de test. El coverage mapper se quejaba de que Dockerfiles no tenían tests.

Arreglamos cada problema sistemáticamente (PRs #88 y #94). La tasa de falsos positivos bajó de ~10/PR a ~0/PR. Los scores subieron de los 60s a los 80s y 90s.

Lo que aprendimos

El código generado por IA es sintácticamente correcto pero narrativamente incompleto. El código compila. Los tests pasan. Pero la descripción del PR no cuenta toda la historia. Esa es la brecha que Vigil llena.

Los falsos positivos importan más que los falsos negativos. Una herramienta que grita lobo se ignora. Dedicamos más tiempo a reducir falsos positivos que a agregar features — y valió la pena.

Verificación no es review. Code review pregunta “¿este código es bueno?” Verificación pregunta “¿este PR realmente hace lo que dice?” Son complementarios, no competidores.

Pruébalo en tus repos

Vigil es gratis para repos ilimitados. Instala desde el GitHub Marketplace, abre un PR, y ve qué encuentra.

Instalar Vigil