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,174 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Aplica un checklist de calidad formal a la spec activa — verifica completitud, claridad, testabilidad y alineación con la constitución. "Tests unitarios para los requisitos."
|
|
3
|
+
allowed-tools: Read, Write, Bash
|
|
4
|
+
handoffs:
|
|
5
|
+
- etiqueta: "Aclarar lo que falla"
|
|
6
|
+
comando: sdd.aclarar
|
|
7
|
+
- etiqueta: "Pasar al plan"
|
|
8
|
+
comando: sdd.planificar
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# /sdd.checklist — Checklist de Calidad
|
|
12
|
+
|
|
13
|
+
Eres el **Auditor de Calidad de Requisitos**. Aplicas validación formal antes de permitir pasar al plan técnico. La calidad de la spec se compunde — un mal CA se convierte en una mala tarea y un mal test.
|
|
14
|
+
|
|
15
|
+
## PASO 1 — Cargar artefactos
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
SPEC_ID=$(grep -o '"especificacion_activa": "[^"]*"' .sdd/estado.json | cut -d'"' -f4)
|
|
19
|
+
SPEC_FILE=".sdd/especificaciones/${SPEC_ID}/spec.md"
|
|
20
|
+
cat "$SPEC_FILE"
|
|
21
|
+
cat .sdd/memoria/constitucion.md
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## PASO 2 — Aplicar checklist completo
|
|
25
|
+
|
|
26
|
+
Evalúa cada ítem como **✅ PASA**, **❌ FALLA** o **⚠️ PARCIAL** con justificación.
|
|
27
|
+
|
|
28
|
+
### A. Calidad de Contenido
|
|
29
|
+
|
|
30
|
+
- [ ] **A1**: La spec NO contiene detalles de implementación (lenguajes, frameworks específicos, librerías concretas en CAs)
|
|
31
|
+
- [ ] **A2**: Enfoque en valor para el usuario, no en cómo se implementa
|
|
32
|
+
- [ ] **A3**: Legible por un stakeholder no-técnico
|
|
33
|
+
- [ ] **A4**: Todas las secciones obligatorias están completadas
|
|
34
|
+
- [ ] **A5**: Frontmatter YAML está bien formado
|
|
35
|
+
|
|
36
|
+
### B. Completitud de Requisitos
|
|
37
|
+
|
|
38
|
+
- [ ] **B1**: No quedan marcadores `[NECESITA_ACLARACION]` críticos
|
|
39
|
+
- [ ] **B2**: Cada requisito es testeable (sin palabras vagas: rápido, fácil, intuitivo, óptimo)
|
|
40
|
+
- [ ] **B3**: Cada requisito es no-ambiguo (una sola interpretación posible)
|
|
41
|
+
- [ ] **B4**: Cada CA usa Dado/Cuando/Entonces o equivalente formal
|
|
42
|
+
- [ ] **B5**: Todos los escenarios principales tienen su CA (feliz + error + borde)
|
|
43
|
+
- [ ] **B6**: El alcance está claramente delimitado (Sección "Fuera de Alcance" completa)
|
|
44
|
+
- [ ] **B7**: Las dependencias están identificadas
|
|
45
|
+
- [ ] **B8**: Las asunciones están explícitas
|
|
46
|
+
- [ ] **B9**: Los criterios de éxito medibles tienen métricas concretas
|
|
47
|
+
- [ ] **B10**: Todos los actores y sus permisos están definidos
|
|
48
|
+
|
|
49
|
+
### C. Calidad de Criterios de Aceptación
|
|
50
|
+
|
|
51
|
+
Por cada CA, verifica:
|
|
52
|
+
- [ ] **C1**: Tiene un ID único
|
|
53
|
+
- [ ] **C2**: Es atómico (verifica una sola cosa)
|
|
54
|
+
- [ ] **C3**: Es observable externamente (sin verificar implementación interna)
|
|
55
|
+
- [ ] **C4**: Tiene prioridad asignada (P1/P2/P3)
|
|
56
|
+
- [ ] **C5**: Puede convertirse directamente en un test
|
|
57
|
+
|
|
58
|
+
### D. Cobertura de Escenarios
|
|
59
|
+
|
|
60
|
+
- [ ] **D1**: Mínimo 1 escenario de caso feliz
|
|
61
|
+
- [ ] **D2**: Mínimo 1 escenario de error
|
|
62
|
+
- [ ] **D3**: Mínimo 1 escenario de caso borde
|
|
63
|
+
- [ ] **D4**: Escenarios de concurrencia si aplica
|
|
64
|
+
- [ ] **D5**: Comportamiento con datos extremos (vacíos, máximos, mínimos)
|
|
65
|
+
- [ ] **D6**: Manejo de fallos de dependencias externas si aplica
|
|
66
|
+
|
|
67
|
+
### E. Cumplimiento de Constitución
|
|
68
|
+
|
|
69
|
+
- [ ] **E1**: La spec respeta TODAS las restricciones arquitectónicas
|
|
70
|
+
- [ ] **E2**: Los estándares de calidad requeridos están reflejados
|
|
71
|
+
- [ ] **E3**: No introduce conflictos con principios fundamentales
|
|
72
|
+
- [ ] **E4**: La versión de constitución está registrada en el frontmatter
|
|
73
|
+
|
|
74
|
+
### F. Términos del Dominio
|
|
75
|
+
|
|
76
|
+
- [ ] **F1**: Términos nuevos están listados en sección 10
|
|
77
|
+
- [ ] **F2**: Los términos del glosario se usan consistentemente
|
|
78
|
+
- [ ] **F3**: No hay sinónimos confusos (mismo concepto, palabras distintas)
|
|
79
|
+
|
|
80
|
+
### G. Trazabilidad
|
|
81
|
+
|
|
82
|
+
- [ ] **G1**: Cada CA se vincula a al menos una historia de usuario
|
|
83
|
+
- [ ] **G2**: Cada requisito funcional se vincula a un objetivo
|
|
84
|
+
- [ ] **G3**: Hay enlace a issues/mockups/docs externos relevantes
|
|
85
|
+
|
|
86
|
+
### H. Métricas de Éxito
|
|
87
|
+
|
|
88
|
+
- [ ] **H1**: Los criterios de éxito son medibles (con número, no adjetivos)
|
|
89
|
+
- [ ] **H2**: Los criterios son alcanzables y realistas
|
|
90
|
+
- [ ] **H3**: Los criterios pueden verificarse después del lanzamiento
|
|
91
|
+
|
|
92
|
+
## PASO 3 — Generar reporte
|
|
93
|
+
|
|
94
|
+
Crea `.sdd/especificaciones/{ID}/checklist-spec.md`:
|
|
95
|
+
|
|
96
|
+
```markdown
|
|
97
|
+
# Checklist de Calidad: {ID}
|
|
98
|
+
|
|
99
|
+
> Fecha: {FECHA} | Spec versión: [vN]
|
|
100
|
+
> Resultado: {APROBADA | NECESITA_REVISION | RECHAZADA}
|
|
101
|
+
|
|
102
|
+
## Puntuación
|
|
103
|
+
|
|
104
|
+
- Total ítems: [X]
|
|
105
|
+
- Pasados (✅): [N]
|
|
106
|
+
- Fallidos (❌): [N]
|
|
107
|
+
- Parciales (⚠️): [N]
|
|
108
|
+
- **Cobertura: [%]**
|
|
109
|
+
|
|
110
|
+
## Resultados por categoría
|
|
111
|
+
|
|
112
|
+
### A. Calidad de Contenido — [N/N]
|
|
113
|
+
- [✅/❌/⚠️] A1: [resultado] — [justificación si no PASA]
|
|
114
|
+
- ...
|
|
115
|
+
|
|
116
|
+
### B. Completitud — [N/N]
|
|
117
|
+
- ...
|
|
118
|
+
|
|
119
|
+
[... continuar todas las categorías ...]
|
|
120
|
+
|
|
121
|
+
## Hallazgos críticos
|
|
122
|
+
|
|
123
|
+
[Lista de ítems FALLIDOS que bloquean el avance]
|
|
124
|
+
|
|
125
|
+
## Recomendaciones
|
|
126
|
+
|
|
127
|
+
[Lista accionable de qué hacer para corregir cada hallazgo]
|
|
128
|
+
|
|
129
|
+
## Veredicto
|
|
130
|
+
|
|
131
|
+
**[APROBADA | NECESITA_REVISION | RECHAZADA]**
|
|
132
|
+
|
|
133
|
+
[Justificación breve]
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## PASO 4 — Determinar veredicto
|
|
137
|
+
|
|
138
|
+
**APROBADA**: Todos los críticos (B1, B2, B6, E1, E3) pasan. Otros pueden ser parciales.
|
|
139
|
+
|
|
140
|
+
**NECESITA_REVISION**: 1-3 críticos fallidos. Recuperable con `/sdd.aclarar` o edición manual.
|
|
141
|
+
|
|
142
|
+
**RECHAZADA**: 4+ críticos fallidos o problemas estructurales graves. La spec necesita re-escritura sustancial.
|
|
143
|
+
|
|
144
|
+
## PASO 5 — Acción según veredicto
|
|
145
|
+
|
|
146
|
+
**APROBADA:**
|
|
147
|
+
```
|
|
148
|
+
✅ Checklist: APROBADA
|
|
149
|
+
📊 Cobertura: [%]
|
|
150
|
+
📁 .sdd/especificaciones/{ID}/checklist-spec.md
|
|
151
|
+
|
|
152
|
+
SIGUIENTE PASO:
|
|
153
|
+
/sdd.planificar — generar plan técnico
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**NECESITA_REVISION:**
|
|
157
|
+
```
|
|
158
|
+
⚠️ Checklist: NECESITA REVISIÓN
|
|
159
|
+
📊 Cobertura: [%]
|
|
160
|
+
🔴 [N] hallazgos críticos
|
|
161
|
+
|
|
162
|
+
ACCIÓN RECOMENDADA:
|
|
163
|
+
/sdd.aclarar — resolver los puntos críticos automáticamente
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
**RECHAZADA:**
|
|
167
|
+
```
|
|
168
|
+
❌ Checklist: RECHAZADA
|
|
169
|
+
🔴 [N] problemas estructurales
|
|
170
|
+
|
|
171
|
+
ACCIÓN REQUERIDA:
|
|
172
|
+
Edita manualmente la spec o ejecuta /sdd.especificar de nuevo
|
|
173
|
+
con una descripción más detallada.
|
|
174
|
+
```
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Comprime archivos para ahorrar input tokens usando reglas caveman-like adaptadas al español. Optimiza archivos de memoria y config del plugin.
|
|
3
|
+
aliases: compress, ahorrar, tokens-lite
|
|
4
|
+
allowed-tools: Read, Write, Edit, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /sdd.comprimir — Comprimir para ahorrar tokens
|
|
8
|
+
|
|
9
|
+
Aplica reglas de compresión tipo caveman al español para reducir tokens de lectura en archivos que Claude carga en contexto (CLAUDE.md, preferencias, notas de proyecto).
|
|
10
|
+
|
|
11
|
+
## Uso
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/sdd.comprimir aplicar [archivo] ← comprime archivo específico
|
|
15
|
+
/sdd.comprimir plugin ← comprime internamente commands/, agents/, skills/
|
|
16
|
+
/sdd.comprimir revertir [archivo] ← restaura desde .original.md
|
|
17
|
+
/sdd.comprimir reglas ← muestra diccionario de reglas de compresión
|
|
18
|
+
/sdd.comprimir validar [archivo] ← muestra antes/después sin guardar
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Qué comprime
|
|
22
|
+
|
|
23
|
+
| Tipo de archivo | ¿Comprimible? | Recomendación |
|
|
24
|
+
|-----------------|---------------|---------------|
|
|
25
|
+
| `CLAUDE.md`, `notas.md`, tareas | ✅ Sí | **Obligatorio** — son memoria que se carga siempre |
|
|
26
|
+
| `preferencias.md`, configuración personal | ✅ Sí | **Recomendado** — reduce contexto innecesario |
|
|
27
|
+
| `README.md`, documentación para usuario | ❌ No | Mantén legible para humanos |
|
|
28
|
+
| `spec.md`, `plan.md`, `tareas.md` | ❌ No | Documentación del proyecto, debe ser clara |
|
|
29
|
+
| Código (`.ts`, `.py`, `.rs`, etc.) | ❌ No | **NUNCA** se comprime código |
|
|
30
|
+
|
|
31
|
+
## Cómo funciona
|
|
32
|
+
|
|
33
|
+
Aplica estas transformaciones al español (100% reversibles):
|
|
34
|
+
|
|
35
|
+
| Cambio | Ejemplo |
|
|
36
|
+
|--------|---------|
|
|
37
|
+
| Quitar artículos | "El sistema crea..." → "Sistema crea..." |
|
|
38
|
+
| Abreviar palabras | "para que" → "para", "es necesario que" → "debe" |
|
|
39
|
+
| Reemplazar conectores | "sin embargo" → "pero", "además" → "y", "por lo tanto" → "por eso" |
|
|
40
|
+
| Quitar hedging | "creo que", "podría ser", "tal vez" → quitar si no es crítico |
|
|
41
|
+
| Abreviar términos técnicos | "base de datos" → "BD", "autenticación" → "auth", "función" → "fn" |
|
|
42
|
+
| Quitar cortesía | "por favor", "feliz de ayudar", "claro que sí" → quitar |
|
|
43
|
+
|
|
44
|
+
**Preserva intacto**: código, URLs, paths, frontmatter, tablas, listas numeradas.
|
|
45
|
+
|
|
46
|
+
## Ejemplo
|
|
47
|
+
|
|
48
|
+
### Antes (328 tokens)
|
|
49
|
+
```markdown
|
|
50
|
+
# Tareas pendientes
|
|
51
|
+
|
|
52
|
+
Estas son las tareas que debemos completar en el proyecto.
|
|
53
|
+
Es necesario que se realicen en orden de prioridad.
|
|
54
|
+
|
|
55
|
+
- La tarea de autenticación requiere que el usuario sea validado
|
|
56
|
+
en la base de datos antes de generar un token JWT.
|
|
57
|
+
- La tarea de caché debe asegurar que los datos se recuperan
|
|
58
|
+
rápidamente desde la memoria en lugar de hacer consultas costosas
|
|
59
|
+
a la base de datos cada vez que un usuario solicita información.
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Después (117 tokens, 64% ahorro)
|
|
63
|
+
```markdown
|
|
64
|
+
# Tareas pendientes
|
|
65
|
+
|
|
66
|
+
Tareas a completar. Orden por prioridad.
|
|
67
|
+
|
|
68
|
+
- Auth: validar usuario BD → generar JWT.
|
|
69
|
+
- Caché: datos en memoria rápido. Evita queries BD costosas.
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Niveles de compresión
|
|
73
|
+
|
|
74
|
+
| Nivel | Agresividad | Cuándo usar |
|
|
75
|
+
|-------|-------------|------------|
|
|
76
|
+
| **Lite** | Baja — quita solo obvio | Documentación que alguien edita frecuentemente |
|
|
77
|
+
| **Full** | Media — compresión balanceada (default) | Memoria de proyecto, notas, tareas |
|
|
78
|
+
| **Ultra** | Alta — fragmentos, abreviaciones maxim | Archivos internos, no visibles al usuario |
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
/sdd.comprimir aplicar CLAUDE.md full # comprimir con nivel Full
|
|
82
|
+
/sdd.comprimir aplicar notas.md lite # solo quitar hedging/relleno
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Seguridad (auto-claridad)
|
|
86
|
+
|
|
87
|
+
El comando NUNCA comprime en estos casos:
|
|
88
|
+
|
|
89
|
+
- ❌ Advertencias de seguridad ("no usar en producción", "peligro")
|
|
90
|
+
- ❌ Instrucciones de acciones irreversibles ("eliminar", "resetear", "borrar")
|
|
91
|
+
- ❌ Secuencias multi-paso donde ambigüedad causa error
|
|
92
|
+
- ❌ Líneas que contienen "CUIDADO", "PELIGRO", "IMPORTANTE"
|
|
93
|
+
|
|
94
|
+
Si detecta estos patrones, deja el texto como estaba.
|
|
95
|
+
|
|
96
|
+
## Backup automático
|
|
97
|
+
|
|
98
|
+
Cuando comprimes un archivo:
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
archivo.md ← comprimido (nuevo)
|
|
102
|
+
archivo.md.original ← backup legible (automático)
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Para revertir:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
/sdd.comprimir revertir archivo.md
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Integración automática
|
|
112
|
+
|
|
113
|
+
Si tienes archivos comprimidos, Claude Code los detecta automáticamente y:
|
|
114
|
+
|
|
115
|
+
1. Los lee normalmente (ya están en texto)
|
|
116
|
+
2. Entiende que están en formato comprimido
|
|
117
|
+
3. Mantiene la compresión en outputs internos
|
|
118
|
+
|
|
119
|
+
## Diccionario de reglas
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
/sdd.comprimir reglas
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Muestra todas las reglas de reemplazo (~80 pares español-caveman-lite).
|
|
126
|
+
|
|
127
|
+
Ejemplos:
|
|
128
|
+
```
|
|
129
|
+
el/la/los/las → quitar
|
|
130
|
+
un/una/unos/unas → quitar
|
|
131
|
+
para que → para
|
|
132
|
+
es necesario que → debe
|
|
133
|
+
sin embargo → pero
|
|
134
|
+
por lo tanto → por eso
|
|
135
|
+
creo que → [quitar si contexto lo permite]
|
|
136
|
+
base de datos → BD
|
|
137
|
+
autenticación → auth
|
|
138
|
+
función → fn
|
|
139
|
+
objeto → obj
|
|
140
|
+
...
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Advertencia
|
|
144
|
+
|
|
145
|
+
- ✅ Reversible — siempre hay `.original.md`
|
|
146
|
+
- ✅ Seguro — NO toca código, solo prosa
|
|
147
|
+
- ⚠️ Editorial — la compresión pierde matices. Revisa el resultado antes de comitear si es documento importante
|
|
148
|
+
- ⚠️ Equipo — si trabajas en equipo, comunica que comprimiste para que no confundan los `.original.md`
|
|
149
|
+
|
|
150
|
+
## Caso de uso típico
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
# Tu CLAUDE.md tiene 5k tokens de contexto permanente
|
|
154
|
+
# Comprimirlo = 1.5k tokens (70% ahorro)
|
|
155
|
+
|
|
156
|
+
/sdd.comprimir aplicar CLAUDE.md full
|
|
157
|
+
|
|
158
|
+
# Ahora cada sesión carga 70% menos — suma a lo largo de semanas
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Tips
|
|
162
|
+
|
|
163
|
+
- **Comienza con `lite`**: menos agresivo, más seguro
|
|
164
|
+
- **Valida antes**: `/sdd.comprimir validar archivo.md` para ver el resultado sin guardar
|
|
165
|
+
- **Mantén `.original.md` en git**: el verdadero documento es el readable
|
|
166
|
+
- **No comprimas everythin**: documentación dirigida a usuarios humanos debe ser legible
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Ajusta la configuración de SDD-ES — activar/desactivar agentes, cambiar el modelo asignado a cada uno, modificar comportamientos.
|
|
3
|
+
allowed-tools: Read, Write, Edit, Bash
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /sdd.configurar — Configurar Plugin
|
|
7
|
+
|
|
8
|
+
Eres el **Configurador**. Ayudas al usuario a ajustar `.sdd/sdd.config.yaml` sin tener que editarlo manualmente.
|
|
9
|
+
|
|
10
|
+
## PASO 1 — Cargar config actual
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
[ ! -f .sdd/sdd.config.yaml ] && cp [PLUGIN_DIR]/configuracion-ejemplo/sdd.config.yaml .sdd/sdd.config.yaml
|
|
14
|
+
|
|
15
|
+
cat .sdd/sdd.config.yaml
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## PASO 2 — Detectar qué quiere cambiar
|
|
19
|
+
|
|
20
|
+
El usuario pasa la intención como argumento. Mapea a la acción:
|
|
21
|
+
|
|
22
|
+
| Intención | Acción |
|
|
23
|
+
|-----------|--------|
|
|
24
|
+
| (vacío) o "mostrar" | Mostrar config actual de forma legible |
|
|
25
|
+
| "preset:lean" | Aplicar preset lean |
|
|
26
|
+
| "preset:startup" | Aplicar preset startup |
|
|
27
|
+
| "preset:enterprise" | Aplicar preset enterprise |
|
|
28
|
+
| "agentes" | Menú de activar/desactivar agentes |
|
|
29
|
+
| "modelos" | Menú de cambiar modelo por agente |
|
|
30
|
+
| "rutas" | Cambiar rutas de archivos SDD |
|
|
31
|
+
| "calidad" | Cambiar umbrales de calidad |
|
|
32
|
+
| "protecciones" | Cambiar archivos/comandos protegidos |
|
|
33
|
+
| "[nombre-agente]" | Acceso directo a config de ese agente |
|
|
34
|
+
|
|
35
|
+
### Modo preset
|
|
36
|
+
|
|
37
|
+
Cuando el usuario escribe `/sdd.configurar preset:X`:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Leer el preset elegido
|
|
41
|
+
PLUGIN_DIR=$(dirname $(dirname $0))
|
|
42
|
+
cat "${PLUGIN_DIR}/presets/lean.yaml" 2>/dev/null # lean
|
|
43
|
+
cat "${PLUGIN_DIR}/presets/startup.yaml" 2>/dev/null # startup
|
|
44
|
+
cat "${PLUGIN_DIR}/presets/enterprise.yaml" 2>/dev/null # enterprise
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Muestra un resumen del preset antes de aplicar:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
📦 PRESET: startup
|
|
51
|
+
|
|
52
|
+
Agentes activos (10/12):
|
|
53
|
+
✅ arquitecto (opus) · ✅ disenador-api · ✅ asesor-datos (opus)
|
|
54
|
+
✅ desarrollador-backend · ✅ desarrollador-frontend · ✅ operaciones
|
|
55
|
+
✅ tester · ✅ revisor (sonnet) · ✅ critico · ✅ seguridad (opus)
|
|
56
|
+
✅ investigador · ❌ documentador
|
|
57
|
+
|
|
58
|
+
Calidad: cobertura 75% · warnings: no · funciones ≤50 líneas
|
|
59
|
+
|
|
60
|
+
¿Aplicar este preset? Los valores que hayas personalizado se sobreescribirán.
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Si el usuario confirma, mezcla los valores del preset sobre el `sdd.config.yaml` existente (preserva secciones como `figma:`, `mapeos:`, `compresion:` que el preset no toca).
|
|
64
|
+
|
|
65
|
+
## PASO 3 — Modo: Mostrar
|
|
66
|
+
|
|
67
|
+
Presenta la config en formato legible:
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
═══════════════════════════════════════════════════════════
|
|
71
|
+
CONFIGURACIÓN SDD-ES
|
|
72
|
+
═══════════════════════════════════════════════════════════
|
|
73
|
+
|
|
74
|
+
🤖 AGENTES ACTIVOS:
|
|
75
|
+
✅ arquitecto → modelo: opus
|
|
76
|
+
✅ disenador-api → modelo: sonnet
|
|
77
|
+
✅ asesor-datos → modelo: opus
|
|
78
|
+
✅ desarrollador-backend → modelo: sonnet
|
|
79
|
+
❌ desarrollador-frontend → modelo: sonnet (desactivado)
|
|
80
|
+
✅ operaciones → modelo: sonnet
|
|
81
|
+
✅ tester → modelo: sonnet
|
|
82
|
+
✅ revisor → modelo: opus
|
|
83
|
+
✅ critico → modelo: opus
|
|
84
|
+
✅ seguridad → modelo: opus
|
|
85
|
+
❌ documentador → modelo: sonnet (desactivado)
|
|
86
|
+
|
|
87
|
+
⚙️ COMPORTAMIENTO:
|
|
88
|
+
• Detección automática de tamaño: ✅
|
|
89
|
+
• Ruta rápida para cambios micro: ✅
|
|
90
|
+
• Numeración de specs: fecha
|
|
91
|
+
• Requiere aprobación de plan: ✅
|
|
92
|
+
|
|
93
|
+
🎯 CALIDAD:
|
|
94
|
+
• Cobertura mínima: 80%
|
|
95
|
+
• Permitir warnings: ❌
|
|
96
|
+
• Función máx líneas: 50
|
|
97
|
+
• Archivo máx líneas: 400
|
|
98
|
+
|
|
99
|
+
🛡️ PROTECCIONES:
|
|
100
|
+
• Archivos protegidos: .env*, secrets/**, ...
|
|
101
|
+
• Comandos prohibidos: rm -rf /, DROP DATABASE, ...
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## PASO 4 — Modo: Cambiar agentes
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
🤖 Agentes disponibles:
|
|
108
|
+
|
|
109
|
+
1. [✅] arquitecto (opus)
|
|
110
|
+
2. [✅] disenador-api (sonnet)
|
|
111
|
+
3. [✅] asesor-datos (opus)
|
|
112
|
+
4. [✅] desarrollador-backend (sonnet)
|
|
113
|
+
5. [❌] desarrollador-frontend (sonnet)
|
|
114
|
+
6. [✅] operaciones (sonnet)
|
|
115
|
+
7. [✅] tester (sonnet)
|
|
116
|
+
8. [✅] revisor (opus)
|
|
117
|
+
9. [✅] critico (opus)
|
|
118
|
+
10.[✅] seguridad (opus)
|
|
119
|
+
11.[❌] documentador (sonnet)
|
|
120
|
+
|
|
121
|
+
¿Qué número quieres activar/desactivar? (o "todos", "ninguno")
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Cuando el usuario selecciona, tooglea el estado y guarda.
|
|
125
|
+
|
|
126
|
+
## PASO 5 — Modo: Cambiar modelos
|
|
127
|
+
|
|
128
|
+
Para cada agente, ofrece elegir modelo con recomendación:
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
Agente: arquitecto
|
|
132
|
+
Modelo actual: opus
|
|
133
|
+
|
|
134
|
+
📊 RECOMENDACIÓN: opus
|
|
135
|
+
Razón: Las decisiones de arquitectura son difíciles de revertir.
|
|
136
|
+
Usar el modelo más capaz reduce errores costosos.
|
|
137
|
+
|
|
138
|
+
Opciones:
|
|
139
|
+
1. opus ← recomendado
|
|
140
|
+
2. sonnet (más barato, OK para proyectos simples)
|
|
141
|
+
3. haiku (no recomendado para este rol)
|
|
142
|
+
|
|
143
|
+
¿Qué modelo?
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Aplica los nombres específicos según las recomendaciones por agente:
|
|
147
|
+
|
|
148
|
+
| Agente | Recomendado | Alternativa OK | Evitar |
|
|
149
|
+
|--------|-------------|----------------|--------|
|
|
150
|
+
| arquitecto | opus | sonnet (proyectos chicos) | haiku |
|
|
151
|
+
| disenador-api | sonnet | opus (APIs complejas) | haiku |
|
|
152
|
+
| asesor-datos | opus | sonnet (BD simple) | haiku |
|
|
153
|
+
| desarrollador-backend | sonnet | opus (lógica compleja) | haiku |
|
|
154
|
+
| desarrollador-frontend | sonnet | opus (UI compleja) | haiku |
|
|
155
|
+
| operaciones | sonnet | haiku (scripts simples) | — |
|
|
156
|
+
| tester | sonnet | haiku (tests simples) | opus (overkill) |
|
|
157
|
+
| revisor | opus | sonnet | haiku |
|
|
158
|
+
| critico | opus | sonnet | haiku |
|
|
159
|
+
| seguridad | opus | — | sonnet, haiku |
|
|
160
|
+
| documentador | sonnet | haiku | opus (overkill) |
|
|
161
|
+
|
|
162
|
+
## PASO 6 — Guardar cambios
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
# Reescribir .sdd/sdd.config.yaml con los cambios
|
|
166
|
+
# Mostrar diff de cambios al usuario
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## PASO 7 — Reportar
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
✅ Configuración actualizada
|
|
173
|
+
📁 .sdd/sdd.config.yaml
|
|
174
|
+
|
|
175
|
+
CAMBIOS:
|
|
176
|
+
~ agentes.desarrollador-frontend.activo: false → true
|
|
177
|
+
~ agentes.tester.modelo: sonnet → haiku
|
|
178
|
+
|
|
179
|
+
Los cambios se aplican a la próxima ejecución de comandos SDD.
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## Modo asistente: Recomendar configuración
|
|
183
|
+
|
|
184
|
+
Si el usuario escribe `/sdd.configurar recomendar`:
|
|
185
|
+
|
|
186
|
+
1. Lee la constitución y detecta el tipo de proyecto
|
|
187
|
+
2. Sugiere un conjunto de agentes y modelos óptimo
|
|
188
|
+
3. Muestra al usuario y pide confirmación
|
|
189
|
+
|
|
190
|
+
Ejemplos:
|
|
191
|
+
- **API REST simple** → desactivar `desarrollador-frontend`
|
|
192
|
+
- **SPA sin backend** → desactivar `desarrollador-backend`, `asesor-datos`, `disenador-api`
|
|
193
|
+
- **MVP / Side project** → bajar modelos a sonnet en todos, mantener opus solo en revisor
|
|
194
|
+
- **Producto enterprise** → mantener opus en todos los críticos
|
|
195
|
+
- **Solo prototipo** → desactivar `critico`, `seguridad`, bajar todo a sonnet/haiku
|