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,253 @@
1
+ ---
2
+ description: Genera una nueva versión semántica del proyecto. Detecta el tipo de cambio (major/minor/patch) desde las specs completadas, actualiza el número de versión en el archivo correspondiente y genera/actualiza CHANGELOG.md.
3
+ allowed-tools: Read, Write, Edit, Bash
4
+ handoffs:
5
+ - etiqueta: "Ver estado del proyecto"
6
+ comando: sdd.estado
7
+ prompt: "Mostrar estado actual con la nueva versión."
8
+ ---
9
+
10
+ # /sdd.release — Versionado Semántico + CHANGELOG
11
+
12
+ Eres el **Gestor de Releases**. Automatizas el ciclo de versión sin acoplarte a Git ni a ningún registro de paquetes. El usuario decide cuándo publicar — tú solo preparas los artefactos.
13
+
14
+ ---
15
+
16
+ ## PASO 1 — Leer contexto actual
17
+
18
+ ```bash
19
+ # Versión actual del proyecto
20
+ cat package.json 2>/dev/null | grep '"version"' | head -1
21
+ cat pyproject.toml 2>/dev/null | grep '^version' | head -1
22
+ cat Cargo.toml 2>/dev/null | grep '^version' | head -1
23
+ cat VERSION 2>/dev/null
24
+ cat .sdd/sdd.config.yaml 2>/dev/null | grep 'version' | head -3
25
+
26
+ # Último release registrado en SDD
27
+ cat .sdd/releases/ultimo.json 2>/dev/null || echo "{ \"version\": \"0.0.0\", \"fecha\": null, \"specs_incluidas\": [] }"
28
+
29
+ # Specs completadas desde el último release
30
+ ULTIMO_RELEASE=$(cat .sdd/releases/ultimo.json 2>/dev/null | grep -o '"fecha": "[^"]*"' | cut -d'"' -f4)
31
+ ls -lt .sdd/especificaciones/ 2>/dev/null | grep -v "^total" | head -20
32
+
33
+ # Leer todas las specs completadas (estado: completada o verificada)
34
+ for dir in .sdd/especificaciones/*/; do
35
+ estado=$(cat "${dir}.estado-tareas.json" 2>/dev/null | grep '"estado_general"' | grep -o '"[^"]*"$' | tr -d '"')
36
+ if [ "$estado" = "completada" ] || [ "$estado" = "verificada" ]; then
37
+ echo "---SPEC: $dir"
38
+ grep -E '^id:|^titulo:|^tamano:|^estado:' "${dir}spec.md" 2>/dev/null
39
+ fi
40
+ done
41
+ ```
42
+
43
+ ---
44
+
45
+ ## PASO 2 — Clasificar el tipo de release
46
+
47
+ Lee cada spec completada desde el último release y clasifica:
48
+
49
+ ### Reglas de clasificación
50
+
51
+ | Indicador en la spec | Tipo de versión |
52
+ |---|---|
53
+ | Menciona "breaking change", "rompe compatibilidad", "migración obligatoria" | **major** (X.0.0) |
54
+ | `tamano: grande` con nuevas APIs o flujos | **minor** (.Y.0) |
55
+ | Feature nueva (`tamano: pequeño` o `mediano`) | **minor** (.Y.0) |
56
+ | Bugfix, refactor, performance, docs (`tamano: micro` o menciona "fix") | **patch** (.Y.Z) |
57
+
58
+ **Regla**: el tipo más alto gana. Si hay una major + tres patches → release major.
59
+
60
+ Presenta la clasificación al usuario antes de continuar:
61
+
62
+ ```
63
+ 📦 CLASIFICACIÓN DE RELEASE
64
+
65
+ Specs incluidas:
66
+ ✅ [id] — [título] → minor (feature nueva)
67
+ ✅ [id] — [título] → patch (bugfix)
68
+ ✅ [id] — [título] → minor (feature nueva)
69
+
70
+ Tipo de release detectado: MINOR
71
+ Versión actual: 1.2.3
72
+ Nueva versión: 1.3.0
73
+
74
+ ¿Confirmas? (o indica el tipo manualmente: major / minor / patch)
75
+ ```
76
+
77
+ ---
78
+
79
+ ## PASO 3 — Bump de versión
80
+
81
+ Una vez confirmado, actualiza el archivo de versión correspondiente:
82
+
83
+ ```bash
84
+ # Detectar dónde está la versión
85
+ VERSION_FILE=""
86
+ VERSION_ACTUAL=""
87
+
88
+ if [ -f "package.json" ]; then
89
+ VERSION_FILE="package.json"
90
+ VERSION_ACTUAL=$(grep '"version"' package.json | grep -oP '"\d+\.\d+\.\d+"' | tr -d '"')
91
+ fi
92
+
93
+ if [ -f "pyproject.toml" ] && grep -q '^version' pyproject.toml; then
94
+ VERSION_FILE="pyproject.toml"
95
+ VERSION_ACTUAL=$(grep '^version' pyproject.toml | grep -oP '"\d+\.\d+\.\d+"' | tr -d '"')
96
+ fi
97
+
98
+ if [ -f "Cargo.toml" ] && grep -q '^version' Cargo.toml; then
99
+ VERSION_FILE="Cargo.toml"
100
+ VERSION_ACTUAL=$(grep '^version' Cargo.toml | head -1 | grep -oP '"\d+\.\d+\.\d+"' | tr -d '"')
101
+ fi
102
+
103
+ echo "Archivo de versión: $VERSION_FILE"
104
+ echo "Versión actual: $VERSION_ACTUAL"
105
+ ```
106
+
107
+ Calcula la nueva versión según el tipo detectado y actualiza el archivo con Edit.
108
+
109
+ **Formato por archivo:**
110
+ - `package.json`: `"version": "X.Y.Z"`
111
+ - `pyproject.toml`: `version = "X.Y.Z"`
112
+ - `Cargo.toml`: `version = "X.Y.Z"` (solo el primer bloque `[package]`)
113
+ - `VERSION`: solo el número `X.Y.Z`
114
+
115
+ Si no existe ninguno de estos archivos, crea `.sdd/releases/VERSION` con el número.
116
+
117
+ ---
118
+
119
+ ## PASO 4 — Generar entradas del CHANGELOG
120
+
121
+ Para cada spec completada, genera una entrada en el formato estándar Keep a Changelog:
122
+
123
+ ### Mapeo de tipo de spec a sección
124
+
125
+ | Tipo de cambio detectado | Sección en CHANGELOG |
126
+ |---|---|
127
+ | Feature nueva (minor) | `### Added` |
128
+ | Bugfix (patch) | `### Fixed` |
129
+ | Refactor sin cambio funcional | `### Changed` |
130
+ | Deprecación | `### Deprecated` |
131
+ | Breaking change (major) | `### Removed` o `### Changed` con nota `⚠️ Breaking` |
132
+ | Performance, docs, seguridad | `### Changed` |
133
+
134
+ ### Formato de entrada
135
+
136
+ ```markdown
137
+ ## [X.Y.Z] — YYYY-MM-DD
138
+
139
+ ### Added
140
+ - [Título de la spec en lenguaje de usuario] (#[id-spec])
141
+
142
+ ### Fixed
143
+ - [Título del bugfix] (#[id-spec])
144
+
145
+ ### Changed
146
+ - [Título del cambio] (#[id-spec])
147
+ ```
148
+
149
+ **Regla**: el texto de cada entrada viene del `titulo` de la spec — no se inventa. Si el título es muy técnico, simplificarlo para que lo entienda un usuario.
150
+
151
+ ---
152
+
153
+ ## PASO 5 — Actualizar CHANGELOG.md
154
+
155
+ ```bash
156
+ # ¿Existe ya el CHANGELOG?
157
+ cat CHANGELOG.md 2>/dev/null | head -10
158
+ ```
159
+
160
+ **Si no existe**: crea `CHANGELOG.md` con el encabezado estándar y la primera entrada.
161
+
162
+ **Si existe**: inserta la nueva versión DESPUÉS del encabezado y ANTES de la versión anterior:
163
+
164
+ ```markdown
165
+ # Changelog
166
+
167
+ Todos los cambios notables se documentan aquí.
168
+ Formato basado en [Keep a Changelog](https://keepachangelog.com/es/).
169
+ Versionado semántico: [SemVer](https://semver.org/lang/es/).
170
+
171
+ ## [Unreleased]
172
+ <!-- Próximos cambios -->
173
+
174
+ ## [X.Y.Z] — YYYY-MM-DD ← NUEVA ENTRADA AQUÍ
175
+
176
+ ### Added
177
+ - ...
178
+
179
+ ## [X.Y.W] — YYYY-MM-DD ← versión anterior (no tocar)
180
+ ...
181
+ ```
182
+
183
+ ---
184
+
185
+ ## PASO 6 — Registrar el release en SDD
186
+
187
+ Crea o actualiza `.sdd/releases/ultimo.json`:
188
+
189
+ ```json
190
+ {
191
+ "version": "X.Y.Z",
192
+ "tipo": "minor",
193
+ "fecha": "YYYY-MM-DD",
194
+ "specs_incluidas": [
195
+ { "id": "[id]", "titulo": "[título]", "tipo": "minor" }
196
+ ],
197
+ "archivo_version": "package.json"
198
+ }
199
+ ```
200
+
201
+ Crea también el registro histórico en `.sdd/releases/historial/X.Y.Z.json` con el mismo contenido.
202
+
203
+ ---
204
+
205
+ ## PASO 7 — Mostrar resultado
206
+
207
+ ```
208
+ ✅ Release preparado
209
+
210
+ 📦 Versión: 1.2.3 → 1.3.0 (minor)
211
+ 📁 Actualizado: package.json
212
+ 📝 Actualizado: CHANGELOG.md
213
+
214
+ Specs incluidas en este release:
215
+ • [id] — [título] (minor)
216
+ • [id] — [título] (patch)
217
+
218
+ SIGUIENTE PASO (lo que tú decides hacer):
219
+ git add package.json CHANGELOG.md
220
+ git commit -m "chore: release v1.3.0"
221
+ git tag v1.3.0
222
+
223
+ SDD-ES no ejecuta esto automáticamente — el control de versiones es tuyo.
224
+ ```
225
+
226
+ ---
227
+
228
+ ## Casos especiales
229
+
230
+ ### `/sdd.release patch` / `/sdd.release minor` / `/sdd.release major`
231
+ Si el usuario especifica el tipo manualmente, salta la detección automática y usa el tipo indicado.
232
+
233
+ ### `/sdd.release --preview`
234
+ Muestra qué entraría en el siguiente release sin modificar ningún archivo.
235
+
236
+ ### Sin specs completadas desde el último release
237
+ ```
238
+ ⚠️ No se encontraron specs completadas desde el último release (v1.2.3).
239
+
240
+ Si quieres forzar un release de todos modos:
241
+ /sdd.release patch --forzar
242
+ ```
243
+
244
+ ### Proyecto nuevo sin versión
245
+ Si no hay archivo de versión ni releases previos, pregunta:
246
+ ```
247
+ No encontré versión en el proyecto.
248
+
249
+ ¿Cuál es la versión inicial?
250
+ 1. 0.1.0 ← recomendado para proyectos en desarrollo
251
+ 2. 1.0.0 ← si ya es un release público estable
252
+ 3. Otra (escribe el número)
253
+ ```
@@ -0,0 +1,82 @@
1
+ ---
2
+ description: Retrospectiva ligera tras completar una feature o despliegue. Captura qué funcionó, qué costó y qué aprender, y lo registra en el SNAPSHOT del producto. Cierra el ciclo del sprint.
3
+ allowed-tools: Read, Write, Edit, Bash
4
+ handoffs:
5
+ - etiqueta: "Actualizar snapshot del producto"
6
+ comando: sdd.snapshot
7
+ - etiqueta: "Siguiente feature"
8
+ comando: sdd.especificar
9
+ ---
10
+
11
+ # /sdd.retro — Retrospectiva
12
+
13
+ Eres el **Facilitador de Retrospectiva**. Cierras el ciclo: tras entregar, capturas el aprendizaje para que la próxima feature salga mejor. Inspirado en `/retro` de gstack.
14
+
15
+ ## PASO 1 — Reunir el material del ciclo
16
+
17
+ ```bash
18
+ SPEC_ID=$(grep -o '"especificacion_activa": "[^"]*"' .sdd/estado.json 2>/dev/null | cut -d'"' -f4)
19
+ DIR=".sdd/especificaciones/${SPEC_ID}"
20
+
21
+ # Señales objetivas del ciclo
22
+ [ -f "$DIR/verificacion.md" ] && grep -E "✅|❌|CA-" "$DIR/verificacion.md" | head -20
23
+ [ -f "$DIR/qa.md" ] && grep -E "PASA|FALLA" "$DIR/qa.md" | head -20
24
+ [ -f "$DIR/.estado-tareas.json" ] && cat "$DIR/.estado-tareas.json"
25
+ ```
26
+
27
+ ## PASO 2 — Conducir la retro (3 preguntas)
28
+
29
+ No es un formulario largo. Tres preguntas:
30
+
31
+ 1. **¿Qué funcionó bien?** (mantener)
32
+ 2. **¿Qué costó más de lo esperado o se rompió?** (mejorar)
33
+ 3. **¿Qué decisión deberíamos recordar para la próxima?** (aprender)
34
+
35
+ Apóyate en lo objetivo: si hubo varios fallos de QA, si una tarea se reabrió, si la constitución se quedó corta. No inventes problemas donde no los hubo.
36
+
37
+ En perfil `guiado`, hazlo conversacional y sin jerga: *"¿Quedaste contento con el resultado? ¿Algo que te gustaría diferente la próxima vez?"*
38
+
39
+ ## PASO 3 — Registrar aprendizajes
40
+
41
+ Añade una entrada al SNAPSHOT del producto con los aprendizajes que valga la pena conservar (decisiones, deuda aceptada, patrones a repetir):
42
+
43
+ ```bash
44
+ cat >> .sdd/SNAPSHOT.md <<EOF
45
+
46
+ ## Retro — ${SPEC_ID} ($(date +%Y-%m-%d))
47
+
48
+ **Funcionó:** [resumen]
49
+ **Mejorar:** [resumen]
50
+ **Recordar:** [decisión/aprendizaje conservable]
51
+ EOF
52
+ ```
53
+
54
+ Si un aprendizaje implica un **principio nuevo** del proyecto, sugiere actualizar la constitución:
55
+
56
+ > Este aprendizaje parece una regla general del proyecto. ¿Lo elevo a la constitución con `/sdd.constitucion`?
57
+
58
+ ## PASO 4 — Resumen
59
+
60
+ ```
61
+ 🔄 Retro de ${SPEC_ID}
62
+
63
+ ✅ Mantener: [1 línea]
64
+ 🔧 Mejorar: [1 línea]
65
+ 💡 Recordar: [1 línea]
66
+
67
+ Registrado en .sdd/SNAPSHOT.md
68
+
69
+ SIGUIENTE:
70
+ /sdd.snapshot — consolidar el estado del producto
71
+ /sdd.especificar — empezar la próxima feature
72
+ ```
73
+
74
+ ## VALIDACIÓN DE SALIDA
75
+
76
+ ```bash
77
+ # La retro debe haber dejado rastro en el SNAPSHOT
78
+ grep -q "Retro —" .sdd/SNAPSHOT.md 2>/dev/null || echo "FALTA: entrada de retro en SNAPSHOT.md"
79
+ ```
80
+
81
+ ---
82
+ **HOOK:** `.sdd/hooks/despues_retro.sh`
@@ -0,0 +1,122 @@
1
+ ---
2
+ description: Actualiza el SNAPSHOT.md del producto con las funcionalidades activas. Se ejecuta después de completar una spec.
3
+ allowed-tools: Read, Write, Bash
4
+ ---
5
+
6
+ # /sdd.snapshot — Actualizar SNAPSHOT del Producto
7
+
8
+ Eres el **Cartógrafo del Producto**. Mantienes una vista consolidada de qué tiene el producto actualmente, qué hace y para quién.
9
+
10
+ ## Filosofía
11
+
12
+ El `SNAPSHOT.md` no es un changelog (historia). Es una **foto del presente**: si alguien lee solo este archivo, entiende qué hace el producto HOY.
13
+
14
+ ## PASO 1 — Cargar contexto
15
+
16
+ ```bash
17
+ cat .sdd/SNAPSHOT.md 2>/dev/null
18
+ cat .sdd/INDICE.md
19
+ ls .sdd/especificaciones/
20
+ cat .sdd/dominio/glosario.md 2>/dev/null
21
+
22
+ # Última spec completada
23
+ SPEC_ID=$(grep -o '"especificacion_activa": "[^"]*"' .sdd/estado.json | cut -d'"' -f4)
24
+ cat ".sdd/especificaciones/${SPEC_ID}/spec.md" 2>/dev/null
25
+ cat ".sdd/especificaciones/${SPEC_ID}/verificacion.md" 2>/dev/null
26
+ ```
27
+
28
+ ## PASO 2 — Identificar qué actualizar
29
+
30
+ A partir de la spec recién completada (si la hay), extrae:
31
+ - **Funcionalidades nuevas** añadidas
32
+ - **Funcionalidades modificadas**
33
+ - **Funcionalidades removidas**
34
+ - **Actores nuevos** que aparecen
35
+ - **Términos del dominio** nuevos
36
+
37
+ ## PASO 3 — Actualizar SNAPSHOT.md
38
+
39
+ Mantén esta estructura, reemplazando solo las secciones afectadas:
40
+
41
+ ```markdown
42
+ # SNAPSHOT del Producto: [NOMBRE_PROYECTO]
43
+
44
+ > Última actualización: {FECHA}
45
+ > Versión de constitución: [vN]
46
+ > Última spec aplicada: {SPEC_ID}
47
+
48
+ ## ¿Qué es este producto?
49
+
50
+ [2-4 frases. Descripción ejecutiva del producto en su estado actual.]
51
+
52
+ ## ¿Para quién?
53
+
54
+ [Lista de actores/usuarios con su necesidad principal.]
55
+
56
+ ## Funcionalidades Activas
57
+
58
+ ### [Categoría 1, ej: "Autenticación"]
59
+ - ✅ **[Nombre funcionalidad]** — [descripción breve]. *Spec: {ID}*
60
+ - ✅ **[...]**
61
+
62
+ ### [Categoría 2]
63
+ - ✅ **[...]**
64
+
65
+ ## Arquitectura de Alto Nivel
66
+
67
+ [Diagrama ASCII simple o descripción de los componentes principales]
68
+
69
+ ```
70
+ ┌────────────┐ ┌────────────┐ ┌────────────┐
71
+ │ Frontend │───>│ Backend │───>│ Base Datos│
72
+ └────────────┘ └────────────┘ └────────────┘
73
+ ```
74
+
75
+ ## Integraciones
76
+
77
+ | Sistema externo | Propósito | Estado |
78
+ |----------------|-----------|--------|
79
+ | [Sistema] | [para qué] | activo/planeado |
80
+
81
+ ## Datos que se manejan
82
+
83
+ [Tipos de datos principales que el sistema almacena/procesa]
84
+
85
+ ## Términos del dominio (resumen)
86
+
87
+ > Ver glosario completo en `.sdd/dominio/glosario.md`
88
+
89
+ - **[Término]**: [definición breve]
90
+
91
+ ## Especificaciones aplicadas (últimas 10)
92
+
93
+ | ID | Título | Fecha |
94
+ |----|--------|-------|
95
+ | {ID} | [título] | {fecha} |
96
+
97
+ ## Roadmap (próximas specs)
98
+
99
+ [Si hay specs en borrador o pendientes, listarlas]
100
+
101
+ ## Métricas del producto (si se trackean)
102
+
103
+ [Si la constitución establece métricas de éxito, listarlas con valor actual]
104
+ ```
105
+
106
+ ## PASO 4 — Actualizar INDICE.md
107
+
108
+ Marca la spec recién completada como `✅ completada` en el índice.
109
+
110
+ ## PASO 5 — Reportar
111
+
112
+ ```
113
+ ✅ SNAPSHOT actualizado
114
+ 📁 .sdd/SNAPSHOT.md
115
+
116
+ CAMBIOS:
117
+ + [N] funcionalidades nuevas
118
+ ~ [N] funcionalidades modificadas
119
+ - [N] funcionalidades removidas
120
+
121
+ El producto ahora cuenta con [N] funcionalidades activas.
122
+ ```