Secreto en el commit
@@ -12,1 +12,4 @@
import Stripe from "stripe";const stripe = new Stripe("sk_live_••••••••");export const cobrar = (monto: number) => stripe.charges.create({ amount: monto });El código de IA llega rapidísimo. Los agujeros también. CodeCorvus le pasa el ojo a cada pull request antes del merge y te muestra lo que no tiene sentido, lo que se filtra y lo que se rompe.
La IA escribe en minutos lo que llevaría un día. Lo que viene con eso, nadie tiene tiempo de leerlo. Le pasa a todo el mundo.
@@ -12,1 +12,4 @@
import Stripe from "stripe";const stripe = new Stripe("sk_live_••••••••");export const cobrar = (monto: number) => stripe.charges.create({ amount: monto });@@ -41,3 +41,3 @@
} catch (error) { logger.error("export failed", error.message); logger.error("export failed", payload.patient);codecorvusbot· ahorabloqueante
payload.patient manda nombre y documento al log. Registra solo el id del reporte.
validado
throw error;@@ -27,2 +27,4 @@
const size = 20;const start = (page - 1) * size;return pedidos.slice(start, size);codecorvusbot· ahoraimportante
slice recibe dónde termina, no cuántos elementos. Desde la página 2, la lista vuelve vacía.
}@@ -8,3 +8,3 @@
export function descuentoSenior(edad: number) { return edad >= 60 ? 0.3 : 0; return edad > 60 ? 0.3 : 0;codecorvusbot· ahoraimportante
La regla del repositorio dice “desde los 60 años”. Con >, quien tiene 60 se queda sin descuento.
}PR #517 · Refactoriza la facturación · 47 archivos
Un PR gigante que nadie lee con calma.
Corvus lee cada línea y solo habla de lo que importa.
Revisión de Corvus
corvus -b main
Revisado · 46s · paso 12
Cada archivo del PR, con el contexto del repo. El comentario cae justo en la línea del problema.
Te dice por qué es un problema y te pasa la corrección como Commit suggestion. Un clic y listo.
Lo bloqueante frena el merge. Lo importante solo avisa. Una sugerencia es solo eso, nadie te obliga.
Comentario en la línea, marcador de severidad y el sello de la IA que intentó refutar el hallazgo.
Revisión de CodeCorvus
🔴 1 bloqueante·🟡 2 importantes·🔵 3 sugerencias
4 archivos revisados. 1 hallazgo bloqueante sobrevivió a la validación adversarial.
| 41 | 41 | } catch (error) { | |
| 42 | - | logger.error("export failed", error.message); | |
| 42 | + | logger.error("export failed", payload.patient); | |
| 43 | 43 | throw error; |
🔴 Datos del paciente pueden terminar en el log
payload.patient incluye nombre y documento. Registra solo el identificador del informe.
| 42 | - | logger.error("export failed", payload.patient); | |
| 42 | + | logger.error("export failed", { report: payload.id }); |
Para liberar con motivo: /corvus ok o /corvus fp
Merge bloqueado
1 hallazgo bloqueante debe corregirse o liberarse con un motivo.
Antes de frenar, otra IA le busca el error al hallazgo. ¿Lo encontró? No frena. ¿No? Recibe el sello “validado” y frena el merge.
Prueba el gate
Mueve los interruptores. El merge cambia al instante.
¿No estás de acuerdo? Manda un /corvus fp con el motivo y sigue. Queda registrado.
Merge bloqueado
validadoEl hallazgo recibe el sello “validado” y la corrección sugerida va en la misma línea.
En cada versión, Corvus corre sobre un golden set de casos reales y sembrados, y el resultado se publica. Este es el del caso Grupo Mais Saúde.
Resultado de este golden set de 13 casos; no es garantía para todo repositorio.
name: CodeCorvuson: [pull_request]permissions: contents: read pull-requests: write id-token: write # sesión corta vía OIDCjobs: review: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: corvus reviewRevisa cada PR en tu runner.
$ corvus -b main⠹ 46s · paso 12 · Leyendo src/reporte.js1bloqueante2importantes3sugerenciasCórrelo antes de abrir el PR y mira el progreso en vivo.
Los hallazgos aparecen en tu editor. En el PR, solo pregunta: /corvus explica.
Ejemplo ilustrativo. Instala y configura el CLI según tu entorno de CI.
Cloud · próximamenteEl mismo Corvus, sin clave de IA y con panel.
Un revisor de código con IA, open source, que corre en GitHub Actions. Lee cada pull request, comenta en la línea con la corrección y solo bloquea el merge cuando encuentra un problema grave que una segunda IA no logró tumbar.
El open source es gratis: usas tu propia clave de IA, o tu suscripción en el CLI. Cloud todavía no tiene precio; llega pronto.
El workflow corre en tu runner de GitHub Actions. El código va de ahí directo al proveedor de IA que elijas.
No. Solo un hallazgo grave frena el merge, y solo después de que otra IA intenta tumbarlo. ¿No estás de acuerdo? /corvus ok o /corvus fp, con el motivo, y sigue.
Por ahora, no. La integración de CI es para GitHub Actions y pull requests en GitHub.
Corvus trae reglas para documentos y datos de pacientes en logs, payloads y respuestas, y registra la evidencia de la revisión. No reemplaza una evaluación legal.
Un workflow, un PR y listo: Corvus ya está revisando.
Open source y gratis. Sin registro, sin trampa.
codecorvusbot· ahorabloqueante
Una clave de producción en el código. Gitleaks la bloquea al instante y el valor sale censurado del comentario.