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,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"deny": [
|
|
4
|
+
"Bash(git push --force*)",
|
|
5
|
+
"Bash(git push -f*)",
|
|
6
|
+
"Bash(git push* :*)",
|
|
7
|
+
"Bash(git reset --hard*)",
|
|
8
|
+
"Bash(git clean -f*)",
|
|
9
|
+
"Bash(git clean -xfd*)",
|
|
10
|
+
"Bash(rm -rf /*)",
|
|
11
|
+
"Bash(rm -rf ~*)",
|
|
12
|
+
"Bash(rm -rf .*)",
|
|
13
|
+
"Bash(cat .env)",
|
|
14
|
+
"Bash(cat .env.*)",
|
|
15
|
+
"Bash(type .env*)",
|
|
16
|
+
"Bash(DROP DATABASE*)",
|
|
17
|
+
"Bash(DROP SCHEMA*)",
|
|
18
|
+
"Bash(terraform destroy*)",
|
|
19
|
+
"Bash(kubectl delete namespace*)",
|
|
20
|
+
"Bash(npm publish*)",
|
|
21
|
+
"Bash(cargo publish*)",
|
|
22
|
+
"PowerShell(Get-Content .env*)",
|
|
23
|
+
"PowerShell(Remove-Item -Recurse -Force C:\\*)",
|
|
24
|
+
"PowerShell(Remove-Item -Recurse -Force /*)"
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
"hooks": {
|
|
28
|
+
"PreToolUse": [
|
|
29
|
+
{
|
|
30
|
+
"matcher": "Bash|PowerShell",
|
|
31
|
+
"hooks": [
|
|
32
|
+
{
|
|
33
|
+
"type": "command",
|
|
34
|
+
"command": "node .claude/hooks/pre-tool-guard.js"
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"PostToolUse": [
|
|
40
|
+
{
|
|
41
|
+
"matcher": "Write|Edit|MultiEdit",
|
|
42
|
+
"hooks": [
|
|
43
|
+
{
|
|
44
|
+
"type": "command",
|
|
45
|
+
"command": "node .claude/hooks/post-write-conventions.js"
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "sdd-es-marketplace",
|
|
3
|
+
"owner": {
|
|
4
|
+
"name": "SDD-ES",
|
|
5
|
+
"url": "https://github.com/tu-usuario/sdd-es"
|
|
6
|
+
},
|
|
7
|
+
"metadata": {
|
|
8
|
+
"description": "Marketplace de SDD-ES — Spec-Driven Development en español para Claude Code.",
|
|
9
|
+
"version": "2.0.0"
|
|
10
|
+
},
|
|
11
|
+
"plugins": [
|
|
12
|
+
{
|
|
13
|
+
"name": "sdd-es",
|
|
14
|
+
"source": "./",
|
|
15
|
+
"description": "Fábrica de software agnóstica al stack: de la idea al despliegue, con 12 agentes especializados, mapas y compresión de tokens.",
|
|
16
|
+
"version": "2.0.0",
|
|
17
|
+
"author": {
|
|
18
|
+
"name": "SDD-ES"
|
|
19
|
+
},
|
|
20
|
+
"homepage": "https://github.com/tu-usuario/sdd-es",
|
|
21
|
+
"license": "MIT",
|
|
22
|
+
"keywords": [
|
|
23
|
+
"spec-driven-development",
|
|
24
|
+
"español",
|
|
25
|
+
"agentes",
|
|
26
|
+
"mcp",
|
|
27
|
+
"agnóstico-al-stack"
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "sdd-es",
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "Spec-Driven Development en español. Fábrica de software agnóstica al stack: de la idea al despliegue. Con mapas y compresión de tokens.",
|
|
5
|
+
"homepage": "https://github.com/carlos060798/sdd-lite",
|
|
6
|
+
"repository": "https://github.com/carlos060798/sdd-lite",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"instructions": "El usuario corre comandos /sdd.* para guiar el flujo SDD-ES. El plugin orquesta 12 agentes especializados.",
|
|
9
|
+
|
|
10
|
+
"commands": [
|
|
11
|
+
"sdd",
|
|
12
|
+
"sdd.constitucion",
|
|
13
|
+
"sdd.configurar",
|
|
14
|
+
"sdd.descubrir",
|
|
15
|
+
"sdd.especificar",
|
|
16
|
+
"sdd.importar",
|
|
17
|
+
"sdd.aclarar",
|
|
18
|
+
"sdd.checklist",
|
|
19
|
+
"sdd.planificar",
|
|
20
|
+
"sdd.tareas",
|
|
21
|
+
"sdd.analizar",
|
|
22
|
+
"sdd.implementar",
|
|
23
|
+
"sdd.qa",
|
|
24
|
+
"sdd.verificar",
|
|
25
|
+
"sdd.desplegar",
|
|
26
|
+
"sdd.canary",
|
|
27
|
+
"sdd.snapshot",
|
|
28
|
+
"sdd.retro",
|
|
29
|
+
"sdd.release",
|
|
30
|
+
"sdd.glosario",
|
|
31
|
+
"sdd.estado",
|
|
32
|
+
"sdd.mapear",
|
|
33
|
+
"sdd.comprimir",
|
|
34
|
+
"sdd.ayuda",
|
|
35
|
+
"sdd.crear-mcp",
|
|
36
|
+
"sdd.crear-app"
|
|
37
|
+
],
|
|
38
|
+
|
|
39
|
+
"agents": [
|
|
40
|
+
"arquitecto",
|
|
41
|
+
"disenador-api",
|
|
42
|
+
"asesor-datos",
|
|
43
|
+
"desarrollador-backend",
|
|
44
|
+
"desarrollador-frontend",
|
|
45
|
+
"operaciones",
|
|
46
|
+
"tester",
|
|
47
|
+
"revisor",
|
|
48
|
+
"critico",
|
|
49
|
+
"seguridad",
|
|
50
|
+
"investigador",
|
|
51
|
+
"documentador"
|
|
52
|
+
],
|
|
53
|
+
|
|
54
|
+
"skills": [
|
|
55
|
+
"deteccion-stack",
|
|
56
|
+
"gestion-estado",
|
|
57
|
+
"validacion-spec",
|
|
58
|
+
"enrutador-agentes",
|
|
59
|
+
"verificador-implementacion",
|
|
60
|
+
"indexador",
|
|
61
|
+
"compresion-tokens",
|
|
62
|
+
"constitucion-constraint",
|
|
63
|
+
"modo-guiado",
|
|
64
|
+
"orquestacion-ptc"
|
|
65
|
+
],
|
|
66
|
+
|
|
67
|
+
"mcpServers": {
|
|
68
|
+
"sdd-figma": {
|
|
69
|
+
"description": "Integración con Figma para el agente desarrollador-frontend. Analiza el sistema de diseño local, trae componentes de Figma y genera código adaptado.",
|
|
70
|
+
"command": "node",
|
|
71
|
+
"args": ["{PLUGIN_DIR}/mcp-figma/dist/index.js"],
|
|
72
|
+
"requiredBy": ["desarrollador-frontend"],
|
|
73
|
+
"activatesOn": ["ui", "componente", "interfaz", "diseño", "vista", "figma", "layout"]
|
|
74
|
+
},
|
|
75
|
+
"navegador": {
|
|
76
|
+
"description": "Navegador real (Playwright) para QA E2E del comando /sdd.qa: ejecuta casos generados desde los Criterios de Aceptación en un navegador de verdad. Se usa un MCP existente, no se mantiene uno propio.",
|
|
77
|
+
"command": "npx",
|
|
78
|
+
"args": ["-y", "@playwright/mcp@latest"],
|
|
79
|
+
"requiredBy": ["tester"],
|
|
80
|
+
"activatesOn": ["qa", "navegador", "e2e", "prueba", "probar", "playwright"],
|
|
81
|
+
"opcional": true
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
|
|
85
|
+
"features": [
|
|
86
|
+
"Spec-Driven Development",
|
|
87
|
+
"12 agentes especializados",
|
|
88
|
+
"Integración Figma → código adaptado al design system local",
|
|
89
|
+
"Mapas de proyecto (ahorro de tokens)",
|
|
90
|
+
"Compresión caveman-like",
|
|
91
|
+
"Recomendaciones de modelos",
|
|
92
|
+
"Hooks personalizables",
|
|
93
|
+
"Instalador multiplataforma (npx sdd-es)",
|
|
94
|
+
"Totalmente editable (Markdown plano)",
|
|
95
|
+
"100% agnóstico al stack"
|
|
96
|
+
]
|
|
97
|
+
}
|
package/README.md
ADDED
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
# SDD-ES
|
|
2
|
+
|
|
3
|
+
> **Fábrica de software en español para Claude Code**
|
|
4
|
+
> De la idea al despliegue, agnóstica al stack, con estándares de ingeniería altos.
|
|
5
|
+
|
|
6
|
+
[](https://www.npmjs.com/package/sdd-es)
|
|
7
|
+
[](https://nodejs.org)
|
|
8
|
+
[](LICENSE)
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Instalación
|
|
13
|
+
|
|
14
|
+
Requiere **Node.js ≥ 18** y **Claude Code**.
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# Desde la carpeta de tu proyecto
|
|
18
|
+
npx sdd-es init
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Eso es todo. SDD-ES instala comandos, agentes, skills y hooks en `.claude/` y crea la estructura `.sdd/` en tu proyecto.
|
|
22
|
+
|
|
23
|
+
### Opciones adicionales
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npx sdd-es init --global # instala para todos tus proyectos ($HOME/.claude)
|
|
27
|
+
npx sdd-es update # actualiza el núcleo sin tocar tu .sdd/ ni settings
|
|
28
|
+
npx sdd-es doctor # diagnostica la instalación
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Windows (PowerShell nativo)
|
|
32
|
+
|
|
33
|
+
```powershell
|
|
34
|
+
.\instalar.ps1 # proyecto actual
|
|
35
|
+
.\instalar.ps1 -Global # global
|
|
36
|
+
# Si la política de ejecución lo bloquea:
|
|
37
|
+
powershell -ExecutionPolicy Bypass -File .\instalar.ps1
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### macOS / Linux
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
bash instalar.sh # proyecto actual
|
|
44
|
+
bash instalar.sh --global # global
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Inicio rápido
|
|
50
|
+
|
|
51
|
+
Abre Claude Code en tu proyecto e inicia con lenguaje natural:
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
/sdd quiero crear una app de lista de tareas
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
El hub entiende tu intención y te guía al siguiente paso. Si es tu primer uso, detecta que no hay constitución y la crea automáticamente.
|
|
58
|
+
|
|
59
|
+
**Flujo completo en comandos:**
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
/sdd.constitucion ← principios del proyecto (solo la primera vez)
|
|
63
|
+
/sdd.especificar [idea] ← captura qué quieres construir
|
|
64
|
+
/sdd.planificar ← plan técnico
|
|
65
|
+
/sdd.planificar aprobar ← confirmar el plan
|
|
66
|
+
/sdd.tareas ← desglose en tareas atómicas
|
|
67
|
+
/sdd.implementar ← agentes especializados lo construyen
|
|
68
|
+
/sdd.qa ← QA en navegador real
|
|
69
|
+
/sdd.verificar ← verificación final contra spec
|
|
70
|
+
/sdd.desplegar ← publica con health check
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Para no-programadores
|
|
74
|
+
|
|
75
|
+
SDD-ES tiene un **perfil guiado** que detecta o pregunta si eres nuevo en programación. En ese modo:
|
|
76
|
+
|
|
77
|
+
- No ves nombres de comandos ni jerga técnica
|
|
78
|
+
- El sistema elige el stack automáticamente
|
|
79
|
+
- Confirmas con "sí" entre cada paso
|
|
80
|
+
- Claude publica tu app en internet al final
|
|
81
|
+
|
|
82
|
+
Ver recorrido completo en [docs/FABRICA.md](docs/FABRICA.md).
|
|
83
|
+
|
|
84
|
+
### Crear una app desde cero
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
/sdd.crear-app quiero una app para anotar mis ideas diarias
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Crear una herramienta para Claude (servidor MCP)
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
/sdd.crear-mcp quiero una herramienta que consulte el precio del dólar
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Los 26 comandos
|
|
99
|
+
|
|
100
|
+
### Inicialización
|
|
101
|
+
|
|
102
|
+
| Comando | Descripción |
|
|
103
|
+
|---------|-------------|
|
|
104
|
+
| `/sdd` | Hub central — entiende lenguaje natural y enruta al comando correcto |
|
|
105
|
+
| `/sdd.constitucion` | Establece principios, stack y restricciones del proyecto |
|
|
106
|
+
| `/sdd.configurar` | Ajusta agentes activos y modelos asignados |
|
|
107
|
+
| `/sdd.descubrir` | Extrae contexto de una idea vaga — punto de entrada para proyectos nuevos |
|
|
108
|
+
| `/sdd.ayuda` | Guía completa de todos los comandos |
|
|
109
|
+
|
|
110
|
+
### Especificación
|
|
111
|
+
|
|
112
|
+
| Comando | Descripción |
|
|
113
|
+
|---------|-------------|
|
|
114
|
+
| `/sdd.especificar` | Convierte una intención en spec con criterios de aceptación testeables |
|
|
115
|
+
| `/sdd.importar` | Importa spec externa (URL, archivo) |
|
|
116
|
+
| `/sdd.aclarar` | Resuelve marcas `[NECESITA_ACLARACION]` de la spec |
|
|
117
|
+
| `/sdd.checklist` | Valida calidad formal de la spec |
|
|
118
|
+
|
|
119
|
+
### Planificación e implementación
|
|
120
|
+
|
|
121
|
+
| Comando | Descripción |
|
|
122
|
+
|---------|-------------|
|
|
123
|
+
| `/sdd.planificar` | Genera plan técnico |
|
|
124
|
+
| `/sdd.tareas` | Desglosa el plan en tareas atómicas con agente asignado |
|
|
125
|
+
| `/sdd.analizar` | Auditoría cruzada constitución↔spec↔plan↔tareas (con PTC paralelo) |
|
|
126
|
+
| `/sdd.implementar` | Ejecuta tareas con agentes especializados (con PTC paralelo) |
|
|
127
|
+
| `/sdd.qa` | QA en navegador real desde los Criterios de Aceptación (Playwright) |
|
|
128
|
+
| `/sdd.verificar` | Verificación final contra la spec original |
|
|
129
|
+
|
|
130
|
+
### Despliegue
|
|
131
|
+
|
|
132
|
+
| Comando | Descripción |
|
|
133
|
+
|---------|-------------|
|
|
134
|
+
| `/sdd.desplegar` | Gate de calidad → confirmación explícita → deploy → health check |
|
|
135
|
+
| `/sdd.canary` | Monitoreo post-deploy: rounds de health check con latencia |
|
|
136
|
+
| `/sdd.retro` | Retrospectiva del ciclo, registra aprendizajes en SNAPSHOT |
|
|
137
|
+
|
|
138
|
+
### Fábrica (idea → producto instalable)
|
|
139
|
+
|
|
140
|
+
| Comando | Descripción |
|
|
141
|
+
|---------|-------------|
|
|
142
|
+
| `/sdd.crear-app` | Genera app web o CLI desde descripción en lenguaje natural |
|
|
143
|
+
| `/sdd.crear-mcp` | Genera servidor MCP empaquetado como `.mcpb` instalable |
|
|
144
|
+
|
|
145
|
+
### Producto y dominio
|
|
146
|
+
|
|
147
|
+
| Comando | Descripción |
|
|
148
|
+
|---------|-------------|
|
|
149
|
+
| `/sdd.snapshot` | Actualiza SNAPSHOT.md con el estado actual del producto |
|
|
150
|
+
| `/sdd.glosario` | Gestiona términos del dominio |
|
|
151
|
+
| `/sdd.estado` | Dashboard de progreso |
|
|
152
|
+
| `/sdd.release` | Versión semántica + CHANGELOG desde specs completadas |
|
|
153
|
+
|
|
154
|
+
### Utilidades
|
|
155
|
+
|
|
156
|
+
| Comando | Descripción |
|
|
157
|
+
|---------|-------------|
|
|
158
|
+
| `/sdd.mapear` | Indexa estructura, símbolos y dependencias (ahorra tokens) |
|
|
159
|
+
| `/sdd.comprimir` | Comprime archivos de memoria para reducir tokens por sesión |
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Los 12 agentes especializados
|
|
164
|
+
|
|
165
|
+
| Agente | Rol | Modelo recomendado |
|
|
166
|
+
|--------|-----|--------------------|
|
|
167
|
+
| `arquitecto` | Decisiones técnicas de alto nivel | opus |
|
|
168
|
+
| `disenador-api` | Contratos OpenAPI / GraphQL / gRPC | sonnet |
|
|
169
|
+
| `asesor-datos` | Esquemas, queries, índices, migraciones | opus |
|
|
170
|
+
| `desarrollador-backend` | Lógica de servidor, servicios, APIs | sonnet |
|
|
171
|
+
| `desarrollador-frontend` | UI, componentes, estado cliente | sonnet |
|
|
172
|
+
| `operaciones` | CI/CD, deploy, infraestructura | sonnet |
|
|
173
|
+
| `tester` | Tests unitarios, integración, E2E | sonnet |
|
|
174
|
+
| `revisor` | Revisión cruzada contra spec y constitución | opus |
|
|
175
|
+
| `critico` | Riesgos, puntos ciegos, devil's advocate | opus |
|
|
176
|
+
| `seguridad` | Auditoría de vulnerabilidades | opus |
|
|
177
|
+
| `investigador` | Stack existente, deuda técnica, patrones | sonnet |
|
|
178
|
+
| `documentador` | Documentación técnica útil | sonnet |
|
|
179
|
+
|
|
180
|
+
Cambia modelos y activa/desactiva agentes con `/sdd.configurar` o editando `.sdd/sdd.config.yaml`.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Las 10 skills
|
|
185
|
+
|
|
186
|
+
| Skill | Formato | Qué hace |
|
|
187
|
+
|-------|---------|----------|
|
|
188
|
+
| `deteccion-stack` | `.md` | Detecta lenguaje, framework, plataforma de deploy |
|
|
189
|
+
| `gestion-estado` | `.md` | Lee y escribe `estado.json` con RAG en 3 capas |
|
|
190
|
+
| `validacion-spec` | `.md` | Verifica criterios de calidad de una spec |
|
|
191
|
+
| `enrutador-agentes` | `.md` | Asigna el agente correcto a cada tarea |
|
|
192
|
+
| `verificador-implementacion` | `.md` | Comprueba que el código cumple los CAs |
|
|
193
|
+
| `indexador` | `.md` | Genera mapas de estructura, símbolos y dependencias |
|
|
194
|
+
| `compresion-tokens` | `.md` | Reglas de compresión estilo caveman para Markdown |
|
|
195
|
+
| `constitucion-constraint` | `.md` | Aplica DEBE/NUNCA de la constitución como hard constraint |
|
|
196
|
+
| `modo-guiado` | `📁 SKILL.md` | Conduce el flujo sin jerga para no-programadores |
|
|
197
|
+
| `orquestacion-ptc` | `📁 SKILL.md` | Patrón PTC: despacha agentes en paralelo, −85% tokens |
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Estándares de ingeniería incluidos
|
|
202
|
+
|
|
203
|
+
### Deploy verificado
|
|
204
|
+
`/sdd.desplegar` nunca declara éxito con el servicio caído:
|
|
205
|
+
1. Gate duro: tests verdes + spec verificada + constitución cumplida + sin secretos
|
|
206
|
+
2. Confirmación explícita obligatoria (el usuario escribe "desplegar")
|
|
207
|
+
3. Deploy vía agente `operaciones` (Vercel / Railway / Fly.io / Docker / K8s)
|
|
208
|
+
4. Health check post-deploy con latencia medida
|
|
209
|
+
5. Registro de URL en `estado.json`
|
|
210
|
+
|
|
211
|
+
### QA en navegador real
|
|
212
|
+
`/sdd.qa` genera casos E2E desde cada Criterio de Aceptación y los ejecuta en un navegador real vía Playwright MCP — no solo unitarios.
|
|
213
|
+
|
|
214
|
+
### Orquestación PTC
|
|
215
|
+
`/sdd.implementar` y `/sdd.analizar` usan Programmatic Tool Calling para despachar agentes independientes en paralelo, aggregando solo PASA/FALLA + diff mínimo. Ahorro esperado: −70 a −85% de tokens en orquestación multi-agente.
|
|
216
|
+
|
|
217
|
+
### Sprint estructurado
|
|
218
|
+
|
|
219
|
+
| Fase | Comandos |
|
|
220
|
+
|------|----------|
|
|
221
|
+
| Pensar | `/sdd.constitucion`, `/sdd.descubrir` |
|
|
222
|
+
| Planear | `/sdd.especificar`, `/sdd.aclarar`, `/sdd.planificar`, `/sdd.analizar` |
|
|
223
|
+
| Construir | `/sdd.implementar` |
|
|
224
|
+
| Revisar | `/sdd.verificar` |
|
|
225
|
+
| Probar | `/sdd.qa` |
|
|
226
|
+
| Publicar | `/sdd.desplegar`, `/sdd.canary` |
|
|
227
|
+
| Reflexionar | `/sdd.retro`, `/sdd.snapshot` |
|
|
228
|
+
|
|
229
|
+
Cada flecha tiene un control. No se construye sin spec; no se publica sin tests verdes y QA; no se cierra sin verificación independiente.
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## Estructura generada en tu proyecto
|
|
234
|
+
|
|
235
|
+
```
|
|
236
|
+
tu-proyecto/
|
|
237
|
+
├── .claude/
|
|
238
|
+
│ ├── commands/sdd.*.md ← 26 comandos
|
|
239
|
+
│ ├── agents/*.md ← 12 agentes
|
|
240
|
+
│ ├── skills/ ← 10 skills (flat .md + carpetas SKILL.md)
|
|
241
|
+
│ └── hooks/ ← hooks de seguridad pre-instalados
|
|
242
|
+
└── .sdd/
|
|
243
|
+
├── sdd.config.yaml ← configuración personalizable
|
|
244
|
+
├── estado.json ← estado global del flujo
|
|
245
|
+
├── INDICE.md
|
|
246
|
+
├── SNAPSHOT.md
|
|
247
|
+
├── memoria/
|
|
248
|
+
│ └── constitucion.md ← principios del proyecto
|
|
249
|
+
├── dominio/glosario.md
|
|
250
|
+
├── arquitectura/ ← ADRs
|
|
251
|
+
├── hooks/ ← tus hooks personalizados
|
|
252
|
+
└── especificaciones/{ID}/
|
|
253
|
+
├── spec.md
|
|
254
|
+
├── plan.md
|
|
255
|
+
├── tareas.md
|
|
256
|
+
├── analisis.md
|
|
257
|
+
├── qa.md
|
|
258
|
+
├── verificacion.md
|
|
259
|
+
└── .estado-tareas.json
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## Personalización
|
|
265
|
+
|
|
266
|
+
Todo el plugin es Markdown plano. Personaliza editando archivos:
|
|
267
|
+
|
|
268
|
+
| Quieres cambiar… | Edita… |
|
|
269
|
+
|------------------|--------|
|
|
270
|
+
| Agentes activos / modelos | `.sdd/sdd.config.yaml` |
|
|
271
|
+
| Formato de spec / plan / tareas | `.sdd/plantillas/*.md` |
|
|
272
|
+
| Comportamiento de comandos | `.claude/commands/sdd.*.md` |
|
|
273
|
+
| Personalidad de agentes | `.claude/agents/*.md` |
|
|
274
|
+
| Integraciones (Git, Slack, CI…) | `.sdd/hooks/*.sh` |
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## MCP integrado
|
|
279
|
+
|
|
280
|
+
SDD-ES declara dos servidores MCP en `plugin.json`:
|
|
281
|
+
|
|
282
|
+
| MCP | Cuándo se activa | Para qué |
|
|
283
|
+
|-----|-----------------|----------|
|
|
284
|
+
| `sdd-figma` | Tareas de UI con `figma_file_key` configurado | Extrae diseños de Figma y genera código adaptado al design system local |
|
|
285
|
+
| `navegador` (Playwright) | `/sdd.qa`, palabras clave `e2e`, `prueba` | QA en navegador real sin mantener un navegador propio |
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## Ahorro de tokens
|
|
290
|
+
|
|
291
|
+
| Técnica | Ahorro estimado |
|
|
292
|
+
|---------|----------------|
|
|
293
|
+
| Mapas estáticos (`/sdd.mapear`) | −50 a −65k tokens por sesión |
|
|
294
|
+
| Compresión caveman (`/sdd.comprimir`) | −60 a −70% en archivos de memoria |
|
|
295
|
+
| RAG en 3 capas (estado.json → spec activa → constitución) | Carga solo lo necesario por fase |
|
|
296
|
+
| PTC paralelo (`orquestacion-ptc`) | −70 a −85% en orquestación multi-agente |
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## Documentación
|
|
301
|
+
|
|
302
|
+
| Archivo | Contenido |
|
|
303
|
+
|---------|-----------|
|
|
304
|
+
| [docs/FABRICA.md](docs/FABRICA.md) | Recorrido idea→deploy para no-programadores |
|
|
305
|
+
| [docs/INICIO-RAPIDO.md](docs/INICIO-RAPIDO.md) | Primeros pasos |
|
|
306
|
+
| [docs/FLUJO.md](docs/FLUJO.md) | Sprint completo y diagrama del flujo |
|
|
307
|
+
| [docs/EJEMPLO-PRACTICA.md](docs/EJEMPLO-PRACTICA.md) | Ejemplo completo: API REST desde cero |
|
|
308
|
+
| [docs/AGENTES.md](docs/AGENTES.md) | Cuándo usar cada agente |
|
|
309
|
+
| [docs/MODELOS.md](docs/MODELOS.md) | Recomendaciones de modelos por rol |
|
|
310
|
+
| [docs/PERSONALIZACION.md](docs/PERSONALIZACION.md) | Guía exhaustiva de personalización |
|
|
311
|
+
| [docs/EJEMPLOS.md](docs/EJEMPLOS.md) | Ejemplos por stack |
|
|
312
|
+
| [docs/FILOSOFIA.md](docs/FILOSOFIA.md) | Qué es SDD y por qué funciona con IA |
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## Filosofía
|
|
317
|
+
|
|
318
|
+
SDD-ES no impone — recomienda. Cada agente sugiere un modelo según la complejidad de su rol, pero la decisión es tuya. Para MVPs usa modelos rápidos; para producción crítica usa modelos potentes en los agentes de decisión.
|
|
319
|
+
|
|
320
|
+
**Sin acoplamiento a Git/GitHub/GitLab.** Tu flujo de control de versiones es tuyo. Si quieres integrar Git, hazlo desde hooks (`.sdd/hooks/*.sh`).
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
## Contribuir
|
|
325
|
+
|
|
326
|
+
El plugin está diseñado para ser forkeado y personalizado. Si mejoras algo genérico, abre un PR.
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## Licencia
|
|
331
|
+
|
|
332
|
+
MIT — úsalo, modifícalo, compártelo libremente.
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Arquitecto de software senior. Toma decisiones técnicas de alto nivel, diseña estructuras y evalúa trade-offs. Se activa durante /sdd.planificar y en tareas de tipos/contratos durante /sdd.implementar.
|
|
3
|
+
model: opus
|
|
4
|
+
tools: Read, Grep, Glob, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Agente: Arquitecto
|
|
8
|
+
|
|
9
|
+
Eres un arquitecto de software senior con experiencia profunda en múltiples stacks (Node.js, Python, Rust, Go, Java, .NET, Ruby, PHP). Tu especialidad es **diseñar sistemas correctamente desde el inicio** — las decisiones difíciles de revertir.
|
|
10
|
+
|
|
11
|
+
## Skills obligatorios — leer antes de diseñar
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# CAPA 0 — siempre (~200 tokens)
|
|
15
|
+
cat .sdd/estado.json 2>/dev/null
|
|
16
|
+
cat .sdd/sdd.config.yaml 2>/dev/null | head -30
|
|
17
|
+
|
|
18
|
+
# CAPA 1 — si hay spec activa (~400 tokens)
|
|
19
|
+
SPEC_ID=$(grep -o '"especificacion_activa": "[^"]*"' .sdd/estado.json 2>/dev/null | cut -d'"' -f4)
|
|
20
|
+
[ -n "$SPEC_ID" ] && cat ".sdd/especificaciones/${SPEC_ID}/spec.md" 2>/dev/null
|
|
21
|
+
|
|
22
|
+
# CAPA 2 — contexto arquitectónico completo (solo para decisiones de diseño)
|
|
23
|
+
cat .sdd/memoria/constitucion.md 2>/dev/null
|
|
24
|
+
ls .sdd/arquitectura/ 2>/dev/null && cat .sdd/arquitectura/*.md 2>/dev/null
|
|
25
|
+
cat package.json pyproject.toml Cargo.toml go.mod pom.xml 2>/dev/null | head -20
|
|
26
|
+
find src -maxdepth 2 -type d 2>/dev/null | head -20
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**CRÍTICO — Constitutional AI Constraint**: la constitución es una restricción dura, no una guía. Antes de proponer cualquier decisión técnica, extrae los principios relevantes (ver skill `constitucion-constraint`) y verifica que tu propuesta no los viola. Si hay violación sin justificación técnica concreta, **no propongas la decisión** — reporta el conflicto al orquestador. Las desviaciones justificadas van en "Complejidad Justificada", nunca se silencian.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Tu mentalidad
|
|
34
|
+
|
|
35
|
+
- **Simplicidad sobre elegancia**: el código más simple que resuelve el problema es el mejor diseño
|
|
36
|
+
- **Explícito sobre implícito**: prefiere código que dice lo que hace sobre magia/convención oculta
|
|
37
|
+
- **Reversibilidad**: evita decisiones de un solo sentido; cuando sean inevitables, documenta como ADR
|
|
38
|
+
- **Sin sobre-ingeniería**: no introduces abstracciones que no resuelven un problema actual
|
|
39
|
+
- **YAGNI riguroso**: "You Aren't Gonna Need It" — no implementes lo que la spec no pide
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Cuándo te activan
|
|
44
|
+
|
|
45
|
+
- Durante `/sdd.planificar`: diseñas la solución técnica completa
|
|
46
|
+
- Durante `/sdd.implementar` para tareas de fase A (tipos, interfaces, contratos)
|
|
47
|
+
- Cuando otro agente encuentra una decisión arquitectónica no cubierta por el plan
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Tu proceso
|
|
52
|
+
|
|
53
|
+
### 1. Entender antes de diseñar
|
|
54
|
+
|
|
55
|
+
- Lee la spec completa
|
|
56
|
+
- Lee la constitución (sin excepciones)
|
|
57
|
+
- Explora código existente para entender patrones actuales
|
|
58
|
+
- Identifica restricciones técnicas no obvias
|
|
59
|
+
|
|
60
|
+
### 2. Identificar puntos de decisión
|
|
61
|
+
|
|
62
|
+
Lista las decisiones técnicas no triviales:
|
|
63
|
+
- Estructura de capas (controllers, servicios, repositorios, etc.)
|
|
64
|
+
- Patrones de manejo de errores
|
|
65
|
+
- Estrategia de validación
|
|
66
|
+
- Manejo de configuración
|
|
67
|
+
- Estrategia de logging/observabilidad
|
|
68
|
+
- Cómo se inyectan dependencias
|
|
69
|
+
- Cómo se manejan transacciones
|
|
70
|
+
|
|
71
|
+
### 3. Por cada decisión
|
|
72
|
+
|
|
73
|
+
1. **Opciones reales** (2-3 alternativas usadas en el ecosistema)
|
|
74
|
+
2. **Criterios** que aplican según la constitución y el contexto
|
|
75
|
+
3. **Elección** + justificación técnica concreta (no "porque es mejor")
|
|
76
|
+
4. **Trade-off** honesto (qué sacrificamos)
|
|
77
|
+
5. **Cuándo revisitar** esta decisión
|
|
78
|
+
|
|
79
|
+
### 4. Adaptar al stack
|
|
80
|
+
|
|
81
|
+
**SIEMPRE sigue los patrones EXISTENTES del proyecto antes que tus preferencias.**
|
|
82
|
+
|
|
83
|
+
| Stack | Patrones idiomáticos |
|
|
84
|
+
|---|---|
|
|
85
|
+
| **TypeScript/Node** | async/await, módulos ES, tipos estrictos, Result types sobre excepciones |
|
|
86
|
+
| **Python** | type hints, dataclasses/pydantic, context managers, excepciones específicas |
|
|
87
|
+
| **JavaScript** | async/await, módulos ES o CommonJS según proyecto, JSDoc si no hay TS |
|
|
88
|
+
| Rust | borrow checker, Result/Option, ownership clara, sin `.unwrap()` en prod |
|
|
89
|
+
| Go | interfaces pequeñas, errores como valores, sin frameworks heavyweight |
|
|
90
|
+
| Java/Kotlin | inmutabilidad, null safety, lambdas funcionales |
|
|
91
|
+
| .NET | async/await, DI nativa, LINQ |
|
|
92
|
+
| Ruby | convention over configuration, DSL legibles |
|
|
93
|
+
| PHP | type declarations, PSR estándares |
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Lo que produces
|
|
98
|
+
|
|
99
|
+
**Para `/sdd.planificar`:**
|
|
100
|
+
- Enfoque técnico
|
|
101
|
+
- Decisiones técnicas (tabla)
|
|
102
|
+
- Estructura de carpetas afectada
|
|
103
|
+
- Archivos afectados (alto nivel)
|
|
104
|
+
- Riesgos técnicos identificados
|
|
105
|
+
|
|
106
|
+
**Para tareas de fase A:**
|
|
107
|
+
- Tipos/interfaces siguiendo los patrones existentes del proyecto
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Lo que NO haces
|
|
112
|
+
|
|
113
|
+
- ❌ Introducir frameworks/librerías no aprobadas en el plan
|
|
114
|
+
- ❌ Cambiar el stack sin permiso explícito
|
|
115
|
+
- ❌ Crear abstracciones "para el futuro" — diseña para lo que la spec pide HOY
|
|
116
|
+
- ❌ Reescribir código existente que no toca la spec
|
|
117
|
+
- ❌ Decisiones contrarias a la constitución sin documentarlas en "Complejidad Justificada"
|
|
118
|
+
- ❌ Escribir código de implementación (eso es del desarrollador)
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Formato de salida
|
|
123
|
+
|
|
124
|
+
```markdown
|
|
125
|
+
## Decisión: [Nombre]
|
|
126
|
+
|
|
127
|
+
**Opciones consideradas:**
|
|
128
|
+
- A. [Opción] — [pros/contras]
|
|
129
|
+
- B. [Opción] — [pros/contras]
|
|
130
|
+
|
|
131
|
+
**Elegida:** A
|
|
132
|
+
|
|
133
|
+
**Justificación:** [2-3 frases técnicas concretas]
|
|
134
|
+
|
|
135
|
+
**Trade-off aceptado:** [qué sacrificamos]
|
|
136
|
+
|
|
137
|
+
**Cuándo revisitar:** [condición específica]
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Estilo de respuesta (Caveman-Lite)
|
|
143
|
+
|
|
144
|
+
- ✅ Sin hedging ("creo que", "tal vez", "podría ser")
|
|
145
|
+
- ✅ Sin cortesía innecesaria
|
|
146
|
+
- ✅ Fragmentos OK en respuestas cortas
|
|
147
|
+
- ✅ Prosa completa en: advertencias, trade-offs, decisiones irreversibles
|
|
148
|
+
- ❌ NUNCA quita la sustancia técnica
|