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.
- package/.claude/settings.json +51 -0
- package/.claude-plugin/marketplace.json +31 -0
- package/.claude-plugin/plugin.json +97 -0
- package/README.md +332 -0
- package/agents/arquitecto.md +148 -0
- package/agents/asesor-datos.md +163 -0
- package/agents/critico.md +142 -0
- package/agents/desarrollador-backend.md +242 -0
- package/agents/desarrollador-frontend.md +120 -0
- package/agents/disenador-api.md +108 -0
- package/agents/documentador.md +177 -0
- package/agents/investigador.md +174 -0
- package/agents/operaciones.md +105 -0
- package/agents/revisor.md +153 -0
- package/agents/seguridad.md +216 -0
- package/agents/tester.md +286 -0
- package/claude-hooks/post-write-conventions.js +412 -0
- package/claude-hooks/pre-tool-guard.js +159 -0
- package/cli/index.js +401 -0
- package/commands/sdd.aclarar.md +200 -0
- package/commands/sdd.analizar.md +241 -0
- package/commands/sdd.ayuda.md +227 -0
- package/commands/sdd.canary.md +60 -0
- package/commands/sdd.checklist.md +174 -0
- package/commands/sdd.comprimir.md +166 -0
- package/commands/sdd.configurar.md +195 -0
- package/commands/sdd.constitucion.md +343 -0
- package/commands/sdd.crear-app.md +168 -0
- package/commands/sdd.crear-mcp.md +174 -0
- package/commands/sdd.descubrir.md +269 -0
- package/commands/sdd.desplegar.md +155 -0
- package/commands/sdd.especificar.md +302 -0
- package/commands/sdd.estado.md +124 -0
- package/commands/sdd.glosario.md +108 -0
- package/commands/sdd.implementar.md +377 -0
- package/commands/sdd.importar.md +91 -0
- package/commands/sdd.mapear.md +120 -0
- package/commands/sdd.md +119 -0
- package/commands/sdd.planificar.md +372 -0
- package/commands/sdd.qa.md +108 -0
- package/commands/sdd.release.md +253 -0
- package/commands/sdd.retro.md +82 -0
- package/commands/sdd.snapshot.md +122 -0
- package/commands/sdd.tareas.md +300 -0
- package/commands/sdd.verificar.md +239 -0
- package/configuracion-ejemplo/hooks-ejemplo/antes_cada_tarea.sh +18 -0
- package/configuracion-ejemplo/hooks-ejemplo/antes_implementar.sh +45 -0
- package/configuracion-ejemplo/hooks-ejemplo/despues_especificar.sh +14 -0
- package/configuracion-ejemplo/hooks-ejemplo/despues_implementar.sh +36 -0
- package/configuracion-ejemplo/hooks-ejemplo/despues_planificar.sh +19 -0
- package/configuracion-ejemplo/hooks-ejemplo/guardia-seguridad.sh +367 -0
- package/configuracion-ejemplo/sdd.config.yaml +310 -0
- package/docs/AGENTES.md +74 -0
- package/docs/COMPRESION.md +155 -0
- package/docs/EJEMPLO-PRACTICA.md +383 -0
- package/docs/EJEMPLOS.md +212 -0
- package/docs/FABRICA.md +185 -0
- package/docs/FILOSOFIA.md +61 -0
- package/docs/FLUJO.md +149 -0
- package/docs/INICIO-RAPIDO.md +116 -0
- package/docs/MAPAS.md +113 -0
- package/docs/MODELOS.md +103 -0
- package/docs/PERSONALIZACION.md +152 -0
- package/instalar.ps1 +39 -0
- package/instalar.sh +22 -0
- package/mcp-figma/README.md +158 -0
- package/mcp-figma/package.json +7 -0
- package/mcp-figma/src/component-generator.js +162 -0
- package/mcp-figma/src/design-system-analyzer.js +247 -0
- package/mcp-figma/src/figma-client.js +75 -0
- package/mcp-figma/src/index.js +114 -0
- package/mcp-figma/src/mcp.js +97 -0
- package/mcp-figma/src/style-mapper.js +85 -0
- package/package.json +50 -0
- package/plantillas/analisis.md +57 -0
- package/plantillas/checklist-especificacion.md +66 -0
- package/plantillas/constitucion.md +104 -0
- package/plantillas/decision-arquitectura.md +39 -0
- package/plantillas/dependencias-mapa.md +89 -0
- package/plantillas/especificacion.md +108 -0
- package/plantillas/estructura-mapa.md +40 -0
- package/plantillas/glosario.md +22 -0
- package/plantillas/index-especificaciones.md +15 -0
- package/plantillas/mcp-server.md +147 -0
- package/plantillas/plan.md +152 -0
- package/plantillas/simbolos-mapa.md +57 -0
- package/plantillas/snapshot.md +54 -0
- package/plantillas/tareas.md +72 -0
- package/presets/enterprise.yaml +69 -0
- package/presets/lean.yaml +63 -0
- package/presets/startup.yaml +67 -0
- package/skills/compresion-tokens.md +264 -0
- package/skills/constitucion-constraint.md +78 -0
- package/skills/deteccion-stack.md +175 -0
- package/skills/enrutador-agentes.md +69 -0
- package/skills/gestion-estado.md +114 -0
- package/skills/indexador.md +199 -0
- package/skills/modo-guiado/SKILL.md +78 -0
- package/skills/orquestacion-ptc/SKILL.md +96 -0
- package/skills/validacion-spec.md +52 -0
- package/skills/verificador-implementacion.md +71 -0
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Verifica consistencia y cobertura cruzada entre constitución, spec, plan y tareas. Detecta huecos, contradicciones y violaciones antes de implementar.
|
|
3
|
+
allowed-tools: Read, Write, Bash
|
|
4
|
+
handoffs:
|
|
5
|
+
- etiqueta: "Corregir hallazgos"
|
|
6
|
+
comando: sdd.planificar
|
|
7
|
+
prompt: "revisar"
|
|
8
|
+
- etiqueta: "Implementar"
|
|
9
|
+
comando: sdd.implementar
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# /sdd.analizar — Auditoría de Consistencia
|
|
13
|
+
|
|
14
|
+
Eres el **Auditor de Consistencia**. Cruzas los 4 artefactos (constitución, spec, plan, tareas) buscando incoherencias antes de que se conviertan en bugs o retrabajo.
|
|
15
|
+
|
|
16
|
+
## PASO 1 — Cargar TODOS los artefactos
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
SPEC_ID=$(grep -o '"especificacion_activa": "[^"]*"' .sdd/estado.json | cut -d'"' -f4)
|
|
20
|
+
SPEC_DIR=".sdd/especificaciones/${SPEC_ID}"
|
|
21
|
+
|
|
22
|
+
cat .sdd/memoria/constitucion.md
|
|
23
|
+
cat "${SPEC_DIR}/spec.md"
|
|
24
|
+
cat "${SPEC_DIR}/plan.md"
|
|
25
|
+
cat "${SPEC_DIR}/tareas.md"
|
|
26
|
+
cat "${SPEC_DIR}/.estado-tareas.json"
|
|
27
|
+
cat .sdd/dominio/glosario.md 2>/dev/null
|
|
28
|
+
ls .sdd/arquitectura/ 2>/dev/null
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## PASO 1.5 — Despacho PTC de dimensiones
|
|
32
|
+
|
|
33
|
+
Las 7 dimensiones de auditoría son **independientes entre sí** — cada una lee los mismos artefactos sin modificarlos. Esto las hace candidatas ideales para PTC (skill `orquestacion-ptc`).
|
|
34
|
+
|
|
35
|
+
**Si hay ≥3 agentes disponibles para ejecutar el análisis en paralelo:**
|
|
36
|
+
|
|
37
|
+
```javascript
|
|
38
|
+
// Bloque PTC — analiza dimensiones en paralelo
|
|
39
|
+
const dimensiones = [
|
|
40
|
+
{ id: "D1", titulo: "Constitución ↔ Plan", artefactos: [constitucion, plan] },
|
|
41
|
+
{ id: "D2", titulo: "Spec ↔ Plan", artefactos: [spec, plan] },
|
|
42
|
+
{ id: "D3", titulo: "Plan ↔ Tareas", artefactos: [plan, tareas] },
|
|
43
|
+
{ id: "D4", titulo: "Spec ↔ Tareas (CAs)", artefactos: [spec, tareas] },
|
|
44
|
+
{ id: "D5", titulo: "Tareas internas", artefactos: [tareas] },
|
|
45
|
+
{ id: "D6", titulo: "Glosario", artefactos: [spec, plan, tareas, glosario] },
|
|
46
|
+
{ id: "D7", titulo: "Config de agentes", artefactos: [tareas, config] }
|
|
47
|
+
];
|
|
48
|
+
|
|
49
|
+
const resultados = await Promise.all(
|
|
50
|
+
dimensiones.map(d => Task("critico", analizarDimension(d)))
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
// Agrega solo hallazgos — sin el razonamiento intermedio
|
|
54
|
+
return resultados.map((r, i) => ({
|
|
55
|
+
dimension: dimensiones[i].id,
|
|
56
|
+
bloqueantes: r.hallazgos.filter(h => h.severidad === "bloqueante"),
|
|
57
|
+
observaciones: r.hallazgos.filter(h => h.severidad === "observacion"),
|
|
58
|
+
ok: r.hallazgos.length === 0
|
|
59
|
+
}));
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Fallback secuencial** — Si PTC no está disponible: analizar dimensión por dimensión con el PASO 2 estándar. El resultado es idéntico.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## PASO 2 — Análisis cruzado por dimensión
|
|
67
|
+
|
|
68
|
+
### Dimensión 1 — Constitución ↔ Plan
|
|
69
|
+
Verifica:
|
|
70
|
+
- [ ] El plan respeta CADA principio fundamental
|
|
71
|
+
- [ ] Las restricciones arquitectónicas no se violan
|
|
72
|
+
- [ ] Los estándares de calidad están reflejados en las decisiones
|
|
73
|
+
- [ ] Si hay desviaciones, están en sección "Complejidad Justificada" con razón válida
|
|
74
|
+
|
|
75
|
+
### Dimensión 2 — Spec ↔ Plan
|
|
76
|
+
- [ ] Cada Requisito Funcional (RF-*) tiene contraparte técnica en el plan
|
|
77
|
+
- [ ] Cada Requisito No Funcional (rendimiento, seguridad, etc.) está abordado
|
|
78
|
+
- [ ] Los actores definidos en la spec tienen capa de autorización en el plan
|
|
79
|
+
- [ ] Los escenarios de error de la spec están manejados en el plan
|
|
80
|
+
- [ ] Las exclusiones explícitas de la spec NO aparecen en el plan
|
|
81
|
+
- [ ] Los términos del dominio se usan consistentemente
|
|
82
|
+
|
|
83
|
+
### Dimensión 3 — Plan ↔ Tareas
|
|
84
|
+
- [ ] Cada archivo del plan (CREAR/MODIFICAR/ELIMINAR) tiene al menos una tarea
|
|
85
|
+
- [ ] Las decisiones técnicas del plan se aplican en las tareas correctas
|
|
86
|
+
- [ ] Las dependencias entre archivos se respetan en el orden de tareas
|
|
87
|
+
- [ ] La estrategia de tests del plan está cubierta por tareas concretas
|
|
88
|
+
- [ ] Las dependencias nuevas tienen una tarea de "agregar dependencia X"
|
|
89
|
+
- [ ] Cada riesgo tiene una tarea de mitigación o se acepta explícitamente
|
|
90
|
+
|
|
91
|
+
### Dimensión 4 — Spec ↔ Tareas (cobertura inversa)
|
|
92
|
+
- [ ] **Cada CA está cubierto por al menos una tarea** (la matriz de cobertura)
|
|
93
|
+
- [ ] **Cada Historia de Usuario tiene tareas que la implementan**
|
|
94
|
+
- [ ] No hay tareas "huérfanas" que no rastrean a ningún requisito
|
|
95
|
+
- [ ] Los criterios de éxito medibles tienen una tarea de instrumentación/observabilidad
|
|
96
|
+
|
|
97
|
+
### Dimensión 5 — Tareas internas
|
|
98
|
+
- [ ] El grafo de dependencias no tiene ciclos
|
|
99
|
+
- [ ] Cada tarea tiene un criterio de verificación concreto
|
|
100
|
+
- [ ] Cada tarea tiene un agente responsable asignado
|
|
101
|
+
- [ ] El agente asignado existe y está activo en config
|
|
102
|
+
- [ ] El orden de fases es lógico (tipos antes que usos, tests antes que código si TDD)
|
|
103
|
+
|
|
104
|
+
### Dimensión 6 — Glosario
|
|
105
|
+
- [ ] Términos del dominio usados en spec/plan/tareas existen en glosario
|
|
106
|
+
- [ ] No hay sinónimos (mismo concepto, palabras diferentes)
|
|
107
|
+
- [ ] Términos nuevos están registrados o pendientes de registrar
|
|
108
|
+
|
|
109
|
+
### Dimensión 7 — Configuración de agentes
|
|
110
|
+
- [ ] Todos los agentes referenciados en tareas están activos
|
|
111
|
+
- [ ] Los modelos asignados tienen sentido para la complejidad de la tarea
|
|
112
|
+
- [ ] No hay tareas críticas (seguridad, BD) asignadas a modelos pequeños
|
|
113
|
+
|
|
114
|
+
## PASO 3 — Generar reporte
|
|
115
|
+
|
|
116
|
+
Crea `.sdd/especificaciones/{ID}/analisis.md`:
|
|
117
|
+
|
|
118
|
+
```markdown
|
|
119
|
+
---
|
|
120
|
+
spec_id: {SPEC_ID}
|
|
121
|
+
fecha_analisis: {FECHA}
|
|
122
|
+
veredicto: APROBADO | OBSERVACIONES | BLOQUEADO
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
# Análisis de Consistencia: {SPEC_ID}
|
|
126
|
+
|
|
127
|
+
## Veredicto: **{VEREDICTO}**
|
|
128
|
+
|
|
129
|
+
[1-2 frases de resumen ejecutivo]
|
|
130
|
+
|
|
131
|
+
## Hallazgos
|
|
132
|
+
|
|
133
|
+
### 🔴 Bloqueantes (deben resolverse antes de implementar)
|
|
134
|
+
|
|
135
|
+
#### B1 — [Título]
|
|
136
|
+
- **Dimensión:** [cuál]
|
|
137
|
+
- **Descripción:** [qué inconsistencia se detectó]
|
|
138
|
+
- **Ubicación:** [archivo:sección]
|
|
139
|
+
- **Impacto si se ignora:** [qué pasaría]
|
|
140
|
+
- **Acción sugerida:** [qué hacer]
|
|
141
|
+
|
|
142
|
+
#### B2 — [...]
|
|
143
|
+
|
|
144
|
+
### 🟡 Observaciones (recomendable corregir)
|
|
145
|
+
|
|
146
|
+
#### O1 — [Título]
|
|
147
|
+
- [mismo formato pero impacto menor]
|
|
148
|
+
|
|
149
|
+
### 🟢 Buenas señales
|
|
150
|
+
|
|
151
|
+
- [Áreas donde se hizo bien]
|
|
152
|
+
|
|
153
|
+
## Matriz de Cobertura: CAs → Tareas
|
|
154
|
+
|
|
155
|
+
| CA | Descripción | Tareas que lo cubren | Estado |
|
|
156
|
+
|----|-------------|---------------------|--------|
|
|
157
|
+
| CA-001-01 | [texto] | T001, T005 | ✅ |
|
|
158
|
+
| CA-001-02 | [texto] | — | ❌ NO CUBIERTO |
|
|
159
|
+
| CA-002-01 | [texto] | T003 | ✅ |
|
|
160
|
+
|
|
161
|
+
## Matriz de Cobertura: Riesgos → Mitigaciones
|
|
162
|
+
|
|
163
|
+
| Riesgo (plan) | Prob × Imp | Mitigación (tarea) | Estado |
|
|
164
|
+
|---------------|-----------|---------------------|--------|
|
|
165
|
+
| R1 | A × A | T004 | ✅ |
|
|
166
|
+
| R2 | M × A | — | ⚠️ Sin mitigación |
|
|
167
|
+
|
|
168
|
+
## Cumplimiento de Constitución
|
|
169
|
+
|
|
170
|
+
| Principio | Cumple en plan | Cumple en tareas | Notas |
|
|
171
|
+
|-----------|---------------|------------------|-------|
|
|
172
|
+
| Principio I | ✅ | ✅ | — |
|
|
173
|
+
| Principio II | ⚠️ | ✅ | Ver decisión #3 del plan |
|
|
174
|
+
|
|
175
|
+
## Distribución de Carga de Agentes
|
|
176
|
+
|
|
177
|
+
| Agente | Tareas asignadas | % del total |
|
|
178
|
+
|--------|------------------|-------------|
|
|
179
|
+
| arquitecto | [N] | [%] |
|
|
180
|
+
| desarrollador-backend | [N] | [%] |
|
|
181
|
+
| ... | ... | ... |
|
|
182
|
+
|
|
183
|
+
## Recomendaciones
|
|
184
|
+
|
|
185
|
+
1. [Acción concreta priorizada]
|
|
186
|
+
2. [Acción concreta]
|
|
187
|
+
3. [Acción concreta]
|
|
188
|
+
|
|
189
|
+
## Sugerencia de comando siguiente
|
|
190
|
+
|
|
191
|
+
`/sdd.[comando recomendado]`
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## PASO 4 — Determinar veredicto
|
|
195
|
+
|
|
196
|
+
**APROBADO**: 0 bloqueantes. Cualquier número de observaciones.
|
|
197
|
+
|
|
198
|
+
**OBSERVACIONES**: 0 bloqueantes pero hay observaciones importantes. Se puede implementar pero con conciencia.
|
|
199
|
+
|
|
200
|
+
**BLOQUEADO**: ≥1 bloqueante. NO se debe implementar hasta corregir.
|
|
201
|
+
|
|
202
|
+
## PASO 5 — Acción según veredicto
|
|
203
|
+
|
|
204
|
+
**APROBADO:**
|
|
205
|
+
```
|
|
206
|
+
✅ Análisis: APROBADO
|
|
207
|
+
📁 .sdd/especificaciones/{ID}/analisis.md
|
|
208
|
+
|
|
209
|
+
[N] observaciones menores documentadas (no bloquean).
|
|
210
|
+
|
|
211
|
+
SIGUIENTE PASO:
|
|
212
|
+
/sdd.implementar — ejecutar tareas
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
**OBSERVACIONES:**
|
|
216
|
+
```
|
|
217
|
+
🟡 Análisis: CON OBSERVACIONES
|
|
218
|
+
📁 .sdd/especificaciones/{ID}/analisis.md
|
|
219
|
+
⚠️ [N] observaciones (no bloquean)
|
|
220
|
+
|
|
221
|
+
Puedes implementar, pero revisa primero el reporte.
|
|
222
|
+
Si quieres corregir antes:
|
|
223
|
+
/sdd.planificar revisar — ajustar plan
|
|
224
|
+
/sdd.tareas — regenerar tareas
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
**BLOQUEADO:**
|
|
228
|
+
```
|
|
229
|
+
🔴 Análisis: BLOQUEADO
|
|
230
|
+
📁 .sdd/especificaciones/{ID}/analisis.md
|
|
231
|
+
❌ [N] bloqueantes — NO implementes todavía
|
|
232
|
+
|
|
233
|
+
ACCIONES REQUERIDAS:
|
|
234
|
+
[Lista priorizada de qué hacer]
|
|
235
|
+
|
|
236
|
+
Empieza con:
|
|
237
|
+
/sdd.[comando del primer bloqueante]
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
**HOOK:** `.sdd/hooks/despues_analizar.sh`
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Guía completa del plugin SDD-ES con todos los comandos, flujos, agentes y referencias de personalización.
|
|
3
|
+
allowed-tools: Read
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /sdd.ayuda — Guía Completa
|
|
7
|
+
|
|
8
|
+
Muestra esta guía formateada:
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
╔══════════════════════════════════════════════════════════════════════╗
|
|
12
|
+
║ SDD-ES — Desarrollo Guiado por Especificaciones ║
|
|
13
|
+
║ Plugin para Claude Code | v2.0.0 ║
|
|
14
|
+
║ ║
|
|
15
|
+
║ Inspirado en github/spec-kit y LiorCohen/sdd. En español. ║
|
|
16
|
+
║ Agnóstico al stack. Completamente personalizable. ║
|
|
17
|
+
╚══════════════════════════════════════════════════════════════════════╝
|
|
18
|
+
|
|
19
|
+
═══════════════════════════════════════════════════════════════════════
|
|
20
|
+
📚 COMANDOS DISPONIBLES
|
|
21
|
+
═══════════════════════════════════════════════════════════════════════
|
|
22
|
+
|
|
23
|
+
🏗️ INICIALIZACIÓN
|
|
24
|
+
/sdd Hub central — entiende lenguaje natural
|
|
25
|
+
/sdd.descubrir [idea] Extrae contexto mínimo de una idea vaga — punto de entrada para proyectos nuevos
|
|
26
|
+
/sdd.constitucion Establece principios del proyecto
|
|
27
|
+
/sdd.configurar Ajusta agentes y modelos
|
|
28
|
+
/sdd.configurar preset:lean Configuración para proyectos personales y prototipos
|
|
29
|
+
/sdd.configurar preset:startup Configuración para equipos pequeños
|
|
30
|
+
/sdd.configurar preset:enterprise Configuración para productos críticos con compliance
|
|
31
|
+
/sdd.ayuda Esta guía
|
|
32
|
+
|
|
33
|
+
📝 ESPECIFICACIÓN
|
|
34
|
+
/sdd.especificar [descripción] Capturar requisitos en formato SDD-ES
|
|
35
|
+
/sdd.importar [fuente] Importar spec externa (URL, archivo)
|
|
36
|
+
/sdd.aclarar Resolver [NECESITA_ACLARACION]
|
|
37
|
+
/sdd.checklist Validar calidad formal de la spec
|
|
38
|
+
|
|
39
|
+
🛠️ PLANIFICACIÓN E IMPLEMENTACIÓN
|
|
40
|
+
/sdd.planificar Generar plan técnico
|
|
41
|
+
/sdd.planificar aprobar Aprobar el plan
|
|
42
|
+
/sdd.tareas Desglosar en tareas atómicas
|
|
43
|
+
/sdd.analizar Auditoría de consistencia (RECOMENDADO)
|
|
44
|
+
/sdd.implementar Ejecutar todas las tareas
|
|
45
|
+
/sdd.implementar T003 Ejecutar tarea específica
|
|
46
|
+
/sdd.implementar continuar Retomar desde última tarea incompleta
|
|
47
|
+
/sdd.qa QA en navegador real desde los criterios de aceptación
|
|
48
|
+
/sdd.verificar Verificación final contra spec
|
|
49
|
+
|
|
50
|
+
🚀 DESPLIEGUE
|
|
51
|
+
/sdd.desplegar Publicar con verificación previa + health check
|
|
52
|
+
/sdd.canary Vigilar el servicio recién desplegado
|
|
53
|
+
/sdd.retro Retrospectiva: capturar aprendizajes del ciclo
|
|
54
|
+
|
|
55
|
+
🗺️ PRODUCTO Y DOMINIO
|
|
56
|
+
/sdd.snapshot Actualizar SNAPSHOT.md del producto
|
|
57
|
+
/sdd.glosario Gestionar términos del dominio
|
|
58
|
+
/sdd.estado Dashboard de progreso
|
|
59
|
+
/sdd.release Versión semántica + CHANGELOG desde specs completadas
|
|
60
|
+
/sdd.release patch|minor|major Forzar tipo de versión manualmente
|
|
61
|
+
/sdd.release --preview Ver qué entraría sin modificar nada
|
|
62
|
+
|
|
63
|
+
🏭 FÁBRICA (idea → producto instalable)
|
|
64
|
+
/sdd.crear-app [idea] Generar app web o CLI desde una descripción en lenguaje natural
|
|
65
|
+
/sdd.crear-mcp [descripción] Generar servidor MCP empaquetado (.mcpb) desde una descripción
|
|
66
|
+
|
|
67
|
+
⚙️ UTILIDADES
|
|
68
|
+
/sdd.mapear Indexar estructura, símbolos y dependencias del proyecto
|
|
69
|
+
/sdd.comprimir Comprimir archivos de memoria para ahorrar tokens
|
|
70
|
+
|
|
71
|
+
═══════════════════════════════════════════════════════════════════════
|
|
72
|
+
🔄 FLUJOS RECOMENDADOS
|
|
73
|
+
═══════════════════════════════════════════════════════════════════════
|
|
74
|
+
|
|
75
|
+
FLUJO DESDE CERO (idea vaga, proyecto nuevo, sin nada definido)
|
|
76
|
+
/sdd.descubrir [idea] → genera contexto base con preguntas mínimas
|
|
77
|
+
/sdd.constitucion → principios y restricciones del proyecto
|
|
78
|
+
/sdd.especificar → usa el contexto para generar la spec
|
|
79
|
+
/sdd.planificar → /sdd.tareas → /sdd.implementar
|
|
80
|
+
|
|
81
|
+
FLUJO MÍNIMO (cambios micro, <10 líneas, ≤3 archivos)
|
|
82
|
+
/sdd.especificar [descripción]
|
|
83
|
+
→ Detecta tamaño Micro y ejecuta automáticamente:
|
|
84
|
+
spec + plan + tareas + implementar
|
|
85
|
+
|
|
86
|
+
FLUJO ESTÁNDAR (features normales)
|
|
87
|
+
/sdd.constitucion (solo la primera vez)
|
|
88
|
+
/sdd.especificar [descripción]
|
|
89
|
+
/sdd.planificar
|
|
90
|
+
/sdd.planificar aprobar
|
|
91
|
+
/sdd.tareas
|
|
92
|
+
/sdd.implementar
|
|
93
|
+
|
|
94
|
+
FLUJO CALIDAD MÁXIMA (features grandes, producto enterprise)
|
|
95
|
+
/sdd.constitucion
|
|
96
|
+
/sdd.especificar [descripción]
|
|
97
|
+
/sdd.aclarar
|
|
98
|
+
/sdd.checklist
|
|
99
|
+
/sdd.planificar
|
|
100
|
+
/sdd.planificar aprobar
|
|
101
|
+
/sdd.tareas
|
|
102
|
+
/sdd.analizar
|
|
103
|
+
/sdd.implementar
|
|
104
|
+
/sdd.verificar
|
|
105
|
+
/sdd.snapshot
|
|
106
|
+
|
|
107
|
+
═══════════════════════════════════════════════════════════════════════
|
|
108
|
+
🤖 AGENTES ESPECIALIZADOS
|
|
109
|
+
═══════════════════════════════════════════════════════════════════════
|
|
110
|
+
|
|
111
|
+
DISEÑO Y ARQUITECTURA
|
|
112
|
+
arquitecto Decisiones técnicas, diseño de alto nivel
|
|
113
|
+
disenador-api Contratos: OpenAPI, GraphQL, gRPC, eventos
|
|
114
|
+
asesor-datos Esquemas, queries, índices, migraciones
|
|
115
|
+
|
|
116
|
+
IMPLEMENTACIÓN
|
|
117
|
+
desarrollador-backend Lógica servidor: servicios, APIs, datos
|
|
118
|
+
desarrollador-frontend UI: componentes, vistas, estado cliente
|
|
119
|
+
operaciones CI/CD, deploys, infraestructura
|
|
120
|
+
|
|
121
|
+
CALIDAD
|
|
122
|
+
tester Tests unitarios, integración, E2E
|
|
123
|
+
revisor Revisión contra spec/calidad/constitución
|
|
124
|
+
critico Riesgos y puntos ciegos
|
|
125
|
+
seguridad Auditoría de vulnerabilidades
|
|
126
|
+
documentador Docs técnicas útiles
|
|
127
|
+
|
|
128
|
+
CONTEXTO
|
|
129
|
+
investigador Stack, patrones, deuda técnica — se activa en /sdd.descubrir y /sdd.especificar
|
|
130
|
+
|
|
131
|
+
Cada agente tiene un modelo asignado en .sdd/sdd.config.yaml.
|
|
132
|
+
Usa /sdd.configurar para cambiar qué agentes están activos y qué modelo usan.
|
|
133
|
+
|
|
134
|
+
═══════════════════════════════════════════════════════════════════════
|
|
135
|
+
📁 ESTRUCTURA GENERADA EN TU PROYECTO
|
|
136
|
+
═══════════════════════════════════════════════════════════════════════
|
|
137
|
+
|
|
138
|
+
.sdd/
|
|
139
|
+
├── sdd.config.yaml ← Configuración personalizable
|
|
140
|
+
├── estado.json ← Estado global del flujo
|
|
141
|
+
├── INDICE.md ← Registro de todas las specs
|
|
142
|
+
├── SNAPSHOT.md ← Estado actual del producto
|
|
143
|
+
├── memoria/
|
|
144
|
+
│ └── constitucion.md ← Principios del proyecto
|
|
145
|
+
├── dominio/
|
|
146
|
+
│ ├── glosario.md ← Términos del dominio
|
|
147
|
+
│ └── definiciones/ ← Definiciones extendidas
|
|
148
|
+
├── arquitectura/
|
|
149
|
+
│ └── *.md ← ADRs (decisiones de arquitectura)
|
|
150
|
+
├── cambios/
|
|
151
|
+
│ └── YYYY/MM/DD/... ← Registro cronológico de cambios
|
|
152
|
+
├── hooks/
|
|
153
|
+
│ ├── antes_*.sh ← Hooks personalizables
|
|
154
|
+
│ └── despues_*.sh
|
|
155
|
+
└── especificaciones/
|
|
156
|
+
└── {ID}/
|
|
157
|
+
├── spec.md ← Especificación
|
|
158
|
+
├── plan.md ← Plan técnico
|
|
159
|
+
├── tareas.md ← Tareas atómicas
|
|
160
|
+
├── checklist-spec.md ← Resultado del checklist
|
|
161
|
+
├── analisis.md ← Auditoría de consistencia
|
|
162
|
+
├── verificacion.md ← Verificación final
|
|
163
|
+
└── .estado-tareas.json
|
|
164
|
+
|
|
165
|
+
═══════════════════════════════════════════════════════════════════════
|
|
166
|
+
🎨 PERSONALIZACIÓN
|
|
167
|
+
═══════════════════════════════════════════════════════════════════════
|
|
168
|
+
|
|
169
|
+
TODO el plugin es texto Markdown. Personalizar cualquier cosa requiere
|
|
170
|
+
solo editar archivos:
|
|
171
|
+
|
|
172
|
+
1. Templates de spec/plan/tareas → plantillas/*.md
|
|
173
|
+
2. Comportamiento de comandos → commands/*.md
|
|
174
|
+
3. Personalidad y reglas de agentes → agents/*.md
|
|
175
|
+
4. Agentes activos y modelos → .sdd/sdd.config.yaml
|
|
176
|
+
5. Hooks pre/post fase → .sdd/hooks/*.sh
|
|
177
|
+
6. Permisos y protecciones → .sdd/sdd.config.yaml
|
|
178
|
+
|
|
179
|
+
Ver detalles en: docs/PERSONALIZACION.md
|
|
180
|
+
|
|
181
|
+
═══════════════════════════════════════════════════════════════════════
|
|
182
|
+
🔌 HOOKS PERSONALIZABLES
|
|
183
|
+
═══════════════════════════════════════════════════════════════════════
|
|
184
|
+
|
|
185
|
+
Crea scripts ejecutables en .sdd/hooks/ para integrar tu propio flujo:
|
|
186
|
+
|
|
187
|
+
antes_constitucion.sh despues_constitucion.sh
|
|
188
|
+
antes_especificar.sh despues_especificar.sh
|
|
189
|
+
antes_aclarar.sh despues_aclarar.sh
|
|
190
|
+
antes_planificar.sh despues_planificar.sh
|
|
191
|
+
antes_tareas.sh despues_tareas.sh
|
|
192
|
+
antes_analizar.sh despues_analizar.sh
|
|
193
|
+
antes_implementar.sh despues_implementar.sh
|
|
194
|
+
antes_cada_tarea.sh despues_cada_tarea.sh ← por tarea
|
|
195
|
+
antes_verificar.sh despues_verificar.sh
|
|
196
|
+
antes_importar.sh
|
|
197
|
+
|
|
198
|
+
Casos de uso típicos:
|
|
199
|
+
• Aplicar linter después de implementar
|
|
200
|
+
• Crear branch de Git antes de empezar una spec (si lo deseas)
|
|
201
|
+
• Subir reporte a Slack/Teams al verificar
|
|
202
|
+
• Generar PR de GitLab/GitHub manualmente con tus credenciales
|
|
203
|
+
• Notificar al equipo cuando se aprueba un plan
|
|
204
|
+
|
|
205
|
+
⚠️ IMPORTANTE: SDD-ES NO se acopla a Git/GitHub/GitLab.
|
|
206
|
+
Si quieres integrar tu sistema de control de versiones,
|
|
207
|
+
hazlo desde hooks personalizados.
|
|
208
|
+
|
|
209
|
+
═══════════════════════════════════════════════════════════════════════
|
|
210
|
+
📖 DOCUMENTACIÓN ADICIONAL
|
|
211
|
+
═══════════════════════════════════════════════════════════════════════
|
|
212
|
+
|
|
213
|
+
docs/FILOSOFIA.md Qué es SDD y por qué funciona
|
|
214
|
+
docs/FLUJO.md Diagrama del flujo completo
|
|
215
|
+
docs/AGENTES.md Cuándo usar cada agente
|
|
216
|
+
docs/MODELOS.md Recomendaciones de modelos
|
|
217
|
+
docs/PERSONALIZACION.md Guía exhaustiva de personalización
|
|
218
|
+
docs/EJEMPLOS.md Ejemplos completos de uso
|
|
219
|
+
docs/FABRICA.md Recorrido idea→deploy para no-programadores
|
|
220
|
+
|
|
221
|
+
═══════════════════════════════════════════════════════════════════════
|
|
222
|
+
|
|
223
|
+
¿Tienes una duda específica? Pregunta en lenguaje natural:
|
|
224
|
+
"¿Cómo cambio el modelo del agente revisor?"
|
|
225
|
+
"¿Qué hace el comando /sdd.analizar?"
|
|
226
|
+
"¿Cómo desactivo el agente frontend?"
|
|
227
|
+
```
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Vigila un servicio recién desplegado consultando su health endpoint a intervalos y reporta si deja de responder. Monitoreo ligero post-deploy, sin dependencias externas.
|
|
3
|
+
allowed-tools: Read, Bash
|
|
4
|
+
handoffs:
|
|
5
|
+
- etiqueta: "Actualizar snapshot"
|
|
6
|
+
comando: sdd.snapshot
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# /sdd.canary — Monitoreo Post-Despliegue
|
|
10
|
+
|
|
11
|
+
Eres el **Centinela**. Tras un despliegue, vigilas que el servicio siga sano y avisas en cuanto algo se rompe. Inspirado en `/canary` de gstack.
|
|
12
|
+
|
|
13
|
+
## PASO 1 — Obtener la URL desplegada
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
URL=$(grep -o '"ultimo_despliegue":[^}]*"url": *"[^"]*"' .sdd/estado.json 2>/dev/null | grep -o 'https\?://[^"]*' | head -1)
|
|
17
|
+
echo "URL a vigilar: ${URL:-NO_ENCONTRADA}"
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Si no hay URL registrada, pídela al usuario o sugiere correr `/sdd.desplegar` primero.
|
|
21
|
+
|
|
22
|
+
## PASO 2 — Definir el chequeo
|
|
23
|
+
|
|
24
|
+
Permite que el usuario indique cuántas rondas y cada cuánto (default: 5 rondas, ~30s entre cada una). En entornos sin tarea programada, haz un puñado de chequeos seguidos y reporta; no bloquees indefinidamente.
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
URL="[url]"
|
|
28
|
+
HEALTH="${URL}/health" # ajusta si el proyecto usa otro endpoint
|
|
29
|
+
|
|
30
|
+
for i in 1 2 3 4 5; do
|
|
31
|
+
CODE=$(curl -s -o /dev/null -w "%{http_code}" --max-time 10 "$HEALTH" 2>/dev/null)
|
|
32
|
+
LAT=$(curl -s -o /dev/null -w "%{time_total}" --max-time 10 "$HEALTH" 2>/dev/null)
|
|
33
|
+
echo "ronda $i: HTTP $CODE (${LAT}s)"
|
|
34
|
+
if [ "$CODE" != "200" ]; then
|
|
35
|
+
echo "⚠️ ALERTA: el servicio respondió $CODE en la ronda $i"
|
|
36
|
+
fi
|
|
37
|
+
done
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## PASO 3 — Reportar
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
🐤 Canary — [url]
|
|
44
|
+
|
|
45
|
+
Rondas: 5
|
|
46
|
+
Sanas: [N]/5
|
|
47
|
+
Latencia: ~[X]s promedio
|
|
48
|
+
Estado: [✅ estable | ⚠️ inestable | ❌ caído]
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Si hubo cualquier respuesta no-2xx:
|
|
52
|
+
- **experto**: sugiere revisar logs de la plataforma y, si es grave, rollback.
|
|
53
|
+
- **guiado**: *"Detecté que tu producto dejó de responder un momento. ¿Quieres que revise qué pasó?"* (sin jerga).
|
|
54
|
+
|
|
55
|
+
Si todo sano:
|
|
56
|
+
|
|
57
|
+
> ✅ Tu producto está estable. Respondió bien en todas las pruebas.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
**HOOK:** `.sdd/hooks/despues_canary.sh`
|