Intent-Driven Development
Paradigma de desarrollo donde el programador describe la intención o resultado deseado, y la AI genera el código que lo implementa.
Pronunciación
Qué es
Intent-Driven Development (IDD) es un paradigma emergente donde:
- El desarrollador describe lo que quiere (la intención)
- La AI genera el código que cumple esa intención
- El desarrollador revisa y refina el resultado
Es la evolución natural de la programación asistida por AI.
Pronunciación
IPA: /ɪnˈtent ˈdrɪvən dɪˈveləpmənt/
Suena como: “in-TENT DRI-ven di-VE-lop-ment”
De código a intención
┌─────────────────────────────────────────────────────────┐
│ EVOLUCIÓN DEL DESARROLLO │
├─────────────────────────────────────────────────────────┤
│ │
│ 1960s: Lenguaje máquina │
│ → MOV AX, 5 │
│ │
│ 1980s: Lenguajes de alto nivel │
│ → int x = 5; │
│ │
│ 2000s: Frameworks │
│ → const user = await User.findById(id); │
│ │
│ 2020s: Copilot/Autocompletado │
│ → Escribe inicio, AI completa │
│ │
│ 2026: Intent-Driven Development │
│ → "Crea endpoint para obtener usuario por ID │
│ con validación y manejo de errores" │
│ → AI genera todo el código │
│ │
└─────────────────────────────────────────────────────────┘
Cómo funciona
Flujo tradicional
Requisito → Diseño → Código línea por línea → Test → Deploy
↓
Desarrollador escribe CADA línea de código
Flujo Intent-Driven
Intención → AI genera código → Desarrollador revisa → Refinamiento → Deploy
↓
Desarrollador describe QUÉ quiere, no CÓMO hacerlo
Ejemplos prácticos
Ejemplo 1: Crear un endpoint
INTENCIÓN:
"Necesito un endpoint GET /api/users/:id que:
- Valide que el ID sea un UUID válido
- Busque el usuario en la base de datos
- Retorne 404 si no existe
- Retorne el usuario sin el campo password"
AI GENERA:
// routes/users.ts
import { z } from "zod";
import { db } from "@/lib/db";
import { NotFoundError } from "@/lib/errors";
const paramsSchema = z.object({
id: z.string().uuid("ID must be a valid UUID"),
});
export async function GET(req: Request, { params }) {
const { id } = paramsSchema.parse(params);
const user = await db.user.findUnique({
where: { id },
select: {
id: true,
email: true,
name: true,
createdAt: true,
// password excluded
},
});
if (!user) {
throw new NotFoundError(`User ${id} not found`);
}
return Response.json(user);
}
Ejemplo 2: Refactoring
INTENCIÓN:
"Refactoriza este componente para usar React Query
en lugar de useEffect + useState para el fetch"
AI analiza el código actual y genera la versión refactorizada
manteniendo el mismo comportamiento pero con mejor manejo de estado.
Niveles de abstracción
| Nivel | Ejemplo de intención | Complejidad |
|---|---|---|
| Micro | ”Agrega validación de email” | Baja |
| Función | ”Crea función de autenticación JWT” | Media |
| Feature | ”Implementa sistema de notificaciones” | Alta |
| Arquitectura | ”Migra a microservicios” | Muy alta |
Mejores prácticas
1. Sé específico en la intención
❌ "Haz un login"
✅ "Crea un flujo de login con:
- Formulario con email y password
- Validación client-side con Zod
- Llamada a /api/auth/login
- Manejo de errores con toast
- Redirección a /dashboard en éxito"
2. Proporciona contexto
❌ "Agrega un botón"
✅ "Agrega un botón de 'Guardar cambios' al formulario
de perfil que:
- Use el componente Button existente
- Esté deshabilitado mientras no hay cambios
- Muestre loading mientras guarda"
3. Itera en refinamientos
Intención inicial → Código generado →
"Ahora agrega tests" →
"Mejora el manejo de errores" →
Código final
Herramientas que soportan IDD
| Herramienta | Fortaleza |
|---|---|
| Claude Code | Contexto de repositorio completo |
| Cursor | Integración IDE profunda |
| GitHub Copilot Chat | Integración con GitHub |
| Cody (Sourcegraph) | Búsqueda semántica de código |
El rol del desarrollador cambia
ANTES: DESPUÉS:
├── Escribir código ├── Definir intenciones claras
├── Debuggear syntax ├── Revisar código generado
├── Buscar documentación ├── Validar lógica de negocio
└── Copiar/pegar de Stack └── Guiar refinamientos
Overflow
Limitaciones actuales
- Contexto limitado - AI no siempre entiende todo el proyecto
- Alucinaciones - Puede generar código incorrecto
- Seguridad - Requiere revisión humana siempre
- Casos edge - Puede ignorar escenarios límite
Términos relacionados
- [[Agentic AI]] - AI que ejecuta tareas autónomamente
- [[Repository Intelligence]] - AI que entiende tu código
- [[Prompt Engineering]] - Arte de escribir buenas intenciones
Recuerda: Intent-Driven Development no reemplaza al desarrollador—cambia su rol de “escribir código” a “dirigir y validar”. El conocimiento técnico sigue siendo esencial para revisar lo que genera la AI.