Converge: Audita el código generado por IA

Resumen

Cuando terminas de construir una aplicación con inteligencia artificial, el verdadero trabajo profesional apenas empieza: auditar el código contra tus especificaciones. Aquí aprenderás a validar el comportamiento de tu app usando Eval-Driven Development y el comando SpecKit Converge, una técnica clave para cualquiera que trabaje con Spec-Driven Development y sistemas agénticos.

Por qué no basta con que la aplicación funcione

Si construyes una aplicación solo con VibeCoding, la tentación es cerrar la laptop y entregarla al cliente. Pero como profesional que domina el Spec-Driven Development, sabes que la inteligencia artificial se basa en modelos no determinísticos. Eso significa que, incluso con buenas especificaciones, puede generar errores en el código.

Aquí está el punto clave: no basta con que la app corra, tiene que comportarse como lo definiste en tu especificación. Por eso el paso de auditoría es tan importante como el de construcción.

¿Qué significa que la IA sea no determinística? Que ante la misma instrucción puede generar resultados distintos. Por eso el mismo prompt no garantiza siempre el mismo código, y necesitas verificar el comportamiento final.

Qué es el Eval-Driven Development y cómo reemplaza a los test tradicionales

Tradicionalmente, para evaluar un sistema dedicarías horas escribiendo tests unitarios con Cypress. Con sistemas agénticos puedes migrar hacia el Eval-Driven Development, un enfoque más ágil y alineado con tus specs.

Un eval es simplemente los criterios de aceptación de tu especificación convertidos en pruebas verificables. Y aquí viene lo interesante: no evalúas el código, evalúas el comportamiento de la aplicación frente a los contratos que generaste.

¿Qué es un eval en Spec-Driven Development? Son los criterios de aceptación de tu spec convertidos en pruebas verificables. En lugar de revisar el código línea por línea, verificas si la aplicación se comporta según lo definido.

Para auditar no lees el código línea por línea. Creas una tabla con todas las pruebas usando los casos de borde que definiste en tu especificación, y los comparas contra el comportamiento real de la aplicación.

Cómo probar un caso de borde de forma manual

El proceso empieza abriendo el archivo spec.md, que vive dentro del folder specs, y yendo directamente a los casos de borde ya definidos.

Tomemos un ejemplo concreto. El segundo caso de borde pregunta: ¿qué ocurre si un usuario intenta reservar cuando ya tiene una reserva activa vigente, en cualquier cancha o fecha? La especificación indica que el sistema debe impedirlo, y esto corresponde al functional requirement número nueve.

Para validarlo, sigue estos pasos:

  1. Abre la aplicación con una reserva activa ya existente.
  2. Intenta crear una nueva reserva, por ejemplo en la cancha del Poblado hoy a las 21:00.
  3. Da clic en confirmar y observa el comportamiento.

En la prueba, el sistema impide avanzar y muestra un mensaje indicando que ya existe una cancha activa y que debe cancelarse antes de hacer una nueva reserva. Ese caso de borde funciona perfecto.

Cómo automatizar la auditoría con SpecKit Converge

La revisión manual es valiosa, pero algunos proyectos tienen tantos casos de borde que hacerlo a mano toma demasiado tiempo. Para esto, SpecKit ofrece el comando SpecKit Converge, que indica si el código generado está alineado con las especificaciones.

Este comando hace algo muy concreto: analiza tu codebase completo contra la spec, el plan y las tareas, y agrega cualquier trabajo pendiente no construido como nuevas tareas en tasks.md, para que implement pueda completarlo.

¿Qué hace el comando SpecKit Converge? Analiza todo tu código generado por IA frente a las features definidas en spec.md, detecta divergencias y las agrega como tareas nuevas para corregirlas.

Cuando ejecutas el comando en Cloud Code, la herramienta revisa todo el repositorio, compara con tus specs y busca cualquier hueco o parche que deba ejecutar.

Cómo interpretar los hallazgos de la auditoría

Al terminar, el comando entrega un resumen que puedes leer de abajo hacia arriba. En el ejemplo, los resultados confirman que todo está en orden:

  • La estructura de archivos cumple con lo definido.
  • El panel de "mis reservas" funciona correctamente.
  • La grilla de 24 horas que especificaste está bien implementada.

En este caso no hubo ninguna divergencia entre el código y las especificaciones. Pero cuando sí la hay, la herramienta la señala en color rojo.

Y aquí está lo poderoso: si Cloud identifica un error que diverge de lo que definiste, no solo te lo indica, sino que te pide autorización para corregirlo de inmediato. Recuerda que tú solo defines especificaciones. No generas código por tu cuenta, todo lo ejecuta la inteligencia artificial.

Qué pasa cuando el cliente reporta un problema nuevo

Imagina que el cliente llama furioso porque la gente está haciendo reservas a las 2:00 y 3:00 a.m., cuando las canchas están cerradas. Ese es exactamente el tipo de cambio que el Spec-Driven Development permite gestionar de forma ordenada, ajustando primero la especificación y dejando que la IA propague el cambio al código.

¿Ya probaste correr SpecKit Converge en tu propio proyecto? Cuéntanos en los comentarios qué divergencias encontró y cómo las resolviste.