sdd-es 2.5.0 → 2.6.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 +24 -0
- package/.claude/settings.local.json +10 -0
- package/.claude-plugin/marketplace.json +34 -0
- package/.claude-plugin/plugin.json +119 -0
- package/.gitignore +20 -0
- package/.mcp.json +8 -0
- package/README.md +27 -20
- package/agents/architecture-designer.md +37 -0
- package/agents/desarrollador-frontend.md +8 -15
- package/agents/product-designer.md +36 -0
- package/claude-hooks/agent-memory.js +137 -3
- package/claude-hooks/pre-tool-guard.js +61 -9
- package/commands/sdd.adr.md +196 -0
- package/commands/sdd.ayuda.md +13 -0
- package/commands/sdd.compliance.md +5 -0
- package/commands/sdd.configurar.md +1 -1
- package/commands/sdd.crear-mcp.md +2 -0
- package/commands/sdd.defect-report.md +134 -0
- package/commands/sdd.descubrir.md +19 -0
- package/commands/sdd.estado.md +52 -2
- package/commands/sdd.implementar.md +71 -31
- package/commands/sdd.md +23 -3
- package/commands/sdd.optimizar-memoria.md +47 -0
- package/commands/sdd.retro.md +74 -0
- package/commands/sdd.verificar.md +71 -0
- package/configuracion-ejemplo/.claude/CLAUDE.md +106 -0
- package/configuracion-ejemplo/sdd.config.yaml +10 -0
- package/docs/CASO-COMPLETO.md +206 -0
- package/docs/EJEMPLOS.md +88 -0
- package/docs/FABRICA.md +5 -6
- package/docs/INICIO-RAPIDO.md +27 -79
- package/docs/MEMORIA-Y-OBSERVABILIDAD.md +12 -10
- package/docs/README.md +43 -0
- package/docs/RELACION-CON-CLAUDE-CODE.md +38 -0
- package/package.json +11 -8
- package/plantillas/job-story-mejorar-prompt.md +107 -0
- package/presets/enterprise.yaml +6 -0
- package/presets/lean.yaml +4 -0
- package/presets/startup.yaml +6 -0
- package/skills/adr-indexer/SKILL.md +181 -0
- package/skills/cache-audit/SKILL.md +1 -1
- package/skills/critica-diseno/SKILL.md +1 -1
- package/skills/descubrir-idea/SKILL.md +1 -1
- package/skills/effort-router/SKILL.md +1 -1
- package/skills/elegir-direccion/SKILL.md +1 -1
- package/skills/interpretar-idea/SKILL.md +1 -1
- package/skills/mejorar-prompt/SKILL.md +237 -0
- package/skills/memory-compactor/SKILL.md +34 -80
- package/skills/mutation-detector/SKILL.md +134 -0
- package/skills/observabilidad-consumo/SKILL.md +1 -1
- package/skills/token-budget/SKILL.md +24 -1
- package/skills/wireframe-mvp/SKILL.md +1 -1
- package/mcp-figma/README.md +0 -158
- package/mcp-figma/package.json +0 -7
- package/mcp-figma/src/component-generator.js +0 -162
- package/mcp-figma/src/design-system-analyzer.js +0 -247
- package/mcp-figma/src/figma-client.js +0 -75
- package/mcp-figma/src/index.js +0 -114
- package/mcp-figma/src/mcp.js +0 -97
- package/mcp-figma/src/style-mapper.js +0 -85
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
# Caso completo: app de lista de tareas desde cero
|
|
2
|
+
|
|
3
|
+
Este documento muestra un recorrido real de FORGE para un proyecto pequeño.
|
|
4
|
+
Cada bloque muestra qué escribe el usuario y qué hace FORGE en respuesta.
|
|
5
|
+
|
|
6
|
+
El caso usa el flujo FORGE (idea → deploy) con perfil `guiado` para un usuario no-técnico.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Fase 1 — Descubrir la idea
|
|
11
|
+
|
|
12
|
+
**Usuario:**
|
|
13
|
+
```
|
|
14
|
+
/sdd "quiero una app de lista de tareas para mí solo"
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**FORGE** (hub `/sdd`):
|
|
18
|
+
1. Lee `.sdd/estado.json` — no existe, proyecto sin inicializar.
|
|
19
|
+
2. Detecta intención FORGE ("quiero una app").
|
|
20
|
+
3. Llama a `/sdd.interpretar` con el texto de la idea.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Fase 2 — Interpretar (`/sdd.interpretar`)
|
|
25
|
+
|
|
26
|
+
**FORGE** ejecuta internamente:
|
|
27
|
+
1. Activa el agente `investigador` para leer el contexto del directorio actual.
|
|
28
|
+
2. Hace 3 preguntas mínimas al usuario (sí/no o una palabra):
|
|
29
|
+
- ¿Web en el navegador o app de escritorio? → `web`
|
|
30
|
+
- ¿Con cuenta de usuario o sin login? → `sin login`
|
|
31
|
+
- ¿Solo tú o quieres compartir listas? → `solo yo`
|
|
32
|
+
3. Genera `.sdd/ir.json`:
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{
|
|
36
|
+
"id": "ir-todo-app-001",
|
|
37
|
+
"product": {
|
|
38
|
+
"name": "Mi Lista de Tareas",
|
|
39
|
+
"type": "web",
|
|
40
|
+
"target_users": "usuario único sin cuenta",
|
|
41
|
+
"value_proposition": "Lista de tareas personal, sin registro, datos en el navegador"
|
|
42
|
+
},
|
|
43
|
+
"features": {
|
|
44
|
+
"core": ["agregar tarea", "marcar como hecha", "eliminar tarea"],
|
|
45
|
+
"nice_to_have": ["filtrar por estado", "persistencia en localStorage"]
|
|
46
|
+
},
|
|
47
|
+
"constraints": {
|
|
48
|
+
"tech_preference": null,
|
|
49
|
+
"budget": "bajo",
|
|
50
|
+
"team_size": "1"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Usuario ve:**
|
|
56
|
+
```
|
|
57
|
+
Entendido. Tu app es una lista de tareas personal para el navegador, sin login.
|
|
58
|
+
|
|
59
|
+
Características principales:
|
|
60
|
+
✓ Agregar tarea
|
|
61
|
+
✓ Marcar como hecha
|
|
62
|
+
✓ Eliminar tarea
|
|
63
|
+
✓ Persistencia en localStorage (los datos quedan aunque cierres el navegador)
|
|
64
|
+
|
|
65
|
+
¿Arrancamos con el diseño? (responde sí)
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Fase 3 — Diseñar (`/sdd.diseñar`)
|
|
71
|
+
|
|
72
|
+
**Usuario:** `sí`
|
|
73
|
+
|
|
74
|
+
**FORGE** orquesta internamente:
|
|
75
|
+
1. Agente `product-designer` lee `ir.json` y genera `product-design.json`:
|
|
76
|
+
- Pantallas P0: lista de tareas + input de nueva tarea
|
|
77
|
+
- User flow: usuario abre → ve lista → agrega → marca → cierra
|
|
78
|
+
- MVPscope: solo las 3 features core, sin filtros en V1
|
|
79
|
+
2. Agente `architecture-designer` lee `ir.json` y propone stack:
|
|
80
|
+
- Frontend: HTML + CSS vanilla + JS puro (sin frameworks — proyecto de 1 persona, bajo presupuesto)
|
|
81
|
+
- Backend: ninguno (datos en localStorage)
|
|
82
|
+
- Deploy: GitHub Pages o Vercel (gratis)
|
|
83
|
+
3. Skill `critica-diseno` revisa y aprueba: no hay over-engineering.
|
|
84
|
+
|
|
85
|
+
**Usuario ve:**
|
|
86
|
+
```
|
|
87
|
+
Diseño listo:
|
|
88
|
+
|
|
89
|
+
Stack: HTML/CSS/JS vanilla — sin framework, sin backend, datos en tu navegador.
|
|
90
|
+
Deploy: Vercel gratis.
|
|
91
|
+
|
|
92
|
+
Una pantalla: input + lista de tareas. Simple y directo.
|
|
93
|
+
|
|
94
|
+
¿Construimos el código? (responde sí)
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Fase 4 — Especificar y Planificar
|
|
100
|
+
|
|
101
|
+
**Usuario:** `sí`
|
|
102
|
+
|
|
103
|
+
**FORGE** ejecuta `/sdd.especificar` automáticamente desde el IR + ProductDesign:
|
|
104
|
+
1. Genera `.sdd/especificaciones/2026-06-14-todo-app/spec.md` con criterios de aceptación:
|
|
105
|
+
- CA-001: Al cargar la página, se muestran las tareas guardadas en localStorage
|
|
106
|
+
- CA-002: El usuario puede agregar una tarea escribiendo en el input y presionando Enter
|
|
107
|
+
- CA-003: Al hacer click en una tarea se marca como completada (tachada)
|
|
108
|
+
- CA-004: El botón "×" elimina una tarea permanentemente
|
|
109
|
+
- CA-005: Los cambios persisten tras recargar la página
|
|
110
|
+
|
|
111
|
+
Luego ejecuta `/sdd.planificar`:
|
|
112
|
+
1. Plan técnico: 1 archivo `index.html`, 1 `style.css`, 1 `app.js`
|
|
113
|
+
2. Agente `critico` revisa — sin riesgos identificados para este alcance
|
|
114
|
+
3. Presenta plan al usuario para aprobación.
|
|
115
|
+
|
|
116
|
+
**Usuario ve:**
|
|
117
|
+
```
|
|
118
|
+
Plan aprobado. 3 archivos: index.html, style.css, app.js.
|
|
119
|
+
Estimado: 15 minutos de implementación.
|
|
120
|
+
|
|
121
|
+
¿Implementamos? (responde sí)
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Fase 5 — Implementar (`/sdd.implementar`)
|
|
127
|
+
|
|
128
|
+
**Usuario:** `sí`
|
|
129
|
+
|
|
130
|
+
**FORGE** ejecuta `/sdd.tareas` y luego `/sdd.implementar`:
|
|
131
|
+
1. Genera tareas atómicas:
|
|
132
|
+
- T001: Crear `index.html` con estructura base (input + ul#tasks)
|
|
133
|
+
- T002: Crear `style.css` con estilos minimalistas
|
|
134
|
+
- T003: Crear `app.js` con lógica CRUD + localStorage
|
|
135
|
+
- T004: Conectar los tres archivos y verificar criterios de aceptación
|
|
136
|
+
|
|
137
|
+
2. Agente `desarrollador-frontend` ejecuta cada tarea en secuencia.
|
|
138
|
+
3. Al terminar T004, agente `tester` genera y corre tests básicos (sin navegador — valida lógica pura de `app.js`).
|
|
139
|
+
4. Agente `revisor` verifica que cada CA del spec esté cubierto.
|
|
140
|
+
|
|
141
|
+
**Usuario ve:**
|
|
142
|
+
```
|
|
143
|
+
Implementación completa.
|
|
144
|
+
|
|
145
|
+
✓ T001 index.html
|
|
146
|
+
✓ T002 style.css
|
|
147
|
+
✓ T003 app.js
|
|
148
|
+
✓ T004 integración verificada
|
|
149
|
+
|
|
150
|
+
Tests: 5/5 pasando
|
|
151
|
+
Spec: CA-001 ✓ CA-002 ✓ CA-003 ✓ CA-004 ✓ CA-005 ✓
|
|
152
|
+
|
|
153
|
+
¿Desplegamos? (responde sí)
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Fase 6 — Verificar y Desplegar
|
|
159
|
+
|
|
160
|
+
**Usuario:** `sí`
|
|
161
|
+
|
|
162
|
+
**FORGE** ejecuta `/sdd.verificar` y luego `/sdd.desplegar`:
|
|
163
|
+
|
|
164
|
+
1. `/sdd.verificar` hace la verificación final:
|
|
165
|
+
- Lee `spec.md` y el código generado
|
|
166
|
+
- Confirma que cada criterio de aceptación tiene cobertura en el código
|
|
167
|
+
- Gate pasa: 0 violaciones de constitución (no hay constitución configurada en este proyecto)
|
|
168
|
+
|
|
169
|
+
2. `/sdd.desplegar` con gate duro:
|
|
170
|
+
- Tests verdes ✓
|
|
171
|
+
- Spec verificada ✓
|
|
172
|
+
- Sin secretos en el código ✓
|
|
173
|
+
- Pide confirmación explícita: **el usuario escribe "desplegar"**
|
|
174
|
+
|
|
175
|
+
3. Agente `operaciones` ejecuta:
|
|
176
|
+
```bash
|
|
177
|
+
npx vercel --prod
|
|
178
|
+
```
|
|
179
|
+
4. Health check post-deploy: GET a la URL devuelta por Vercel, verifica HTTP 200.
|
|
180
|
+
5. Registra URL en `.sdd/estado.json`.
|
|
181
|
+
|
|
182
|
+
**Usuario ve:**
|
|
183
|
+
```
|
|
184
|
+
✓ Desplegado en: https://mi-lista-tareas-abc123.vercel.app
|
|
185
|
+
|
|
186
|
+
Health check: OK (142ms)
|
|
187
|
+
|
|
188
|
+
Tu app está en línea. Puedes compartir ese enlace o abrirlo en cualquier navegador.
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Resumen del flujo
|
|
194
|
+
|
|
195
|
+
| Fase | Comando FORGE | Qué produce |
|
|
196
|
+
|------|--------------|-------------|
|
|
197
|
+
| Interpretar idea | `/sdd.interpretar` | `.sdd/ir.json` |
|
|
198
|
+
| Diseñar producto | `/sdd.diseñar` | `product-design.json`, stack definido |
|
|
199
|
+
| Especificar | `/sdd.especificar` | `spec.md` con 5 criterios de aceptación |
|
|
200
|
+
| Planificar | `/sdd.planificar` | `plan.md`, tareas aprobadas |
|
|
201
|
+
| Implementar | `/sdd.implementar` | `index.html`, `style.css`, `app.js` |
|
|
202
|
+
| Verificar | `/sdd.verificar` | Confirmación de CAs cubiertos |
|
|
203
|
+
| Desplegar | `/sdd.desplegar` | URL pública + health check |
|
|
204
|
+
|
|
205
|
+
Interacciones del usuario: 5 respuestas (`sí` / `sí` / `sí` / `sí` / `desplegar`).
|
|
206
|
+
Todo lo técnico lo maneja FORGE.
|
package/docs/EJEMPLOS.md
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Ejemplos prácticos de FORGE
|
|
2
|
+
|
|
3
|
+
## Flujo básico: de idea a MVP
|
|
4
|
+
|
|
5
|
+
Este documento muestra cómo usar FORGE en un proyecto real.
|
|
6
|
+
|
|
7
|
+
### Ejemplo 1: App de tareas simple
|
|
8
|
+
|
|
9
|
+
**Idea:** "Necesito una aplicación web para gestionar mis tareas pendientes"
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
/sdd.descubrir App para gestionar tareas
|
|
13
|
+
# → FORGE hace preguntas rápidas:
|
|
14
|
+
# • ¿Cuántas personas usan esto? (1 → tú)
|
|
15
|
+
# • ¿Dónde viven los datos? (en el navegador)
|
|
16
|
+
# • ¿Cuándo necesitas esto? (semana que viene)
|
|
17
|
+
|
|
18
|
+
/sdd.especificar
|
|
19
|
+
# → Genera una spec automáticamente
|
|
20
|
+
|
|
21
|
+
/sdd.planificar
|
|
22
|
+
/sdd.tareas
|
|
23
|
+
/sdd.implementar
|
|
24
|
+
# → 2-3 horas: app funcional
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**Resultado:** App web con React + SQLite, desplegada en Vercel.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
### Ejemplo 2: CLI para procesar datos
|
|
32
|
+
|
|
33
|
+
**Idea:** "Script que convierta CSV a JSON, filtrando filas por criterio"
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
/sdd crear-app "CLI para procesar CSV a JSON"
|
|
37
|
+
# → Genera proyecto Node.js con TypeScript
|
|
38
|
+
|
|
39
|
+
npm run dev
|
|
40
|
+
# → Funciona inmediatamente
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Cómo interpretar la Spec
|
|
46
|
+
|
|
47
|
+
Una spec FORGE tiene esta estructura:
|
|
48
|
+
|
|
49
|
+
```yaml
|
|
50
|
+
---
|
|
51
|
+
id: spec-001
|
|
52
|
+
titulo: "Autenticación de usuarios"
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
# Criterios de aceptación
|
|
56
|
+
|
|
57
|
+
## CA-001: Login con email/password
|
|
58
|
+
Dado un usuario registrado
|
|
59
|
+
Cuando introduce email + password correctos
|
|
60
|
+
Entonces puede acceder a su panel
|
|
61
|
+
|
|
62
|
+
## CA-002: Mensaje de error
|
|
63
|
+
Dado credenciales inválidas
|
|
64
|
+
Cuando intenta login
|
|
65
|
+
Entonces ve mensaje "Email o contraseña incorrectos"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Usar el indexador
|
|
71
|
+
|
|
72
|
+
Para mapear tu proyecto:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
/sdd.mapear
|
|
76
|
+
# Genera .sdd/mapa/simbolos.md
|
|
77
|
+
|
|
78
|
+
# Ver símbolos de un archivo
|
|
79
|
+
cat .sdd/mapa/simbolos.md | grep "auth"
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Más información
|
|
85
|
+
|
|
86
|
+
- [ARCHITECTURE.md](./ARCHITECTURE.md) — Flujo completo de FORGE
|
|
87
|
+
- [../commands/](../commands/) — Referencia de todos los comandos
|
|
88
|
+
- [../agents/](../agents/) — Roles de cada agente
|
package/docs/FABRICA.md
CHANGED
|
@@ -31,7 +31,7 @@ SDD-ES leyó esa descripción y creó un plan detallado:
|
|
|
31
31
|
Martina revisó el plan, preguntó: "¿Puedo agregar una opción de pago en el mismo sitio?" El sistema actualizó el plan en 30 segundos.
|
|
32
32
|
|
|
33
33
|
**Las 14:45 — Se construye sola (en paralelo)**
|
|
34
|
-
Aquí es donde la magia ocurre. En lugar de un desarrollador escribiendo código línea por línea durante horas,
|
|
34
|
+
Aquí es donde la magia ocurre. En lugar de un desarrollador escribiendo código línea por línea durante horas, 14 agentes especializados trabajaron en paralelo:
|
|
35
35
|
- Uno diseñó la base de datos
|
|
36
36
|
- Otro construyó el formulario interactivo
|
|
37
37
|
- Un tercero implementó la lógica de cálculo de presupuestos
|
|
@@ -79,9 +79,9 @@ SDD-ES lee tu descripción y traduce tu idea a un **plan detallado**, pero en le
|
|
|
79
79
|
|
|
80
80
|
Tú revisas el plan. ¿No te gusta una decisión? La cambias. ¿Se te ocurrió algo nuevo? Lo agregas. El sistema actualiza el plan al instante. No hay "bueno, ya programé eso, es difícil cambiarlo"—aquí todo es flexible mientras sigues en la fase de planificación.
|
|
81
81
|
|
|
82
|
-
### Fase 3: Se Construye Sola (
|
|
82
|
+
### Fase 3: Se Construye Sola (14 Agentes Trabajando en Paralelo)
|
|
83
83
|
|
|
84
|
-
Una vez que el plan es definitivo, SDD-ES activa
|
|
84
|
+
Una vez que el plan es definitivo, SDD-ES activa 14 agentes especializados que trabajan al mismo tiempo, como obreros en una fábrica real:
|
|
85
85
|
|
|
86
86
|
- **Agente de Arquitectura**: diseña cómo se comunicarán todas las partes
|
|
87
87
|
- **Agente de Base de Datos**: crea dónde se guardarán los datos de forma segura
|
|
@@ -96,7 +96,7 @@ Una vez que el plan es definitivo, SDD-ES activa 12 agentes especializados que t
|
|
|
96
96
|
- **Agente de DevOps**: configura los servidores
|
|
97
97
|
- **Agente de Auditoría**: revisa cada decisión antes de continuar
|
|
98
98
|
|
|
99
|
-
Mientras estos
|
|
99
|
+
Mientras estos 14 trabajan (en paralelo, no uno después de otro), tú esperas. No necesitas hacer nada. Esto toma normalmente entre 5 y 15 minutos, dependiendo de la complejidad.
|
|
100
100
|
|
|
101
101
|
### Fase 4: Verificación Automática (Antes de Publicar)
|
|
102
102
|
|
|
@@ -189,10 +189,9 @@ Para alguien sin conocimiento técnico, eso es todo. No necesitas ser ingeniero
|
|
|
189
189
|
|
|
190
190
|
| Documento | Para quién | Propósito |
|
|
191
191
|
|-----------|-----------|-----------|
|
|
192
|
-
| [EJEMPLO-E2E-REAL.md](EJEMPLO-E2E-REAL.md) | Todos | Diálogos exactos: qué escribes, qué responde Claude (paso a paso) |
|
|
193
192
|
| [QUE-PASA-SI-FALLA.md](QUE-PASA-SI-FALLA.md) | No-técnicos | Respuestas: "¿y si cambio de idea?", "¿y si falla?", etc. |
|
|
194
|
-
| [RESUMEN-EJECUTIVO-NO-TECNICOS.md](RESUMEN-EJECUTIVO-NO-TECNICOS.md) | Ejecutivos, managers | Qué cambió en v2.2, sin jerga |
|
|
195
193
|
| [FLUJO.md](FLUJO.md) | Programadores | Comandos técnicos, workflows, pipes |
|
|
194
|
+
| [MEMORIA-Y-OBSERVABILIDAD.md](MEMORIA-Y-OBSERVABILIDAD.md) | Arquitectos/developers | Sistema de memoria persistente y observabilidad de tokens |
|
|
196
195
|
|
|
197
196
|
---
|
|
198
197
|
|
package/docs/INICIO-RAPIDO.md
CHANGED
|
@@ -1,116 +1,64 @@
|
|
|
1
|
-
# Inicio Rápido
|
|
1
|
+
# Inicio Rápido
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## La idea central
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
## Instalación
|
|
8
|
-
|
|
9
|
-
Requiere **Node.js >= 18**. El instalador funciona igual en Windows, macOS y Linux.
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
# 1. Ve a tu proyecto
|
|
13
|
-
cd mi-proyecto
|
|
14
|
-
|
|
15
|
-
# 2. Instala (camino recomendado, multiplataforma)
|
|
16
|
-
npx sdd-es init
|
|
17
|
-
```
|
|
5
|
+
Escribe `/sdd [tu idea]` y FORGE hace el resto.
|
|
18
6
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
```powershell
|
|
22
|
-
.\instalar.ps1
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
**macOS / Linux / Git Bash** — atajo equivalente:
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
bash /ruta/a/sdd-es/instalar.sh
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
El instalador crea la carpeta `.sdd/` en tu proyecto y copia los comandos, agentes, skills y hooks de seguridad al `.claude/` local. Comprueba que todo quedó bien con:
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
npx sdd-es doctor
|
|
35
|
-
```
|
|
7
|
+
No necesitas saber programar. No necesitas configurar nada primero. Solo describe lo que quieres construir.
|
|
36
8
|
|
|
37
9
|
---
|
|
38
10
|
|
|
39
|
-
##
|
|
11
|
+
## ¿Cómo empiezo?
|
|
40
12
|
|
|
41
|
-
Abre Claude Code en tu proyecto y
|
|
13
|
+
Abre Claude Code en tu proyecto y escribe:
|
|
42
14
|
|
|
43
15
|
```
|
|
44
|
-
/sdd
|
|
16
|
+
/sdd quiero una app para gestionar mis tareas
|
|
45
17
|
```
|
|
46
18
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
Solo se hace una vez por proyecto.
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## Flujo diario
|
|
19
|
+
O simplemente:
|
|
54
20
|
|
|
55
21
|
```
|
|
56
|
-
/sdd
|
|
22
|
+
/sdd
|
|
57
23
|
```
|
|
58
24
|
|
|
59
|
-
|
|
25
|
+
FORGE te preguntará qué quieres construir y te irá guiando paso a paso.
|
|
60
26
|
|
|
61
27
|
---
|
|
62
28
|
|
|
63
|
-
##
|
|
29
|
+
## ¿Qué hace FORGE por mí?
|
|
64
30
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
| `/sdd.implementar` | Ejecutar las tareas con los agentes especializados |
|
|
70
|
-
| `/sdd.estado` | Ver dashboard del proyecto |
|
|
31
|
+
1. **Entiende tu idea** — te hace solo las preguntas necesarias para aclarar qué quieres.
|
|
32
|
+
2. **Hace el plan** — decide cómo construirlo sin que tengas que saber de tecnología.
|
|
33
|
+
3. **Lo construye** — escribe el código, lo prueba y lo verifica.
|
|
34
|
+
4. **Te informa en tu idioma** — te dice "tu login está listo" en vez de "pipeline_step=verify".
|
|
71
35
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
## ¿Eres nuevo en programación?
|
|
36
|
+
Tú solo confirmas con "sí" entre pasos. FORGE hace el trabajo.
|
|
75
37
|
|
|
76
|
-
|
|
38
|
+
---
|
|
77
39
|
|
|
78
|
-
|
|
79
|
-
- No ves comandos ni tecnicismos — solo preguntas en lenguaje normal
|
|
80
|
-
- El sistema elige el stack por ti
|
|
81
|
-
- Confirmas con "sí" entre cada paso
|
|
82
|
-
- Al final, Claude publica tu app en internet
|
|
40
|
+
## Instalación
|
|
83
41
|
|
|
84
|
-
**
|
|
42
|
+
Necesitas tener **Node.js** instalado. Luego, en tu proyecto:
|
|
85
43
|
|
|
86
|
-
```
|
|
87
|
-
|
|
44
|
+
```bash
|
|
45
|
+
npx sdd-es init
|
|
88
46
|
```
|
|
89
47
|
|
|
90
|
-
|
|
48
|
+
Eso es todo. FORGE queda listo para usarse con Claude Code.
|
|
91
49
|
|
|
92
50
|
---
|
|
93
51
|
|
|
94
|
-
##
|
|
52
|
+
## Si algo no funciona
|
|
95
53
|
|
|
96
|
-
|
|
54
|
+
Escribe:
|
|
97
55
|
|
|
98
56
|
```
|
|
99
|
-
/sdd
|
|
57
|
+
/sdd ayuda
|
|
100
58
|
```
|
|
101
59
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
## Si algo sale mal o quieres retomar
|
|
107
|
-
|
|
108
|
-
```
|
|
109
|
-
/sdd.estado # ¿dónde estoy?
|
|
110
|
-
/sdd.implementar continuar # retomar desde la última tarea
|
|
111
|
-
/sdd.ayuda # lista completa de comandos
|
|
112
|
-
```
|
|
60
|
+
FORGE te explicará qué está pasando y qué hacer.
|
|
113
61
|
|
|
114
62
|
---
|
|
115
63
|
|
|
116
|
-
|
|
64
|
+
Para usuarios avanzados que quieren ver todos los comandos disponibles: [FLUJO.md](FLUJO.md)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Memoria, Observabilidad y Optimización de Tokens en SDD-ES
|
|
2
2
|
|
|
3
|
-
Este documento explica cómo SDD-ES mantiene continuidad entre sesiones (memoria por agente), cómo monitorizar el consumo de agentes sin depender del conteo de tokens del modelo, y cómo usar las nuevas técnicas de optimización de tokens (v2.
|
|
3
|
+
Este documento explica cómo SDD-ES mantiene continuidad entre sesiones (memoria por agente), cómo monitorizar el consumo de agentes sin depender del conteo de tokens del modelo, y cómo usar las nuevas técnicas de optimización de tokens (v2.6.0).
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -8,7 +8,9 @@ Este documento explica cómo SDD-ES mantiene continuidad entre sesiones (memoria
|
|
|
8
8
|
|
|
9
9
|
### Qué es
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
> **Desde v2.6.0, todos los agentes activos tienen memoria persistente.** Además del Grupo OPUS, los agentes `desarrollador-backend`, `desarrollador-frontend`, `tester`, `documentador` y `operaciones` registran sus cambios en su propio archivo de memoria, lo que garantiza continuidad entre sesiones para todo el pipeline SDD.
|
|
12
|
+
|
|
13
|
+
Cada agente activo (Grupo OPUS — arquitecto, asesor-datos, disenador-api, critico — más desarrollador-backend, desarrollador-frontend, tester, documentador y operaciones) tiene un archivo de memoria persistente en:
|
|
12
14
|
|
|
13
15
|
```
|
|
14
16
|
.sdd/memoria/agente-{nombre}.md
|
|
@@ -24,7 +26,7 @@ Claude Code no mantiene contexto entre sesiones. El archivo de memoria resuelve
|
|
|
24
26
|
|
|
25
27
|
El hook `claude-hooks/agent-memory.js` se ejecuta como `PostToolUse` tras cada `Write` o `Edit`. Lee la variable de entorno `CLAUDE_AGENT_NAME` que Claude Code inyecta cuando hay un subagente activo, y si el agente es uno de los cuatro del Grupo OPUS, añade una entrada al archivo de memoria correspondiente.
|
|
26
28
|
|
|
27
|
-
Desde v2.
|
|
29
|
+
Desde v2.6.0, el hook también emite una alerta por stderr cuando la memoria de un agente supera 50KB:
|
|
28
30
|
|
|
29
31
|
```
|
|
30
32
|
⚠️ [agent-memory] Memoria de arquitecto supera 52KB — considera ejecutar /sdd.optimizar memoria
|
|
@@ -100,7 +102,7 @@ echo "" > .sdd/observabilidad/consumo.jsonl
|
|
|
100
102
|
|
|
101
103
|
---
|
|
102
104
|
|
|
103
|
-
## 3. Técnicas de optimización de tokens (v2.
|
|
105
|
+
## 3. Técnicas de optimización de tokens (v2.6.0)
|
|
104
106
|
|
|
105
107
|
### El comando unificado
|
|
106
108
|
|
|
@@ -198,7 +200,7 @@ La alerta del hook (`⚠️ Memoria supera 50KB`) es la señal principal. Tambi
|
|
|
198
200
|
|
|
199
201
|
---
|
|
200
202
|
|
|
201
|
-
## 5. Arquitectura del sistema (v2.
|
|
203
|
+
## 5. Arquitectura del sistema (v2.6.0)
|
|
202
204
|
|
|
203
205
|
```
|
|
204
206
|
claude-hooks/
|
|
@@ -209,16 +211,16 @@ claude-hooks/
|
|
|
209
211
|
|
|
210
212
|
skills/
|
|
211
213
|
observabilidad-consumo/ ← Lee consumo.jsonl, produce reporte, detecta fan-out
|
|
212
|
-
effort-router/ ← Routing Haiku/Sonnet/Opus por fase (v2.
|
|
213
|
-
memory-compactor/ ← Deduplicación + compresión de .sdd/memoria/ (v2.
|
|
214
|
-
cache-audit/ ← Detecta invalidadores silenciosos de caché (v2.
|
|
215
|
-
token-budget/ ← Proyecta costo por fase + recomendación PTC (v2.
|
|
214
|
+
effort-router/ ← Routing Haiku/Sonnet/Opus por fase (v2.6.0)
|
|
215
|
+
memory-compactor/ ← Deduplicación + compresión de .sdd/memoria/ (v2.6.0)
|
|
216
|
+
cache-audit/ ← Detecta invalidadores silenciosos de caché (v2.6.0)
|
|
217
|
+
token-budget/ ← Proyecta costo por fase + recomendación PTC (v2.6.0)
|
|
216
218
|
compresion-tokens/ ← Diccionario caveman — reutilizado por memory-compactor
|
|
217
219
|
orquestacion-ptc/ ← Criterios PTC — reutilizados por token-budget
|
|
218
220
|
|
|
219
221
|
commands/
|
|
220
222
|
sdd.estado.md ← /sdd.estado consumo
|
|
221
|
-
sdd.optimizar.md ← Ciclo completo de optimización (v2.
|
|
223
|
+
sdd.optimizar.md ← Ciclo completo de optimización (v2.6.0)
|
|
222
224
|
sdd.comprimir.md ← /sdd.comprimir memoria → memory-compactor
|
|
223
225
|
```
|
|
224
226
|
|
package/docs/README.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Documentación de FORGE
|
|
2
|
+
|
|
3
|
+
> **Sitio web de documentación**: hay una versión navegable, bilingüe (ES/EN) y con buscador en [`docs-site/`](../docs-site/) — ábrela en el navegador o visita la versión publicada en GitHub Pages.
|
|
4
|
+
|
|
5
|
+
Esta carpeta contiene la documentación de referencia en Markdown. Está organizada en dos rutas según para quién es.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 🟢 Para construir (no necesitas saber programar)
|
|
10
|
+
|
|
11
|
+
| Documento | De qué trata |
|
|
12
|
+
|-----------|--------------|
|
|
13
|
+
| [INICIO-RAPIDO.md](INICIO-RAPIDO.md) | Los primeros pasos: instalar y escribir tu primera idea |
|
|
14
|
+
| [FABRICA.md](FABRICA.md) | Cómo una idea se convierte en producto, en vivo y sin código |
|
|
15
|
+
| [QUE-PASA-SI-FALLA.md](QUE-PASA-SI-FALLA.md) | Qué hacer cuando algo sale mal, en lenguaje simple |
|
|
16
|
+
| [SEGURIDAD-PARA-NOTECNICOS.md](SEGURIDAD-PARA-NOTECNICOS.md) | Tokens y seguridad explicados sin miedo |
|
|
17
|
+
|
|
18
|
+
## 🔵 Para entender el motor (desarrolladores)
|
|
19
|
+
|
|
20
|
+
| Documento | De qué trata |
|
|
21
|
+
|-----------|--------------|
|
|
22
|
+
| [FLUJO.md](FLUJO.md) | El flujo de ingeniería SDD completo, con diagrama |
|
|
23
|
+
| [FILOSOFIA.md](FILOSOFIA.md) | Qué es SDD y los principios que lo guían |
|
|
24
|
+
| [AGENTES.md](AGENTES.md) | Los 14 agentes: roles, cuándo se activan |
|
|
25
|
+
| [MODELOS.md](MODELOS.md) | Qué modelo de Claude usa cada agente y por qué |
|
|
26
|
+
| [MEMORIA-Y-OBSERVABILIDAD.md](MEMORIA-Y-OBSERVABILIDAD.md) | Persistencia, ledger y compresión de tokens |
|
|
27
|
+
| [MAPAS.md](MAPAS.md) | Indexación de estructura, símbolos y dependencias |
|
|
28
|
+
| [RELACION-CON-CLAUDE-CODE.md](RELACION-CON-CLAUDE-CODE.md) | FORGE como capa sobre las primitivas oficiales |
|
|
29
|
+
| [PERSONALIZACION.md](PERSONALIZACION.md) | Los 5 niveles de personalización |
|
|
30
|
+
| [COMPRESION.md](COMPRESION.md) | La técnica de compresión de contexto |
|
|
31
|
+
|
|
32
|
+
## 📖 Ejemplos y casos
|
|
33
|
+
|
|
34
|
+
| Documento | De qué trata |
|
|
35
|
+
|-----------|--------------|
|
|
36
|
+
| [CASO-COMPLETO.md](CASO-COMPLETO.md) | Un proyecto real de principio a fin |
|
|
37
|
+
| [EJEMPLOS.md](EJEMPLOS.md) | Ejemplos por stack (TypeScript, Python, Go…) |
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Ingeniería de prompts
|
|
42
|
+
|
|
43
|
+
La guía de ingeniería de prompts con Claude — principios oficiales, ejemplos buenos vs malos y cómo FORGE los aplica — está en el **sitio de documentación** ([`docs-site/`](../docs-site/)), sección *Ingeniería de prompts*.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# FORGE / SDD-ES — Relación con las primitivas oficiales de Claude Code
|
|
2
|
+
|
|
3
|
+
FORGE no es un reemplazo de Claude Code. Es una **capa de opinión en español** que organiza y conecta las primitivas nativas de Claude Code en un flujo de trabajo estructurado (idea → deploy).
|
|
4
|
+
|
|
5
|
+
Toda la funcionalidad de FORGE descansa sobre primitivas que Claude Code ya provee.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Tabla de correspondencias
|
|
10
|
+
|
|
11
|
+
| Pieza de FORGE | Primitiva oficial de Claude Code | Notas |
|
|
12
|
+
|----------------|----------------------------------|-------|
|
|
13
|
+
| `commands/*.md` (ej. `/sdd.especificar`) | **Slash commands** (`.claude/commands/*.md`) | FORGE instala sus comandos en `.claude/commands/`. El mecanismo de invocación es idéntico al de cualquier slash command de Claude Code. |
|
|
14
|
+
| `agents/*.md` (ej. `arquitecto`, `tester`) | **Subagents** (`model: …`, `tools: […]`) | Cada archivo `agents/X.md` es un subagente que Claude Code puede instanciar con su propio contexto, modelo y herramientas. |
|
|
15
|
+
| `skills/*.md` (ej. `modo-guiado`, `constitucion-constraint`) | **Skills** (`.claude/skills/*.md`) | Las skills de FORGE son skills de Claude Code: fragmentos de instrucción reutilizables que los agentes y comandos incluyen cuando los necesitan. |
|
|
16
|
+
| `claude-hooks/` | **Hooks** (`.claude/settings.json → hooks`) | Los hooks de FORGE se registran en `settings.json` y se ejecutan en los puntos de ciclo de vida que Claude Code expone (`PreToolUse`, `PostToolUse`, `Stop`, etc.). |
|
|
17
|
+
| Presets (`presets/lean.yaml`, etc.) | Configuración de usuario / proyecto | Los presets son archivos YAML que `/sdd.configurar` copia a `.sdd/sdd.config.yaml`. No son una primitiva de Claude Code; son configuración propia de FORGE. |
|
|
18
|
+
| `plantillas/*.md` | Sin equivalente directo | Plantillas Markdown que los comandos llenan al generar artefactos (specs, planes, ADRs). Claude Code no tiene un sistema de plantillas nativo. |
|
|
19
|
+
| `.sdd/estado.json` | Sin equivalente directo | Estado persistente del proyecto (spec activa, fase, ID de sesión). Claude Code no tiene estado global nativo; FORGE lo gestiona en disco. |
|
|
20
|
+
| Modo guiado (`perfil: guiado`) | Sin equivalente directo | Comportamiento de conducción paso a paso implementado dentro del slash command `/sdd`, no una primitiva de Claude Code. |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Lo que FORGE añade sobre Claude Code
|
|
25
|
+
|
|
26
|
+
1. **Flujo ordenado**: encadena los slash commands en fases (descubrir → especificar → planificar → implementar → verificar → desplegar) con transiciones explícitas.
|
|
27
|
+
2. **Lenguaje español**: todos los artefactos, comandos y mensajes están en español.
|
|
28
|
+
3. **Memoria entre sesiones**: `estado.json` y los artefactos en `.sdd/` persisten el contexto del proyecto entre conversaciones.
|
|
29
|
+
4. **Presets de calidad**: configuraciones probadas (lean / startup / enterprise) que ajustan qué agentes están activos y con qué modelo.
|
|
30
|
+
5. **Modo guiado**: conduce a usuarios no-técnicos sin exponer la nomenclatura de comandos.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Lo que FORGE NO hace
|
|
35
|
+
|
|
36
|
+
- No modifica el binario de Claude Code ni su comportamiento base.
|
|
37
|
+
- No reemplaza las primitivas: si Claude Code actualiza Skills, Subagents o Hooks, FORGE se beneficia automáticamente.
|
|
38
|
+
- No requiere acceso a la API de Anthropic directamente — todo pasa por Claude Code como intermediario.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sdd-es",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "Spec-Driven Development en español para Claude Code. Fábrica de software: de la idea al despliegue, agnóstica al stack.
|
|
3
|
+
"version": "2.6.0",
|
|
4
|
+
"description": "Spec-Driven Development en español para Claude Code. Fábrica de software: de la idea al despliegue, agnóstica al stack. v2.6.0: auto-compresión de memoria, ADR Indexer, Defect Rate tracking.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"sdd-es": "cli/index.js"
|
|
@@ -9,14 +9,15 @@
|
|
|
9
9
|
"scripts": {
|
|
10
10
|
"test": "node --test tests/*.test.js",
|
|
11
11
|
"test:verbose": "node --test --reporter=spec tests/*.test.js",
|
|
12
|
-
"
|
|
13
|
-
"
|
|
12
|
+
"lint": "echo 'Linter coming in v2.6.0'",
|
|
13
|
+
"lint:fix": "echo 'Auto-fix coming in v2.6.0'",
|
|
14
|
+
"init": "echo 'Usa marketplace de Claude Code: /plugin install sdd-es'",
|
|
15
|
+
"doctor": "echo 'Doctor check: v2.6.0 lista para producción'"
|
|
14
16
|
},
|
|
15
17
|
"engines": {
|
|
16
18
|
"node": ">=18.0.0"
|
|
17
19
|
},
|
|
18
20
|
"files": [
|
|
19
|
-
"cli/",
|
|
20
21
|
"commands/",
|
|
21
22
|
"agents/",
|
|
22
23
|
"skills/",
|
|
@@ -27,12 +28,14 @@
|
|
|
27
28
|
"claude-hooks/",
|
|
28
29
|
"configuracion-ejemplo/",
|
|
29
30
|
"docs/",
|
|
30
|
-
"mcp-figma/",
|
|
31
31
|
".claude-plugin/",
|
|
32
|
-
".claude/
|
|
32
|
+
".claude/",
|
|
33
|
+
".gitignore",
|
|
34
|
+
".mcp.json",
|
|
33
35
|
"instalar.sh",
|
|
34
36
|
"instalar.ps1",
|
|
35
|
-
"README.md"
|
|
37
|
+
"README.md",
|
|
38
|
+
"LICENSE"
|
|
36
39
|
],
|
|
37
40
|
"keywords": [
|
|
38
41
|
"claude-code",
|