El patrón detrás de cada desastre hecho con IA
La IA escribe el código.
Nadie escribe la arquitectura.
No importa qué herramienta lo escribió: el código generado prompt a prompt se acumula sin estructura hasta que, cerca del mes seis, la velocidad se vuelve negativa. La retrospectiva de un developer tras seis meses de vibe coding terminó con el 40% del codebase reescrito y la deuda técnica arriba 340%. Las herramientas automatizaron el coding — no la ingeniería de software. useDeploy pone la ingeniería: arquitectura como paredes enforzadas, contratos como gates de CI, y una fundación sobre la que los agentes pueden construir sin poder disolverla.
La curva de deuda que recorre todo codebase hecho con IA
El patrón es agnóstico de herramienta porque la causa lo es. Un modelo de lenguaje genera código localmente plausible — cada función razonable por sí sola — sin ningún diseño global que conecte una generación con la siguiente. La estructura es exactamente lo que promptear no puede acumular. La deuda que esto crea no se anuncia: "la deuda técnica no se paga, se le sigue sumando, y en algún momento del futuro alguien la va a venir a cobrar" (news.ycombinator.com). La fecha de cobro llega rápido — la retrospectiva muy compartida de un developer tras seis meses de vibe coding terminó con el 40% del codebase reescrito mientras la deuda técnica crecía 340% — y cuando llega, las herramientas no pueden ayudar: pasado cierto tamaño, la IA que lo construyó ya no puede refactorizarlo de forma confiable, porque el codebase superó la context window efectiva del modelo (morphllm.com). Un thread de Hacker News comprimió toda la situación en una línea: "automatizamos el coding, pero no la ingeniería de software" (news.ycombinator.com). La ingeniería es el input que falta. Tiene que venir de algún lado donde el modelo no está.
Los síntomas universales
La velocidad se vuelve negativa
Features que tomaban una hora en el mes uno toman una semana en el mes seis — el arco ampliamente reportado donde los equipos terminan más lentos que antes de adoptar tooling de IA.
Amplificación de cambios
Cada feature toca todo, porque nada se aisló jamás. El costo de un cambio sigue el tamaño del codebase, no el tamaño del cambio.
Duplicación como default
Sin estructura visible que reusar, cada generación vuelve a resolver problemas resueltos — apenas distinto — hasta que no hay dos code paths que acuerden en nada.
Lógica sin dirección
Preguntá dónde se decide el pricing y la respuesta honesta es "en todos lados". Sin un hogar canónico, cada cacería de bugs es una búsqueda por el codebase entero.
El refactor que no puede pasar
El humano nunca leyó todo el código; al agente ya no le entra en el contexto. No queda nadie en el loop que pueda reestructurar el sistema con seguridad — así que nadie lo hace.
Paredes, gates y una dirección para todo
Cada modo de falla de esta página tiene la misma raíz: lógica sin dirección y ediciones sin gate. Un bounded context resuelve lo primero — las reglas de pricing viven en la capa domain de billing, y ESLint rompe el build si esa capa estira la mano hacia Express o Prisma. Los gates de CI resuelven lo segundo: lint de fronteras, el check de contrato api-types-fresh, 450+ tests y una suite end-to-end de Playwright corren en cada PR, así que la edición de un agente o respeta la estructura o no mergea nunca. Paredes más gates es todo el truco — y ninguno de los dos es una convención.
1 modules/billing/
2 ├── domain/ # pricing rules, invariants
3 │ · no express, no @prisma/client —
4 │ ESLint fails the build on contact
5 ├── application/ # use cases + ports
6 ├── infrastructure/ # Prisma repos, providers
7 └── interfaces/http/ # routes + Zod schemas
8
9 gates on every PR:
10 ✓ boundary lint ✓ api-types-fresh
11 ✓ 450+ tests ✓ Playwright E2E
Lo que useDeploy shippea contra cada modo de falla
Contra el drift: paredes en el linter
El flat-config de ESLint enforza el layering DDD — código de domain que importa express, @prisma/client o infraestructura falla CI. La arquitectura deja de ser una sugerencia.
Contra la podredumbre de payloads: contratos en CI
Schemas Zod compartidos en @app/contracts, un cliente openapi-fetch tipado y el gate api-types-fresh que bloquea merges cuando los payloads de server y cliente divergen.
Contra la regresión: una suite con dientes
450+ tests más un gate end-to-end de Playwright. Cada merge demuestra que el sistema sigue andando; nada shippea a puro vibe.
Contra los side effects inline: el outbox
Un event bus con outbox durable saca emails, webhooks y syncs de los request handlers — durables, con retries, observables.
Contra el desparramo: bounded contexts
iam, tenancy, billing, storage, ai y webhooks como módulos separados con cuatro capas cada uno. Cada pieza de lógica recibe exactamente una dirección.
Contra la pérdida de contexto: arquitectura escrita
Un CLAUDE.md operativo y docs en /docs hacen que cada sesión de agente arranque desde las reglas reales del sistema — no desde los defaults estadísticos del modelo.
La salida, sin importar qué herramienta te trajo acá
El playbook es el mismo venga el desastre de un app builder, un agente de editor o una CLI. Primero, dejá de acumular: cada prompt contra la base vieja suma intereses a la deuda. Segundo, inventariá comportamiento, no código — listá lo que la app hace por los usuarios, porque esa lista es lo que estás preservando; el código nunca fue el activo. Tercero, levantá la fundación: useDeploy shippea las capas commodity — auth, orgs, billing, storage, plomería de AI, webhooks — como módulos testeados, así el port arranca desde "solo features". Cuarto, mové la lógica de producto de a un dominio, manejada por el agente que ya uses; el lint de fronteras, el gate de contrato y la suite de tests verifican cada paso — exactamente la verificación que el build original nunca tuvo. Quedate con tu herramienta favorita para el front; seguí prompteando; conservá la velocidad. Lo que cambia es la división del trabajo: el agente construye lo que vos estás construyendo, y la fundación decide cómo se construye.
Preguntas frecuentes
¿El código generado por IA es inherentemente malo?+
¿No puedo promptear a la IA para que refactorice su propio desorden?+
¿Por qué una base estructurada en vez de pagarle a alguien que limpie?+
¿Con qué herramientas de IA anda esto?+
Una licencia. Dos formas de tenerla.
CORE
Founder
Un snapshot congelado de UseDeploy. Tuyo para siempre, sin updates.
- Descarga del zip con versión frozen
- Código completo, uso comercial, proyectos ilimitados
- Los 800+ tests · todas las páginas de docs
- Refund a 14 días
LATEST + UPDATES
Lifetime
Siempre el último UseDeploy. Re-descargá cada release, gratis.
- Zip de la última versión — re-descargable para siempre
- Cada release futuro sin cargo extra
- Soporte Discord priority
- Los 800+ tests · todas las páginas de docs
- Refund a 14 días
Automatizá el coding. Conservá la ingeniería.
useDeploy es la fundación que los agentes se saltean: módulos DDD, fronteras enforzadas por lint, contratos tipados, 450+ tests y un gate E2E — para que el mes seis se parezca al mes uno.