sdd-es 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/.claude/settings.json +51 -0
  2. package/.claude-plugin/marketplace.json +31 -0
  3. package/.claude-plugin/plugin.json +97 -0
  4. package/README.md +332 -0
  5. package/agents/arquitecto.md +148 -0
  6. package/agents/asesor-datos.md +163 -0
  7. package/agents/critico.md +142 -0
  8. package/agents/desarrollador-backend.md +242 -0
  9. package/agents/desarrollador-frontend.md +120 -0
  10. package/agents/disenador-api.md +108 -0
  11. package/agents/documentador.md +177 -0
  12. package/agents/investigador.md +174 -0
  13. package/agents/operaciones.md +105 -0
  14. package/agents/revisor.md +153 -0
  15. package/agents/seguridad.md +216 -0
  16. package/agents/tester.md +286 -0
  17. package/claude-hooks/post-write-conventions.js +412 -0
  18. package/claude-hooks/pre-tool-guard.js +159 -0
  19. package/cli/index.js +401 -0
  20. package/commands/sdd.aclarar.md +200 -0
  21. package/commands/sdd.analizar.md +241 -0
  22. package/commands/sdd.ayuda.md +227 -0
  23. package/commands/sdd.canary.md +60 -0
  24. package/commands/sdd.checklist.md +174 -0
  25. package/commands/sdd.comprimir.md +166 -0
  26. package/commands/sdd.configurar.md +195 -0
  27. package/commands/sdd.constitucion.md +343 -0
  28. package/commands/sdd.crear-app.md +168 -0
  29. package/commands/sdd.crear-mcp.md +174 -0
  30. package/commands/sdd.descubrir.md +269 -0
  31. package/commands/sdd.desplegar.md +155 -0
  32. package/commands/sdd.especificar.md +302 -0
  33. package/commands/sdd.estado.md +124 -0
  34. package/commands/sdd.glosario.md +108 -0
  35. package/commands/sdd.implementar.md +377 -0
  36. package/commands/sdd.importar.md +91 -0
  37. package/commands/sdd.mapear.md +120 -0
  38. package/commands/sdd.md +119 -0
  39. package/commands/sdd.planificar.md +372 -0
  40. package/commands/sdd.qa.md +108 -0
  41. package/commands/sdd.release.md +253 -0
  42. package/commands/sdd.retro.md +82 -0
  43. package/commands/sdd.snapshot.md +122 -0
  44. package/commands/sdd.tareas.md +300 -0
  45. package/commands/sdd.verificar.md +239 -0
  46. package/configuracion-ejemplo/hooks-ejemplo/antes_cada_tarea.sh +18 -0
  47. package/configuracion-ejemplo/hooks-ejemplo/antes_implementar.sh +45 -0
  48. package/configuracion-ejemplo/hooks-ejemplo/despues_especificar.sh +14 -0
  49. package/configuracion-ejemplo/hooks-ejemplo/despues_implementar.sh +36 -0
  50. package/configuracion-ejemplo/hooks-ejemplo/despues_planificar.sh +19 -0
  51. package/configuracion-ejemplo/hooks-ejemplo/guardia-seguridad.sh +367 -0
  52. package/configuracion-ejemplo/sdd.config.yaml +310 -0
  53. package/docs/AGENTES.md +74 -0
  54. package/docs/COMPRESION.md +155 -0
  55. package/docs/EJEMPLO-PRACTICA.md +383 -0
  56. package/docs/EJEMPLOS.md +212 -0
  57. package/docs/FABRICA.md +185 -0
  58. package/docs/FILOSOFIA.md +61 -0
  59. package/docs/FLUJO.md +149 -0
  60. package/docs/INICIO-RAPIDO.md +116 -0
  61. package/docs/MAPAS.md +113 -0
  62. package/docs/MODELOS.md +103 -0
  63. package/docs/PERSONALIZACION.md +152 -0
  64. package/instalar.ps1 +39 -0
  65. package/instalar.sh +22 -0
  66. package/mcp-figma/README.md +158 -0
  67. package/mcp-figma/package.json +7 -0
  68. package/mcp-figma/src/component-generator.js +162 -0
  69. package/mcp-figma/src/design-system-analyzer.js +247 -0
  70. package/mcp-figma/src/figma-client.js +75 -0
  71. package/mcp-figma/src/index.js +114 -0
  72. package/mcp-figma/src/mcp.js +97 -0
  73. package/mcp-figma/src/style-mapper.js +85 -0
  74. package/package.json +50 -0
  75. package/plantillas/analisis.md +57 -0
  76. package/plantillas/checklist-especificacion.md +66 -0
  77. package/plantillas/constitucion.md +104 -0
  78. package/plantillas/decision-arquitectura.md +39 -0
  79. package/plantillas/dependencias-mapa.md +89 -0
  80. package/plantillas/especificacion.md +108 -0
  81. package/plantillas/estructura-mapa.md +40 -0
  82. package/plantillas/glosario.md +22 -0
  83. package/plantillas/index-especificaciones.md +15 -0
  84. package/plantillas/mcp-server.md +147 -0
  85. package/plantillas/plan.md +152 -0
  86. package/plantillas/simbolos-mapa.md +57 -0
  87. package/plantillas/snapshot.md +54 -0
  88. package/plantillas/tareas.md +72 -0
  89. package/presets/enterprise.yaml +69 -0
  90. package/presets/lean.yaml +63 -0
  91. package/presets/startup.yaml +67 -0
  92. package/skills/compresion-tokens.md +264 -0
  93. package/skills/constitucion-constraint.md +78 -0
  94. package/skills/deteccion-stack.md +175 -0
  95. package/skills/enrutador-agentes.md +69 -0
  96. package/skills/gestion-estado.md +114 -0
  97. package/skills/indexador.md +199 -0
  98. package/skills/modo-guiado/SKILL.md +78 -0
  99. package/skills/orquestacion-ptc/SKILL.md +96 -0
  100. package/skills/validacion-spec.md +52 -0
  101. package/skills/verificador-implementacion.md +71 -0
@@ -0,0 +1,212 @@
1
+ # Ejemplos Completos de Uso
2
+
3
+ ## Ejemplo 1: Proyecto nuevo en blanco
4
+
5
+ ```bash
6
+ # 1. Instalar plugin
7
+ cd mi-proyecto
8
+ bash sdd-es/instalar.sh
9
+
10
+ # 2. Inicializar
11
+ claude
12
+ > /sdd.constitucion
13
+
14
+ # Claude detecta package.json con React+Express+PostgreSQL
15
+ # Hace 4-5 preguntas: propósito, audiencia, no-negociables, restricciones
16
+ # Genera .sdd/memoria/constitucion.md v1.0.0
17
+
18
+ > /sdd.configurar
19
+ # Revisas agentes y modelos. Confirmas defaults o ajustas.
20
+
21
+ > /sdd.especificar Quiero agregar autenticación con magic links por email
22
+ # Claude crea .sdd/especificaciones/2026-06-08-auth-magic-links/spec.md
23
+ # Marca 3 puntos con [NECESITA_ACLARACION]
24
+
25
+ > /sdd.aclarar
26
+ # Claude hace preguntas agrupadas:
27
+ # 1. ¿Magic link expira en cuántos minutos? a)5 b)15 c)60
28
+ # 2. ¿Un solo uso o múltiples? a)único b)múltiples
29
+ # 3. ¿Qué pasa si el usuario solicita 5 links seguidos? a)rate limit b)reemplazar último
30
+ # Respondes: 1.b, 2.a, 3.a
31
+ # Spec actualizada
32
+
33
+ > /sdd.checklist
34
+ # Resultado: APROBADA (cobertura 95%)
35
+
36
+ > /sdd.planificar
37
+ # arquitecto: define estructura (auth/, magic-link.service.ts, ...)
38
+ # disenador-api: 2 endpoints: POST /auth/magic-link, GET /auth/verify
39
+ # asesor-datos: tabla magic_links con TTL via cron
40
+ # critico: identifica 3 riesgos (race conditions, email bounce, rate limit bypass)
41
+ # seguridad: recomienda hashear el token antes de guardarlo
42
+ # Plan generado
43
+
44
+ > /sdd.planificar aprobar
45
+ # ✅ Plan aprobado
46
+
47
+ > /sdd.tareas
48
+ # 12 tareas generadas, distribuidas en 6 agentes
49
+
50
+ > /sdd.analizar
51
+ # Verifica que todos los CAs estén cubiertos
52
+ # Resultado: APROBADO
53
+
54
+ > /sdd.implementar
55
+ # Ejecuta T001 (arquitecto, tipos)
56
+ # T002 (asesor-datos, migración)
57
+ # T003 (desarrollador-backend, service)
58
+ # ... 12 tareas con verificación entre cada una
59
+ # Tests pasan
60
+ # Revisor da APROBADO
61
+
62
+ > /sdd.verificar
63
+ # Cruza código contra los 8 CAs
64
+ # Resultado: APROBADA (100%)
65
+
66
+ > /sdd.snapshot
67
+ # Actualiza .sdd/SNAPSHOT.md con la nueva funcionalidad
68
+ ```
69
+
70
+ ## Ejemplo 2: Cambio micro
71
+
72
+ ```bash
73
+ > /sdd.especificar Corregir typo en el texto del botón de login
74
+ # Detecta MICRO automáticamente
75
+ # Genera spec mínima + plan mínimo + 1 tarea
76
+ # Pregunta: "¿Ejecutar ahora?" → sí
77
+ # Cambia el texto, marca como completado
78
+ # Total: 30 segundos
79
+ ```
80
+
81
+ ## Ejemplo 3: Feature grande con calidad máxima
82
+
83
+ ```bash
84
+ > /sdd.especificar Migrar de REST a GraphQL manteniendo el endpoint REST en deprecación
85
+
86
+ > /sdd.aclarar
87
+ # 12 puntos de aclaración (gran cambio)
88
+
89
+ > /sdd.checklist
90
+ # Necesita revisión: faltan métricas de éxito medibles
91
+
92
+ > /sdd.aclarar
93
+ # Resuelve los puntos faltantes
94
+
95
+ > /sdd.checklist
96
+ # APROBADA
97
+
98
+ > /sdd.planificar
99
+ # Todos los agentes participan
100
+ # Plan tiene 17 secciones, 25 archivos, 6 ADRs generados
101
+
102
+ > /sdd.planificar revisar
103
+ # Discutes 3 ajustes con el arquitecto
104
+
105
+ > /sdd.planificar aprobar
106
+
107
+ > /sdd.tareas
108
+ # 47 tareas generadas
109
+
110
+ > /sdd.analizar
111
+ # OBSERVACIONES: 2 riesgos sin mitigación
112
+
113
+ # Editar manualmente tareas.md para añadir mitigaciones, o:
114
+ > /sdd.tareas regenerar
115
+
116
+ > /sdd.analizar
117
+ # APROBADO
118
+
119
+ > /sdd.implementar
120
+ # 4 horas de implementación. Tareas en orden por fase.
121
+
122
+ > /sdd.verificar
123
+ > /sdd.snapshot
124
+ ```
125
+
126
+ ## Ejemplo 4: Importar spec de Jira/Notion
127
+
128
+ ```bash
129
+ > /sdd.importar https://mi-org.notion.site/Feature-XYZ
130
+ # Claude fetchea, extrae lo que puede
131
+ # Genera spec con secciones rellenadas
132
+ # Marca 5 puntos con [NECESITA_ACLARACION]
133
+ # Sección 99 documenta qué se importó y qué se perdió
134
+
135
+ > /sdd.aclarar
136
+ # Resuelves los puntos pendientes
137
+ ```
138
+
139
+ ## Ejemplo 5: Personalización con hook de Git
140
+
141
+ `.sdd/hooks/antes_especificar.sh`:
142
+ ```bash
143
+ #!/bin/bash
144
+ # Verifica que estés en main antes de empezar una spec nueva
145
+ RAMA=$(git branch --show-current)
146
+ if [ "$RAMA" != "main" ]; then
147
+ echo "⚠️ No estás en main (estás en $RAMA)"
148
+ echo "¿Continuar de todos modos? (s/N)"
149
+ read RESP
150
+ [ "$RESP" != "s" ] && exit 1
151
+ fi
152
+ ```
153
+
154
+ `.sdd/hooks/despues_implementar.sh`:
155
+ ```bash
156
+ #!/bin/bash
157
+ # Lint + commit + push automático
158
+ SPEC_ID=$(grep -o '"especificacion_activa": "[^"]*"' .sdd/estado.json | cut -d'"' -f4)
159
+
160
+ # Lint
161
+ npm run lint --fix
162
+
163
+ # Commit
164
+ git add -A
165
+ git commit -m "feat: implementa ${SPEC_ID}
166
+
167
+ Spec: .sdd/especificaciones/${SPEC_ID}/spec.md
168
+ Plan: .sdd/especificaciones/${SPEC_ID}/plan.md
169
+
170
+ Generado con SDD-ES v2.0.0"
171
+
172
+ # Push opcional
173
+ read -p "¿Push a remoto? (s/N) " PUSH
174
+ [ "$PUSH" == "s" ] && git push origin HEAD
175
+ ```
176
+
177
+ ## Ejemplo 6: Solo frontend
178
+
179
+ `.sdd/sdd.config.yaml`:
180
+ ```yaml
181
+ agentes:
182
+ arquitecto:
183
+ activo: true
184
+ modelo: opus
185
+ desarrollador-frontend:
186
+ activo: true
187
+ modelo: sonnet
188
+ tester:
189
+ activo: true
190
+ modelo: sonnet
191
+ revisor:
192
+ activo: true
193
+ modelo: opus
194
+
195
+ # Desactivar lo que no aplica
196
+ disenador-api:
197
+ activo: false
198
+ desarrollador-backend:
199
+ activo: false
200
+ asesor-datos:
201
+ activo: false
202
+ operaciones:
203
+ activo: false
204
+ critico:
205
+ activo: false
206
+ seguridad:
207
+ activo: false
208
+ documentador:
209
+ activo: false
210
+ ```
211
+
212
+ El plugin solo invoca a los activos, ahorrando tokens y tiempo.
@@ -0,0 +1,185 @@
1
+ # La Fábrica: de la idea al despliegue sin saber programar
2
+
3
+ Este documento es un recorrido completo para alguien que tiene una idea pero nunca ha escrito código. SDD-ES actúa como fábrica: tú describes, confirmas, y el sistema construye y publica.
4
+
5
+ ---
6
+
7
+ ## Antes de empezar
8
+
9
+ Solo necesitas:
10
+ - **Claude Code** instalado ([claude.ai/code](https://claude.ai/code))
11
+ - **Node.js 18+** instalado ([nodejs.org](https://nodejs.org))
12
+ - Una **cuenta en Vercel** (gratis) si quieres publicar en internet
13
+
14
+ Para instalar SDD-ES, abre una terminal y escribe:
15
+ ```
16
+ npx sdd-es init
17
+ ```
18
+
19
+ Eso es todo. SDD-ES se instala solo.
20
+
21
+ ---
22
+
23
+ ## Escenario: "Quiero una app para anotar mis ideas diarias"
24
+
25
+ Usaremos este ejemplo de principio a fin. Tú solo escribes lo que está en **negrita**; el resto lo hace Claude.
26
+
27
+ ---
28
+
29
+ ### Paso 1 — Cuéntale tu idea
30
+
31
+ Abre Claude Code y escribe:
32
+
33
+ > **quiero crear una app para anotar mis ideas diarias**
34
+
35
+ Claude pregunta tres cosas simples para entender bien:
36
+
37
+ > ¿Quién va a usar la app, solo tú o varias personas?
38
+
39
+ **Solo yo.**
40
+
41
+ > ¿Quieres que las notas se guarden para siempre o solo durante la sesión?
42
+
43
+ **Para siempre.**
44
+
45
+ > ¿Quieres acceder desde el móvil también, o solo desde tu computadora?
46
+
47
+ **Desde cualquier lado.**
48
+
49
+ Claude elige automáticamente el mejor stack para esto (una web app con base de datos) y te lo explica sin tecnicismos:
50
+
51
+ > "Perfecto. Voy a construirte una web pequeña que guarda tus notas. Funciona en el navegador y las guarda para siempre. ¿Arrancamos? (responde *sí*)"
52
+
53
+ **sí**
54
+
55
+ ---
56
+
57
+ ### Paso 2 — Claude construye la app
58
+
59
+ Claude trabaja solo. Ves mensajes como:
60
+
61
+ ```
62
+ 🔧 Creando la estructura de la app...
63
+ 🔧 Implementando: guardar nota nueva... ✅
64
+ 🔧 Implementando: ver todas las notas... ✅
65
+ 🔧 Implementando: borrar una nota... ✅
66
+ 🔧 Probando que todo funciona... ✅ 3/3 pruebas pasadas
67
+ ```
68
+
69
+ Cuando termina:
70
+
71
+ > "¡Tu app está lista! Tiene 3 funciones que probé y funcionan. Para publicarla en internet, solo dime 'despliégala' y lo hago yo."
72
+
73
+ ---
74
+
75
+ ### Paso 3 — Publicar en internet
76
+
77
+ **despliégala**
78
+
79
+ Claude hace una verificación antes de publicar (para no subir nada roto):
80
+
81
+ ```
82
+ ✅ Pruebas: pasadas
83
+ ✅ Sin errores de código
84
+ ✅ Sin información privada expuesta
85
+ ```
86
+
87
+ Luego pregunta una vez más para confirmar:
88
+
89
+ > "Voy a publicar tu app en Vercel (gratis). Escribe *desplegar* para confirmar."
90
+
91
+ **desplegar**
92
+
93
+ ```
94
+ 🚀 Publicando...
95
+ ✅ App publicada en: https://tu-app.vercel.app
96
+ ✅ Comprobando que funciona... responde en 312ms — todo bien.
97
+ ```
98
+
99
+ ---
100
+
101
+ ### Paso 4 — Tu app está en internet
102
+
103
+ Abre `https://tu-app.vercel.app` en cualquier navegador, incluso desde el móvil. Funciona.
104
+
105
+ ---
106
+
107
+ ### Añadir cosas después
108
+
109
+ En cualquier momento puedes decirle a Claude qué quieres añadir:
110
+
111
+ > **quiero que también pueda buscar entre mis notas**
112
+
113
+ Claude toma esa frase, la convierte en especificación, la implementa, la prueba y la publica — siguiendo el mismo ciclo.
114
+
115
+ ---
116
+
117
+ ## Escenario alternativo: "Quiero crear una herramienta para Claude"
118
+
119
+ Si quieres que Claude pueda hacer algo nuevo (consultar una API, acceder a tus archivos, buscar en tu base de datos), usa `/sdd.crear-mcp`:
120
+
121
+ > **quiero una herramienta que consulte el precio del dólar en tiempo real**
122
+
123
+ Claude pregunta:
124
+ > "¿De qué fuente quieres sacar el precio? ¿Tienes alguna API favorita, o buscamos una gratuita?"
125
+
126
+ **busca una gratuita**
127
+
128
+ Claude encuentra una API pública, implementa la herramienta, la empaqueta y te da la instrucción de instalación:
129
+
130
+ ```
131
+ claude mcp add precio-dolar -- node "/ruta/mcp-precio-dolar/src/index.js"
132
+ ```
133
+
134
+ Después de eso, puedes decirle a Claude: *"¿A cuánto está el dólar?"* y lo sabrá en tiempo real.
135
+
136
+ ---
137
+
138
+ ## El ciclo completo
139
+
140
+ ```
141
+ Tu idea en palabras
142
+
143
+
144
+ /sdd.crear-app o /sdd.crear-mcp
145
+ (Claude elige el stack, construye, prueba)
146
+
147
+
148
+ /sdd.desplegar
149
+ (gate de calidad → tu confirmación → publicación → health check)
150
+
151
+
152
+ 🌐 App en internet / 🔌 Tool instalada en Claude
153
+
154
+
155
+ /sdd.especificar [qué quieres añadir]
156
+ (el ciclo se repite para cada mejora)
157
+ ```
158
+
159
+ Cada flecha tiene un control: no se publica sin pruebas verdes, no se publica sin tu confirmación. Eso es lo que convierte esta herramienta en una fábrica con estándares de ingeniería altos, no solo un generador de código.
160
+
161
+ ---
162
+
163
+ ## Si algo sale mal
164
+
165
+ Claude nunca te deja con una app rota publicada. Si algo falla:
166
+
167
+ - **Durante la construcción**: Claude te lo dice y lo corrige antes de seguir.
168
+ - **Durante el despliegue**: si la app no responde después de publicarse, Claude te avisa y revierte.
169
+ - **En cualquier momento**: escribe `/sdd.estado` para ver en qué punto estás.
170
+
171
+ ---
172
+
173
+ ## Comandos de esta fábrica
174
+
175
+ | Lo que quieres hacer | Lo que escribes |
176
+ |----------------------|-----------------|
177
+ | Crear una app desde cero | `/sdd.crear-app [describe tu idea]` |
178
+ | Crear una herramienta para Claude | `/sdd.crear-mcp [describe qué hace]` |
179
+ | Publicar en internet | `/sdd.desplegar` |
180
+ | Comprobar que sigue funcionando | `/sdd.canary` |
181
+ | Añadir una función nueva | `/sdd.especificar [qué quieres añadir]` |
182
+ | Ver el estado de tu proyecto | `/sdd.estado` |
183
+ | Pedir ayuda | `/sdd.ayuda` |
184
+
185
+ No necesitas memorizar estos comandos. Puedes escribir directamente lo que quieres hacer en español y Claude te enrutará al correcto.
@@ -0,0 +1,61 @@
1
+ # Filosofía de SDD-ES
2
+
3
+ ## ¿Qué es SDD?
4
+
5
+ **Spec-Driven Development** (Desarrollo Guiado por Especificaciones) es una metodología donde:
6
+
7
+ 1. **La especificación es la fuente de verdad**, no el código.
8
+ 2. El código es un **artefacto derivado** de la spec, no al revés.
9
+ 3. Cada cambio empieza definiendo *qué* y *por qué* antes de *cómo*.
10
+
11
+ ## ¿Por qué SDD funciona con IA?
12
+
13
+ Los modelos de IA son muy creativos — demasiado para nuestro gusto cuando programan. SDD canaliza esa creatividad imponiendo restricciones estructuradas:
14
+
15
+ - La spec define el espacio de soluciones aceptables
16
+ - La constitución limita las decisiones técnicas
17
+ - Las tareas atómicas reducen la deriva en cada paso
18
+ - Los criterios de verificación atrapan errores antes de que se acumulen
19
+
20
+ **Resultado**: implementación predecible, auditable, sin "magia" en el medio.
21
+
22
+ ## Inspiración
23
+
24
+ SDD-ES integra ideas de:
25
+
26
+ - **[github/spec-kit](https://github.com/github/spec-kit)**: constitution, sync impact reports, hooks de extensión, versionado semántico, checklist como tests de los requisitos.
27
+ - **[LiorCohen/sdd](https://github.com/LiorCohen/sdd)**: agentes especializados por rol con modelo asignado, comandos en lenguaje natural, estructura específica con INDEX/SNAPSHOT/glossary, verificación cruzada.
28
+ - **OpenSpec**, **SpecWeave**, **disciplined-agentic-engineering**: schemas custom, BDD, mecanismos de auditoría.
29
+
30
+ ## Diferencias de SDD-ES
31
+
32
+ 1. **100% español**: comandos, plantillas, agentes, documentación
33
+ 2. **Agnóstico al stack**: TypeScript, Python, Rust, Go, Java, C#, Ruby, PHP, etc.
34
+ 3. **Sin acoplamiento a Git/GitHub/GitLab**: tú integras tu VCS desde hooks personalizados
35
+ 4. **Configurable**: cualquier agente se activa/desactiva, cualquier modelo se reasigna
36
+ 5. **Recomendaciones de modelos**: cada agente trae una recomendación justificada
37
+ 6. **Personalización exhaustiva**: todo es Markdown plano editable
38
+
39
+ ## Cuándo usar SDD-ES
40
+
41
+ ✅ **Usar cuando:**
42
+ - Tienes una idea de feature pero no sabes cómo descomponerla
43
+ - El proyecto requiere trazabilidad de decisiones
44
+ - Trabajas en equipo y necesitas alineación
45
+ - Quieres que la IA implemente con rigor (no improvisando)
46
+ - El cambio toca múltiples archivos o capas
47
+
48
+ ❌ **No usar (overhead innecesario):**
49
+ - Arreglar un typo
50
+ - Cambiar un literal de string
51
+ - Ajustes de CSS visual sin lógica
52
+
53
+ > Para esos casos hay flujo "micro" — la IA detecta automáticamente que es trivial y simplifica el proceso.
54
+
55
+ ## Los 5 principios de SDD-ES
56
+
57
+ 1. **Spec antes que código** — siempre
58
+ 2. **Constitución es ley** — el plan no puede contradecirla sin justificación documentada
59
+ 3. **Cada decisión es trazable** — del CA a la línea de código que lo implementa
60
+ 4. **Agentes especializados** — un experto por dominio supera a un generalista
61
+ 5. **Verificación independiente** — la IA que verifica no es la misma que implementa
package/docs/FLUJO.md ADDED
@@ -0,0 +1,149 @@
1
+ # Flujo Completo de SDD-ES
2
+
3
+ ## Diagrama del flujo
4
+
5
+ ```
6
+ ┌──────────────────────┐
7
+ │ /sdd.constitucion │ ← Solo la primera vez
8
+ │ (principios del │
9
+ │ proyecto) │
10
+ └──────────┬───────────┘
11
+
12
+ ┌──────────▼───────────┐
13
+ │ /sdd.configurar │ ← Opcional: ajustar agentes/modelos
14
+ └──────────┬───────────┘
15
+
16
+ ┌──────────────▼───────────┐
17
+ │ /sdd.especificar │
18
+ │ (qué + por qué) │
19
+ └──────────────┬───────────┘
20
+
21
+ ┌───────┴───────┐
22
+ │ ¿micro? │
23
+ └───┬───────┬───┘
24
+ sí ─────┘ └────── no
25
+ │ │
26
+ │ ┌────────▼────────┐
27
+ │ │ /sdd.aclarar │ ← Resolver [NECESITA_ACLARACION]
28
+ │ └────────┬────────┘
29
+ │ │
30
+ │ ┌────────▼────────┐
31
+ │ │ /sdd.checklist │ ← Validar calidad
32
+ │ └────────┬────────┘
33
+ │ │
34
+ │ ┌────────▼────────┐
35
+ │ │ /sdd.planificar │ ← Plan técnico
36
+ │ └────────┬────────┘
37
+ │ │
38
+ │ ┌────────▼─────────┐
39
+ │ │ /sdd.planificar │ ← Aprobar plan
40
+ │ │ aprobar │
41
+ │ └────────┬─────────┘
42
+ │ │
43
+ │ ┌────────▼────────┐
44
+ │ │ /sdd.tareas │ ← Desglose atómico
45
+ │ └────────┬────────┘
46
+ │ │
47
+ │ ┌────────▼────────┐
48
+ │ │ /sdd.analizar │ ← Auditoría cruzada
49
+ │ └────────┬────────┘
50
+ │ │
51
+ └──────────────┼──────► (las micro vuelven aquí)
52
+
53
+ ┌───────────▼──────────┐
54
+ │ /sdd.implementar │ ← Ejecutar con agentes
55
+ └───────────┬──────────┘
56
+
57
+ ┌───────────▼──────────┐
58
+ │ /sdd.verificar │ ← Verificación final
59
+ └───────────┬──────────┘
60
+
61
+ ┌───────────▼──────────┐
62
+ │ /sdd.snapshot │ ← Actualizar estado producto
63
+ └───────────┬──────────┘
64
+
65
+
66
+ ✅ COMPLETADO
67
+
68
+ └─── /sdd.especificar [siguiente]
69
+ ```
70
+
71
+ ## Flujos según tamaño del cambio
72
+
73
+ ### Micro (≤3 archivos, <10 líneas)
74
+ ```
75
+ /sdd.especificar [descripción]
76
+ → Detecta micro → genera spec+plan+tareas automáticamente → implementa
77
+ ```
78
+
79
+ ### Pequeño (1 feature simple)
80
+ ```
81
+ /sdd.especificar [descripción]
82
+ /sdd.planificar
83
+ /sdd.planificar aprobar
84
+ /sdd.tareas
85
+ /sdd.implementar
86
+ ```
87
+
88
+ ### Mediano (múltiples componentes)
89
+ ```
90
+ /sdd.especificar [descripción]
91
+ /sdd.aclarar
92
+ /sdd.planificar
93
+ /sdd.planificar aprobar
94
+ /sdd.tareas
95
+ /sdd.implementar
96
+ /sdd.verificar
97
+ ```
98
+
99
+ ### Grande (sistema nuevo, calidad máxima)
100
+ ```
101
+ /sdd.constitucion (actualizar si hay nuevos principios)
102
+ /sdd.especificar [descripción]
103
+ /sdd.aclarar
104
+ /sdd.checklist
105
+ /sdd.planificar
106
+ /sdd.planificar aprobar
107
+ /sdd.tareas
108
+ /sdd.analizar ← clave para grandes
109
+ /sdd.implementar
110
+ /sdd.verificar
111
+ /sdd.snapshot
112
+ ```
113
+
114
+ ## Reanudación entre sesiones
115
+
116
+ Si cierras Claude Code y vuelves después:
117
+
118
+ ```
119
+ /sdd.estado ← muestra dashboard
120
+ /sdd.implementar continuar ← retoma desde la última tarea
121
+ ```
122
+
123
+ El estado se guarda en `.sdd/estado.json` y `.sdd/especificaciones/{ID}/.estado-tareas.json`.
124
+
125
+ ## El sprint completo: de la idea al despliegue
126
+
127
+ SDD-ES implementa un sprint estructurado de extremo a extremo. Cada fase alimenta a la siguiente y nada pasa sin verificación. Mapeo de las fases a los comandos:
128
+
129
+ | Fase del sprint | Qué ocurre | Comandos SDD-ES |
130
+ |-----------------|-----------|-----------------|
131
+ | **Pensar** | Encuadrar el problema, sacar contexto de una idea vaga | `/sdd.constitucion`, `/sdd.descubrir` |
132
+ | **Planear** | Capturar requisitos, diseñar, auditar el plan | `/sdd.especificar`, `/sdd.aclarar`, `/sdd.planificar`, `/sdd.analizar` |
133
+ | **Construir** | Implementar con agentes especializados | `/sdd.implementar` |
134
+ | **Revisar** | Revisión independiente de calidad y cumplimiento | `/sdd.verificar` (+ agente `revisor`) |
135
+ | **Probar** | QA en navegador real, no solo unitarios | `/sdd.qa` |
136
+ | **Publicar** | Despliegue verificado + monitoreo | `/sdd.desplegar`, `/sdd.canary` |
137
+ | **Reflexionar** | Capturar aprendizajes, actualizar el estado del producto | `/sdd.retro`, `/sdd.snapshot` |
138
+
139
+ ```
140
+ Pensar → Planear → Construir → Revisar → Probar → Publicar → Reflexionar
141
+ │ │
142
+ └──────────────── /sdd.especificar [siguiente feature] ◄────────┘
143
+ ```
144
+
145
+ La diferencia con "pídele a la IA que lo haga" es que **cada flecha tiene un control**: no se construye sin spec, no se publica sin tests verdes y QA, no se cierra sin verificación independiente. Esa es la garantía de estándar de ingeniería alto.
146
+
147
+ ### Flujo "fábrica" para no-programadores (perfil guiado)
148
+
149
+ En perfil `guiado`, el usuario no ve los comandos. Describe lo que quiere, confirma con "sí", y el sistema recorre el sprint completo explicando cada paso en lenguaje natural y publicando al final. Ver [FABRICA.md](FABRICA.md).