
Spec-Driven Development (SDD) es un enfoque donde:
📋 La especificación es la fuente de verdad
💻 El código es una implementación de esa especificación
👉 Primero defines qué debe hacer el sistema (spec)
👉 Luego usas AI (y código) para construirlo
Sin SDD:
❌ Prompts vagos
❌ Código inconsistente
❌ Mucho retrabajo
Con SDD:
✅ Prompts claros
✅ AI más precisa
✅ Desarrollo más rápido
✅ Mejor calidad
👉 La IA funciona mejor con claridad + estructura
Una spec efectiva incluye:
¿Qué problema resolvemos?
¿Para quién?
“Como [usuario], quiero [acción] para [beneficio]”
Ejemplo:
Como usuario, quiero iniciar sesión para acceder a mi cuenta
Login con email/password
Validación de errores
Retorna token JWT
Usar NestJS
Validación con DTO
Seguridad básica
Input: email, password
Output: token + user
Feature: User Login
Context:
Users need to authenticate to access the platform.
User Story:
As a user, I want to log in using email and password.
Acceptance Criteria:
- User can log in with valid credentials
- Returns JWT token
- Shows error on invalid credentials
Constraints:
- Use NestJS
- Use DTO validation
- Follow clean architecture
Input:
{ email, password }
Output:
{ accessToken, user }You are a senior NestJS developer.
Based on this specification:
[PEGAR SPEC]
Generate:
- Controller
- Service
- DTO
- Validation
- Error handling
Follow best practices.👉 Resultado:
Código estructurado
Menos errores
Más consistente
Idea
→ Spec (definir claramente)
→ AI genera código
→ Validar
→ Iterar
→ DeployEspecifica TODO lo importante
Usa lenguaje claro
Divide features en partes pequeñas
Itera sobre la spec
Specs vagas
“Haz un sistema de login”
Sin criterios de aceptación
Sin constraints
❌ Saltar directo al código
❌ No validar outputs
❌ No definir inputs
❌ No pensar en edge cases
Crear una spec para:
👉 “Task Manager API”
Incluye:
Crear tarea
Marcar como completada
Eliminar tarea
Usa AI para generar el código a partir de tu spec
¿Qué tan clara fue tu spec?
¿Qué mejoraría?
¿Qué cambió en el resultado?
Antes:
“Empiezo a codear y veo qué pasa”
Ahora:
“Defino exactamente qué quiero → luego lo construyo”
La calidad del software depende de la calidad de la especificación.
En AI-native development:
👉 La spec es tu nuevo código base