Andrej Karpathy popularizó el término "vibe coding" en febrero de 2024: describir la tarea a un LLM, aceptar el código que devuelve y seguir sin leer. El verbete de Wikipedia registra el origen y la definición vigente.

Para demos, scripts internos y prototipos personales, el método entrega rápido y el error queda en el bolsillo de quien experimentó. La cuenta cambia cuando el código entra en un sistema con usuarios, pagos y datos personales.

Dónde funciona el método

  • Boilerplate: CRUD, DTOs, configuración de build, decoradores repetitivos.
  • Un script de migración de datos con alcance cerrado y una sola ejecución.
  • Un prototipo de pantalla para validar el flujo con el equipo antes de invertir en estructura.
  • Un smoke test de una funcionalidad chica.

En esos cuatro casos un error cuesta minutos, y leer línea por línea no paga el tiempo.

Lo que el modelo no sabe de tu sistema

Un LLM aprende patrones de código público y los reproduce con fluidez. Trabaja sin:

  • La invariante de negocio que el equipo defiende, como "un pedido cancelado no vuelve a la cola".
  • El contrato implícito entre servicios que vive en la conversación y no en el código.
  • La curva de latencia pactada con el cliente.
  • El historial de trade-offs que explica la solución rara del módulo de billing.

El código generado sale correcto en el contexto del dataset de entrenamiento. En tu dominio, la corrección depende de que alguien verifique.

El test generado arrastra el mismo agujero

El contraargumento aparece temprano: una suite verde reemplaza la lectura. Un test generado cubre el camino feliz que el modelo ve. El test que protege el sistema codifica una regla de negocio, y esa regla es la parte que el modelo no llegó a ver. El capítulo 11 de Software Engineering at Google trata al test como herramienta para cambiar código con seguridad, lo que depende de que el test codifique la propiedad correcta.

Junto hay otro costo. Código que nadie entendió no responde preguntas durante una guardia. El incident commander pregunta qué hace ese handler, y el equipo no tiene respuesta.

Lo que cuesta el error en producción

  • Validación de input olvidada abre un vector de injection, una de las categorías del OWASP Top 10.
  • Un token impreso en el log se filtra por el aggregator, que guarda el archivo durante semanas.
  • Un lock faltante en la lógica de pago duplica una transacción.
  • Un retry sin idempotencia vuelve a correr el job después del timeout.

Los cuatro escenarios también ocurren con código humano. El Google SRE Book describe la producción como responsabilidad de quien escribió y opera el servicio, y esa responsabilidad sobrevive a cualquier herramienta de generación.

El arreglo que la producción necesita

  • Describís el problema, la IA devuelve un camino, y lees el archivo antes del commit.
  • La lógica de negocio pasa por el mismo filtro que el review de un junior: regla, borde, test.
  • El código de seguridad se lee por lo que hace.
  • Mantienes la capacidad de explicar el archivo en voz alta. Si la explicación se traba, volvés y lo lees de nuevo.

Ese arreglo no frena el uso de la IA. Concentra la lectura donde el error es caro y le devuelve el resto al modelo.

Referencias