Ingeniería de arnés: cómo mantener la coherencia del código generado por IA

Fuentes: Harness Engineering

La ingeniería de arnés (harness engineering) es una disciplina que rodea la generación de código asistida por inteligencia artificial con herramientas deterministas, revisión basada en agentes y verificaciones periódicas de entropía, con el objetivo de que el código producido por IA se mantenga correcto y coherente a lo largo del tiempo. El término fue acuñado por Birgitta Boeckeler en un artículo publicado en martinfowler.com desde el contexto de ThoughtWorks, donde equipos que desarrollan software real con asistentes de IA observaron que, sin restricciones, esos asistentes producen código aparentemente plausible pero que se degrada silenciosamente: olvida convenciones, repite errores y erosiona la coherencia interna del repositorio.

La analogía central procede de los test harnesses de la ingeniería de software: las pruebas no hacen que el código sea correcto por construcción, sino que detectan cuándo deja de serlo. Del mismo modo, un arnés para programación con IA debe verificar no solo la corrección funcional, sino el cumplimiento de decisiones arquitectónicas, convenciones de nombrado, restricciones de seguridad y reglas estructurales acordadas por el equipo.

Boeckeler identifica tres componentes: la ingeniería de contexto, que documenta en un archivo específico (HARNESS.md) el stack, las decisiones arquitectónicas y las restricciones que la IA debe respetar; las restricciones arquitectónicas, que aplican la norma mediante puntos de verificación deterministas (linters, scripts, aserciones) o revisiones con agentes cuando la regla implica intención o semántica difícil de formalizar; y la recolección de basura, un proceso programado que detecta acumulación de código muerto, comentarios obsoletos o dependencias abandonadas.

El arnés es además un documento vivo y autorreferencial: registra el estado de cada restricción —no verificada, bajo revisión de agente o aplicada de forma determinista— y un auditor automatizado actualiza esa clasificación, cerrando un bucle de retroalimentación entre especificación y realidad.