Image: AI generated
El muro de los 3 meses
Si tu aplicación hecha con vibe coding colapsó a los 3 meses, si estás lidiando con la deriva donde la IA sobreescribe la lógica existente, si quieres proteger los contratos de API contra cambios de código – Hurl y el trinquete son la solución.
Construyes un SaaS con vibe coding. Al principio es rapido. “Haz el login” – 30 segundos. “Agrega pagos” – 2 minutos. Un MVP sale en 3 semanas.
Tres meses despues, ocurren cosas extranas. La IA “ordena” la logica de pagos y cambia silenciosamente el calculo de descuentos. Agregar un nuevo endpoint rompe la autenticacion existente. Pides una refactorizacion y los nombres de campos de la API publica cambian, matando a todos los clientes.
Esto se llama deriva logica – la IA modifica involuntariamente la logica de negocio existente. Los bugs de regresion existen en el desarrollo tradicional. Pero la deriva logica es diferente. Cambios que el desarrollador no pretendio ocurren sin que el desarrollador lo note, en todo el codigo. Porque cada prompt comienza en una nueva ventana de contexto.
La deriva en numeros
Esto no es opinion. Hay datos.
El precio de la velocidad es la complejidad. Un equipo de Carnegie Mellon comparo 807 repositorios de GitHub antes y despues de adoptar Cursor (MSR 2026). En el primer mes, las adiciones de codigo aumentaron 3-5x. Dos meses despues la ventaja de velocidad desaparecio. Lo que quedo fue un aumento del 30% en advertencias de analisis estatico y un aumento permanente del 41% en complejidad del codigo. Este hallazgo fue replicado independientemente. Liu et al. (2026) analizaron 302,600 commits generados por IA en 6,299 repositorios GitHub y encontraron que la deuda tecnica no resuelta paso de unos cientos a principios de 2025 a mas de 110,000 en febrero de 2026.
No se hizo mas rapido, se hizo mas lento. La organizacion de investigacion sin fines de lucro METR realizo un ensayo controlado aleatorizado con 16 desarrolladores experimentados de codigo abierto (2025). En proyectos que conocian bien, el grupo usando herramientas de IA tardo un 19% mas en completar tareas. Sin embargo, los desarrolladores percibieron una mejora de velocidad del 20%. La brecha entre percepcion y realidad fue de 39pp.
La estabilidad colapsa a escala. Segun el informe DORA de Google (2025), por cada 25% de aumento en adopcion de IA, la estabilidad de entrega de software disminuye un 7.2%.
Realmente colapso. Amazon impuso herramientas de codificacion con IA en toda la empresa en 2025 y desplego 21,000 agentes de IA. En el mismo periodo, aproximadamente 30,000 empleados fueron despedidos, reduciendo drasticamente la capacidad de revision. La combinacion resulto en 4 incidentes Sev-1 en 90 dias. El 5 de marzo de 2026, una caida de 6 horas causo una perdida estimada de 6.3 millones de pedidos. Un documento interno decia: “La generacion rapida de codigo de GenAI esta exponiendo inadvertidamente vulnerabilidades, y las medidas de seguridad actuales son completamente inadecuadas.”
“Haz TDD” no es la respuesta
El consejo comun para la deriva del vibe coding es “escribe tests”. La direccion es correcta, pero como proporcionas los tests determina el resultado.
El estudio TDAD (arxiv 2026) lo probo con precision. Qwen3-Coder 30B resolvio 100 instancias de SWE-bench Verified.
| Condicion | Tasa de regresion |
|---|---|
| Linea base (sin instruccion de tests) | 6.08% |
| Instruccion procedimental “haz TDD” | 9.94% (peor) |
| Proporcionar archivos de test afectados como contexto | 1.82% (reduccion del 70%) |
Decir “haz TDD” empeora las cosas. El agente se desvía de su tarea principal al intentar seguir la instruccion procedimental. Pero dar el contexto concreto “estos archivos de test deben pasar” reduce las regresiones un 70%.
La diferencia es clara. No una instruccion de “como testear”, sino un contrato de “que debe pasar”.
Hurl: contratos en texto plano
El concepto de “contratos” en software fue formalizado por Bertrand Meyer (1992) – la trinidad de precondiciones, postcondiciones e invariantes que especifican obligaciones entre modulos. Hurl aplica este principio al limite HTTP. Es una herramienta de testing que declara solicitudes HTTP y respuestas esperadas en texto plano. Mantenida por Orange (France Telecom), es un binario Rust sin dependencias de runtime y 18.7k estrellas en GitHub. Suficientemente rapida para ejecutar en cada commit en CI.
# Login exitoso
POST http://localhost:8080/api/auth/login
{
"email": "test@example.com",
"password": "secret123"
}
HTTP 200
[Asserts]
jsonpath "$.token" exists
jsonpath "$.user.email" == "test@example.com"
# Acceso sin autenticacion devuelve 401
GET http://localhost:8080/api/pages
HTTP 401
Dos contratos. Login debe devolver 200 con token, y el acceso sin autenticacion debe devolver 401.
Cuando este archivo se commitea en git y se ejecuta en cada commit en CI – el momento en que la IA “ordena” la logica de autenticacion y el 401 se convierte en 200, el commit se rechaza. La deriva se atrapa antes de llegar a produccion.
Por que Hurl
Los tests unitarios tambien pueden atrapar la deriva – si no le das a la IA permiso para modificar los archivos de test. Pero los tests unitarios verifican funciones internas del codigo, asi que estan estructuralmente acoplados a la implementacion. Cuando cambian nombres de funciones, los tests tambien se rompen.
Hurl esta en el limite HTTP. Solo declara solicitudes y respuestas. No sabe nada de la estructura interna del codigo. No importa como la IA cambie el codigo: si el comportamiento observable externamente es el mismo, pasa; si difiere, falla. Es naturalmente independiente de la implementacion.
| Tests unitarios | Hurl | |
|---|---|---|
| Objeto de verificacion | Internos de funcion | Contrato HTTP |
| En refactorizacion IA | Cambiados juntos | Sin cambios |
| Deteccion de deriva | Condicional | Natural |
| Dependencia de estructura | Alta | Ninguna |
| Legibilidad humana | Nivel codigo | Texto plano |
| Facilidad de generacion LLM | Requiere entender estructura | Solo necesita HTTP |
Lo que Hurl verifica no es codigo sino comportamiento. La IA puede cambiar el codigo libremente. El comportamiento no debe cambiar. Esta distincion es clave para atrapar la deriva.
Bloqueo de trinquete
Cuando un test Hurl pasa, se bloquea. Esto es el trinquete. Un test Hurl bloqueado es ratchet code — codigo determinista que hace irreversible un contrato de API aprobado.
1. Escribir tests Hurl para la API actual (o auto-extraer)
2. Ejecutar en cada commit en CI
3. Tests aprobados no se pueden borrar ni modificar
4. Al agregar funciones nuevas, agregar tests Hurl nuevos
5. Todos los tests existentes + nuevos deben pasar para merge
Cuando dices al agente “refactoriza el codigo”, cambia el codigo libremente. Pero si los tests Hurl se rompen, el commit se rechaza. El agente debe refactorizar preservando todo el comportamiento existente.
Funciona en legacy tambien
Ya tienes produccion con vibe coding? No hay que empezar de cero.
Paso 1: Captura el comportamiento actual en Hurl. Si tienes documentacion API, transcribela a Hurl. Si no, haz que el agente lea el codigo existente y escriba tests Hurl.
Paso 2: Enganchalo al CI. Confirma que todos los tests Hurl pasan y agregalos a los requisitos de merge.
Paso 3: Ahora estas seguro. Ya sea refactorizacion o funciones nuevas, Hurl protege el comportamiento existente.
No es obra de cimientos sino refuerzo antisismico. Se refuerza el edificio sin cerrar la tienda.
No es el fin del vibe coding, sino su evolucion
Andrej Karpathy, creador del vibe coding, declaro en febrero de 2026: “La era del vibe coding termino.” El nuevo paradigma es la ingenieria agentiva – los humanos no escriben codigo; orquestan agentes que planifican, implementan y prueban autonomamente.
Thoughtworks Technology Radar (2025) coloco Spec-Driven Development en nivel “Assess”. Martin Fowler publico un analisis de herramientas SDD. La industria converge en la misma direccion.
Storey (2026) teorizo las causas raiz de la deriva como dos nuevos conceptos de deuda. Deuda cognitiva – la erosion del entendimiento compartido del equipo, y deuda de intencion – la falta de externalizacion de por que algo se construyo asi. Un archivo Hurl es precisamente la externalizacion de la intencion.
Los tests Hurl son la unidad minima de esta transicion. No necesitas escribir 10 specs. No necesitas aprender OpenAPI. Un archivo Hurl es un contrato. Y ese contrato suprime la deriva sin limitar la libertad del agente.
No cambies el modelo. Agrega un contrato.
Articulos relacionados
- yongol – La quilla del SaaS de codificacion con IA – Impone consistencia full-stack con 10 SSOTs. Hurl es uno de ellos.
- Ratchet Pattern – Como hacer que los agentes terminen el trabajo – Trasfondo teorico de verificacion determinista y bloqueo de trinquete.
- Codigo trinquete que aprovecha IFEval – Bucles de retroalimentacion que explotan el sesgo de adulacion y Reins.
Referencias
- Cursino, D. et al. (2026). “Speed at the Cost of Quality? The Impact of AI Coding on Software.” MSR 2026. arxiv.org/abs/2511.04427
- METR (2025). “Measuring the Impact of Early AI on Experienced Open-source Developer Productivity.” arxiv.org/abs/2507.09089
- Google Cloud (2025). DORA Report 2025. cloud.google.com
- Wang, Z. et al. (2026). “TDAD: Test-Driven Agentic Development.” ACM AIWare 2026. arxiv.org/abs/2603.17973
- Autonoma (2026). “Amazon Vibe Coding Failures: 4 Sev-1s in 90 Days.” getautonoma.com
- CNBC (2026). “Amazon convenes ‘deep dive’ internal meeting to address AI-related outages.” cnbc.com
- Thoughtworks (2025). “Spec-Driven Development.” Technology Radar Vol.33. thoughtworks.com
- Karpathy, A. (2026). “From Vibe Coding to Agentic Engineering.” thenewstack.io
- Fowler, M. et al. (2025). “SDD Tools.” martinfowler.com
- Liu, Y. et al. (2026). “Debt Behind the AI Boom: A Large-Scale Empirical Study of AI-Generated Code in the Wild.” arxiv.org/abs/2603.28592
- Meyer, B. (1992). “Applying ‘Design by Contract’.” Computer, 25(10), pp. 40-51. doi.org/10.1109/2.161279
- Storey, M.-A. (2026). “From Technical Debt to Cognitive and Intent Debt: Rethinking Software Health in the Age of AI.” arxiv.org/abs/2603.22106
- Hurl. hurl.dev | github.com/Orange-OpenSource/hurl
Registro de cambios
- 2026-05-22: Versión inicial