39 SDD - Spec-Driven Development
40 📋 SDD
40.1 Spec-Driven Development
40.2 📋 Descripción
SDD es una metodología donde el desarrollo se guía por especificaciones claras y verificables. Cada cambio sigue un ciclo de 7 pasos que garantiza calidad y trazabilidad.
40.3 🔄 El Ciclo SDD
┌─────────────────┐
│ 1. ANALYZE │
│ SDD + Specs │
└────────┬────────┘
│
┌────────▼────────┐
│ 2. PROPOSE │
│ Architecture │
└────────┬────────┘
│
┌────────▼────────┐
│ 3. REFINEMENT │
│ User Feedback │
└────────┬────────┘
│
┌─────────────┼─────────────┐
│ │ │
┌───▼───┐ ┌────▼────┐ ┌───▼───┐
│ 4. │ │ 4. │ │ 4. │
│ IMPLE-│ │ TESTING │ │MEMORY │
│MENT │ │ │ │ │
└───┬───┘ └────┬────┘ └───┬───┘
│ │ │
└─────────────┼─────────────┘
│
┌────────▼────────┐
│ 6. CONSOLIDATE │
│ Engram + Merge │
└────────┬────────┘
│
┌────────▼────────┐
│ 7. ITERATE │
│ Next Feature │
└─────────────────┘
40.4 📝 Documentos del Proceso
40.4.1 1. Proposal (Propuesta)
# Propuesta: Sistema de Autenticación
## Intent
Implementar autenticación JWT para la API
## Scope
- Login/Logout
- Refresh tokens
- Password reset
- Rate limiting
## Enfoque
- JWT con expiración corta
- Refresh tokens en HTTP-only cookies
- Redis para blacklist de tokens40.4.2 2. Spec (Especificación)
# Especificación: Auth System
## Requisitos
### REQ-001: Login
**Como** usuario
**Quiero** iniciar sesión con email/password
**Para** acceder a mi cuenta
**Criterios de Aceptación:**
- [ ] Recibir JWT access token (15 min)
- [ ] Recibir refresh token (7 días)
- [ ] Rate limit: 5 intentos/5 min
- [ ] Respuesta 401 si credenciales inválidas40.4.3 3. Design (Diseño)
# Diseño: Auth System
## ArquitecturaController → Service → Repository ↓ ↓ ↓ HTTP JWT Logic Database
## Decisiones
1. JWT sobre Sesiones → Stateless, escalable
2. Redis para blacklist → Revocación inmediata
3. Refresh tokens → Mejor UX sin seguridad comprometida
40.4.4 4. Tasks (Tareas)
# Tareas: Auth System
- [ ] **T-001**: Crear AuthController (2h)
- [ ] **T-002**: Implementar AuthService (3h)
- [ ] **T-003**: Configurar Redis (1h)
- [ ] **T-004**: Escribir tests (2h)
- [ ] **T-005**: Documentar API (1h)
**Total estimado**: 9 horas40.5 🎯 Beneficios
| Beneficio | Descripción |
|---|---|
| Claridad | Todos entienden qué construir |
| Trazabilidad | Cada línea de código tiene una razón |
| Calidad | Tests verifican specs, no implementación |
| Feedback temprano | Problemas se detectan antes de codificar |