sdd-es 2.0.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 +29 -29
- package/.claude/settings.local.json +10 -0
- package/.claude-plugin/marketplace.json +10 -7
- package/.claude-plugin/plugin.json +59 -37
- package/.gitignore +20 -0
- package/.mcp.json +8 -0
- package/LICENSE +21 -0
- package/README.md +77 -40
- package/agents/architecture-designer.md +211 -0
- package/agents/arquitecto.md +16 -1
- package/agents/asesor-datos.md +15 -1
- package/agents/critico.md +37 -1
- package/agents/desarrollador-backend.md +3 -1
- package/agents/desarrollador-frontend.md +11 -16
- package/agents/disenador-api.md +13 -1
- package/agents/documentador.md +3 -1
- package/agents/investigador.md +3 -1
- package/agents/operaciones.md +3 -1
- package/agents/product-designer.md +268 -0
- package/agents/revisor.md +25 -1
- package/agents/seguridad.md +5 -1
- package/agents/tester.md +3 -1
- package/claude-hooks/agent-memory.js +288 -0
- package/claude-hooks/pre-tool-guard.js +61 -9
- package/cli/index.js +1 -2
- package/commands/sdd.adr.md +196 -0
- package/commands/sdd.analizar.md +23 -2
- package/commands/sdd.ayuda.md +13 -0
- package/commands/sdd.compliance.md +521 -0
- package/commands/sdd.configurar.md +34 -1
- package/commands/sdd.constitucion.md +198 -23
- package/commands/sdd.construir.md +210 -0
- 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.dise/303/261ar.md +188 -0
- package/commands/sdd.estado.md +120 -3
- package/commands/sdd.exportar.md +344 -0
- package/commands/sdd.implementar.md +272 -52
- package/commands/sdd.interpretar.md +239 -0
- package/commands/sdd.md +93 -4
- package/commands/sdd.optimizar-memoria.md +47 -0
- package/commands/sdd.optimizar.md +164 -0
- package/commands/sdd.planificar.md +64 -0
- package/commands/sdd.retro.md +74 -0
- package/commands/sdd.verificar.md +81 -0
- package/configuracion-ejemplo/.claude/CLAUDE.md +106 -0
- package/configuracion-ejemplo/sdd.config.yaml +10 -0
- package/craft/accessibility-baseline.md +216 -0
- package/craft/anti-ai-slop.md +158 -0
- package/craft/color.md +160 -0
- package/craft/typography.md +121 -0
- package/design-systems/bold-brutalist/DESIGN.md +239 -0
- package/design-systems/editorial-minimal/DESIGN.md +205 -0
- package/design-systems/neutral-modern/DESIGN.md +227 -0
- package/design-systems/vibrant-consumer/DESIGN.md +257 -0
- package/design-systems/warm-editorial/DESIGN.md +221 -0
- package/docs/AGENTES.md +4 -1
- package/docs/CASO-COMPLETO.md +206 -0
- package/docs/EJEMPLOS.md +61 -185
- package/docs/FABRICA.md +163 -115
- package/docs/INICIO-RAPIDO.md +27 -79
- package/docs/MEMORIA-Y-OBSERVABILIDAD.md +239 -0
- package/docs/MODELOS.md +3 -0
- package/docs/QUE-PASA-SI-FALLA.md +404 -0
- package/docs/README.md +43 -0
- package/docs/RELACION-CON-CLAUDE-CODE.md +38 -0
- package/docs/SEGURIDAD-PARA-NOTECNICOS.md +280 -0
- package/package.json +15 -10
- 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 +163 -0
- package/skills/critica-diseno/SKILL.md +193 -0
- package/skills/descubrir-idea/SKILL.md +133 -0
- package/skills/effort-router/SKILL.md +128 -0
- package/skills/elegir-direccion/SKILL.md +184 -0
- package/skills/github-connect/IMPLEMENTATION-CHECKLIST.md +297 -0
- package/skills/github-connect/INDEX.md +223 -0
- package/skills/github-connect/INTEGRATION.md +361 -0
- package/skills/github-connect/QUICK-START.md +168 -0
- package/skills/github-connect/README.md +414 -0
- package/skills/github-connect/RESUMEN_IMPLEMENTACION.txt +374 -0
- package/skills/github-connect/SKILL.md +343 -0
- package/skills/github-connect/STRUCTURE.txt +252 -0
- package/skills/github-connect/example-config.yaml +41 -0
- package/skills/github-connect/github-connect.sh +419 -0
- package/skills/interpretar-idea/SKILL.md +254 -0
- package/skills/mejorar-prompt/SKILL.md +237 -0
- package/skills/memory-compactor/SKILL.md +68 -0
- package/skills/modo-guiado/SKILL.md +12 -2
- package/skills/mutation-detector/SKILL.md +134 -0
- package/skills/observabilidad-consumo/SKILL.md +164 -0
- package/skills/token-budget/SKILL.md +177 -0
- package/skills/vercel-deploy/00-START-HERE.txt +364 -0
- package/skills/vercel-deploy/CHECKLIST.md +205 -0
- package/skills/vercel-deploy/EXEC-SUMMARY.txt +322 -0
- package/skills/vercel-deploy/FLOW.txt +334 -0
- package/skills/vercel-deploy/INDEX.md +276 -0
- package/skills/vercel-deploy/INTEGRATION.md +328 -0
- package/skills/vercel-deploy/MANIFEST.md +310 -0
- package/skills/vercel-deploy/README.md +65 -0
- package/skills/vercel-deploy/SKILL.md +356 -0
- package/skills/vercel-deploy/deploy.sh +298 -0
- package/skills/vercel-deploy/estado.json.example +205 -0
- package/skills/vercel-deploy/skill.yaml +323 -0
- package/skills/vercel-deploy/vercel-deploy.sh +216 -0
- package/skills/wireframe-mvp/SKILL.md +157 -0
- package/docs/EJEMPLO-PRACTICA.md +0 -383
- 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
- /package/skills/{compresion-tokens.md → compresion-tokens/SKILL.md} +0 -0
- /package/skills/{constitucion-constraint.md → constitucion-constraint/SKILL.md} +0 -0
- /package/skills/{deteccion-stack.md → deteccion-stack/SKILL.md} +0 -0
- /package/skills/{enrutador-agentes.md → enrutador-agentes/SKILL.md} +0 -0
- /package/skills/{gestion-estado.md → gestion-estado/SKILL.md} +0 -0
- /package/skills/{indexador.md → indexador/SKILL.md} +0 -0
- /package/skills/{validacion-spec.md → validacion-spec/SKILL.md} +0 -0
- /package/skills/{verificador-implementacion.md → verificador-implementacion/SKILL.md} +0 -0
|
@@ -0,0 +1,521 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Genera reporte de cumplimiento regulatorio (GDPR, SOC2, ISO 27001, HIPAA) contra el estado actual del proyecto.
|
|
3
|
+
allowed-tools: Read, Bash
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /sdd.compliance — Reporte de Cumplimiento Regulatorio
|
|
7
|
+
|
|
8
|
+
## Descripción
|
|
9
|
+
|
|
10
|
+
Genera un reporte en tiempo real que diagnostica el estado de compliance del proyecto contra regulaciones internacionales (GDPR, SOC2, ISO 27001, HIPAA). Identifica gaps, asigna un nivel de riesgo y recomienda acciones concretas.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Uso
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
/sdd.compliance
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Sin opciones: genera reporte completo (todas las regulaciones activas).
|
|
21
|
+
|
|
22
|
+
### Opciones
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
/sdd.compliance --framework=gdpr # Solo GDPR
|
|
26
|
+
/sdd.compliance --framework=soc2 # Solo SOC2
|
|
27
|
+
/sdd.compliance --framework=iso27001 # Solo ISO 27001
|
|
28
|
+
/sdd.compliance --framework=hipaa # Solo HIPAA
|
|
29
|
+
/sdd.compliance --output=json # Salida en JSON (para CI/CD)
|
|
30
|
+
/sdd.compliance --strict # Reporta warnings como errores
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## PASO 1: Detectar Configuración Actual
|
|
36
|
+
|
|
37
|
+
El comando comienza leyendo la configuración de tu proyecto:
|
|
38
|
+
|
|
39
|
+
### Busca en `sdd.config.yaml`:
|
|
40
|
+
|
|
41
|
+
```yaml
|
|
42
|
+
preset: enterprise # ← lean / startup / enterprise
|
|
43
|
+
compliance:
|
|
44
|
+
enabled: true # ← ¿Está habilitado compliance?
|
|
45
|
+
frameworks:
|
|
46
|
+
- gdpr
|
|
47
|
+
- soc2
|
|
48
|
+
- iso27001
|
|
49
|
+
security:
|
|
50
|
+
agente_seguridad: true # ← ¿Está activo agente de seguridad?
|
|
51
|
+
deteccion_pii: true # ← ¿Detecta datos personales?
|
|
52
|
+
encryption: aes-256 # ← Algoritmo configurado
|
|
53
|
+
autenticacion: oauth2 # ← Método de autenticación
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Salida**:
|
|
57
|
+
```
|
|
58
|
+
✅ Configuración detectada:
|
|
59
|
+
Preset: enterprise
|
|
60
|
+
Frameworks activos: GDPR, SOC2, ISO 27001
|
|
61
|
+
Agente de seguridad: ACTIVADO
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Lee la Constitución de seguridad
|
|
65
|
+
|
|
66
|
+
El comando analiza qué restricciones están configuradas en el proyecto:
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
✅ Constitución de seguridad:
|
|
70
|
+
- Encriptación AES-256 de datos en reposo
|
|
71
|
+
- OAuth2 para autenticación
|
|
72
|
+
- Logging obligatorio de cambios sensibles
|
|
73
|
+
- Detección de PII automatizada
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Verifica Agentes activos
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
✅ Agentes especializados:
|
|
80
|
+
✓ security_agent (detecta vulnerabilidades)
|
|
81
|
+
✓ auditor_agent (genera logs)
|
|
82
|
+
✓ documentador_agent (escribe especificaciones)
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## PASO 2: Generar Reporte de Compliance
|
|
88
|
+
|
|
89
|
+
El comando evalúa cada regulación activa contra el estado actual del proyecto.
|
|
90
|
+
|
|
91
|
+
### Formato: Tabla de Cumplimiento
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
95
|
+
│ REGULACIÓN: GDPR (EU - Protección de Datos) │
|
|
96
|
+
├────────────────────┬────────┬──────────┬──────────┬─────────────┤
|
|
97
|
+
│ Requerimiento │ Estado │ Evidencia│ Riesgo │ Acción │
|
|
98
|
+
├────────────────────┼────────┼──────────┼──────────┼─────────────┤
|
|
99
|
+
│ 1. Especificación │ ✅ │ spec.md │ BAJO │ OK │
|
|
100
|
+
│ clara de datos │ │ 2.5 KB │ │ │
|
|
101
|
+
│ personales │ │ │ │ │
|
|
102
|
+
├────────────────────┼────────┼──────────┼──────────┼─────────────┤
|
|
103
|
+
│ 2. Protección de │ ✅ │ Agente │ BAJO │ OK │
|
|
104
|
+
│ PII │ │ detecta │ │ │
|
|
105
|
+
│ │ │ en-code │ │ │
|
|
106
|
+
├────────────────────┼────────┼──────────┼──────────┼─────────────┤
|
|
107
|
+
│ 3. Auditoría de │ ✅ │ .sdd/ │ BAJO │ OK │
|
|
108
|
+
│ acceso │ │ cambios/ │ │ │
|
|
109
|
+
│ │ │ 45 items │ │ │
|
|
110
|
+
├────────────────────┼────────┼──────────┼──────────┼─────────────┤
|
|
111
|
+
│ 4. Encriptación │ ⚠️ │ En │ MEDIO │ Ejecutar │
|
|
112
|
+
│ de datos en │ │ tránsito │ │ /sdd.spec │
|
|
113
|
+
│ tránsito │ │ OK, en │ │ y mencionar │
|
|
114
|
+
│ │ │ reposo? │ │'data at rest│
|
|
115
|
+
├────────────────────┼────────┼──────────┼──────────┼─────────────┤
|
|
116
|
+
│ 5. Data │ ⚠️ │ Política │ MEDIO │ Agregar │
|
|
117
|
+
│ Retention │ │ no │ │ a spec │
|
|
118
|
+
│ Policy │ │ definida │ │ "Datos se │
|
|
119
|
+
│ │ │ │ │ retienen N │
|
|
120
|
+
│ │ │ │ │ días" │
|
|
121
|
+
└────────────────────┴────────┴──────────┴──────────┴─────────────┘
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Leyenda de Estados
|
|
125
|
+
|
|
126
|
+
| Estado | Significado | Acción |
|
|
127
|
+
|--------|-------------|--------|
|
|
128
|
+
| ✅ | Cumplimiento verificado | Ninguna — mantén el control |
|
|
129
|
+
| ⚠️ | Cumplimiento parcial / Gap menor | Ejecución de comando recomendado |
|
|
130
|
+
| ❌ | No cumple — riesgo alto | Detener cambios, ejecutar acción inmediatamente |
|
|
131
|
+
|
|
132
|
+
### Leyenda de Riesgo
|
|
133
|
+
|
|
134
|
+
| Riesgo | Impacto | Urgencia |
|
|
135
|
+
|--------|---------|----------|
|
|
136
|
+
| **BAJO** | No hay exposición inmediata | Resolver en próximo sprint |
|
|
137
|
+
| **MEDIO** | Exposición si auditan ahora | Resolver esta semana |
|
|
138
|
+
| **ALTO** | Violación clara de regulación | Resolver hoy |
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## PASO 3: Gaps Identificados y Acciones
|
|
143
|
+
|
|
144
|
+
Para cada gap, el comando te da:
|
|
145
|
+
|
|
146
|
+
1. **Descripción clara** del problema
|
|
147
|
+
2. **Comando específico** a ejecutar
|
|
148
|
+
3. **Tiempo estimado** para resolverlo
|
|
149
|
+
|
|
150
|
+
### Ejemplo 1: GDPR — Falta definir data retention policy
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
Gap GDPR-002: Data Retention Policy no documentada
|
|
154
|
+
|
|
155
|
+
Estado: ⚠️ Riesgo MEDIO
|
|
156
|
+
Regulación: GDPR Art. 5 (Principios) - Los datos debe retenerse solo
|
|
157
|
+
mientras sea necesario
|
|
158
|
+
|
|
159
|
+
Problema: Tu especificación menciona que almacenas emails de usuarios
|
|
160
|
+
pero no dice por cuánto tiempo.
|
|
161
|
+
|
|
162
|
+
Acción:
|
|
163
|
+
1. Ejecuta: /sdd.especificar
|
|
164
|
+
2. Selecciona: "Actualizar especificación existente"
|
|
165
|
+
3. Agrega: "Los datos de usuario se retienen 12 meses tras
|
|
166
|
+
inactividad, luego se eliminan automáticamente"
|
|
167
|
+
4. El agente de seguridad validará la política
|
|
168
|
+
|
|
169
|
+
Tiempo estimado: 5 minutos
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Ejemplo 2: SOC2 — Logging incompleto
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
Gap SOC2-CC6.2: Audit logging insuficiente
|
|
176
|
+
|
|
177
|
+
Estado: ⚠️ Riesgo ALTO
|
|
178
|
+
Regulación: SOC2 Trust Service Criteria CC6.2 - Se deben registrar
|
|
179
|
+
cambios con quién, qué, cuándo, dónde
|
|
180
|
+
|
|
181
|
+
Problema: Tu proyecto logguea cambios de código pero no cambios de
|
|
182
|
+
permisos ni acceso a bases de datos sensibles.
|
|
183
|
+
|
|
184
|
+
Acción:
|
|
185
|
+
1. Ejecuta: /sdd.especificar cambios-de-permisos
|
|
186
|
+
2. Declara qué permisos son "sensibles" (admin, finance, etc)
|
|
187
|
+
3. El agente de auditoría agregará logging automático
|
|
188
|
+
4. Verifica: /sdd.compliance --framework=soc2
|
|
189
|
+
|
|
190
|
+
Tiempo estimado: 15 minutos
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Ejemplo 3: ISO 27001 — Control de acceso débil
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
Gap ISO27001-A.12.1.1: Acceso sin restricción por rol
|
|
197
|
+
|
|
198
|
+
Estado: ❌ Riesgo ALTO
|
|
199
|
+
Regulación: ISO 27001 A.12.1.1 - Debe haber segregación de duties
|
|
200
|
+
|
|
201
|
+
Problema: Tu config permite que un usuario apruebe y ejecute su propio
|
|
202
|
+
cambio. ISO 27001 requiere "least privilege" — nadie puede
|
|
203
|
+
autorizar y ejecutar.
|
|
204
|
+
|
|
205
|
+
Acción:
|
|
206
|
+
1. Edita: sdd.config.yaml
|
|
207
|
+
2. Agraga en [security]:
|
|
208
|
+
segregation_of_duties: true
|
|
209
|
+
reviewer_must_differ_from_author: true
|
|
210
|
+
3. Ejecuta: /sdd.implementar
|
|
211
|
+
4. Verifica: /sdd.compliance --framework=iso27001
|
|
212
|
+
|
|
213
|
+
Tiempo estimado: 20 minutos
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### Ejemplo 4: HIPAA — MFA no obligatorio
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
Gap HIPAA-A.9.4.3: Autenticación multi-factor no obligatoria
|
|
220
|
+
|
|
221
|
+
Estado: ❌ Riesgo CRÍTICO
|
|
222
|
+
Regulación: HIPAA Security Rule - Acceso a PHI (Protected Health Info)
|
|
223
|
+
requiere MFA obligatorio
|
|
224
|
+
|
|
225
|
+
Problema: Tu config tiene autenticación OAuth2 pero MFA es opcional.
|
|
226
|
+
Para HIPAA, debe ser obligatorio.
|
|
227
|
+
|
|
228
|
+
Acción:
|
|
229
|
+
1. Edita: sdd.config.yaml
|
|
230
|
+
2. Cambia:
|
|
231
|
+
autenticacion: oauth2
|
|
232
|
+
mfa: optional
|
|
233
|
+
↓↓↓
|
|
234
|
+
autenticacion: oauth2
|
|
235
|
+
mfa: required
|
|
236
|
+
3. Ejecuta: /sdd.implementar
|
|
237
|
+
4. Verifica: /sdd.compliance --framework=hipaa --strict
|
|
238
|
+
|
|
239
|
+
Tiempo estimado: 25 minutos
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## PASO 4: Recomendación Final
|
|
245
|
+
|
|
246
|
+
Al terminar, el comando te da una recomendación estratégica:
|
|
247
|
+
|
|
248
|
+
### Escenario A: Preset enterprise, sin gaps
|
|
249
|
+
|
|
250
|
+
```
|
|
251
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
252
|
+
|
|
253
|
+
✅ CUMPLIMIENTO CERTIFICADO
|
|
254
|
+
|
|
255
|
+
Preset: enterprise
|
|
256
|
+
Frameworks: GDPR ✓, SOC2 ✓, ISO 27001 ✓, HIPAA ✓
|
|
257
|
+
Agentes: security ✓, auditor ✓, documentador ✓
|
|
258
|
+
Gaps: 0
|
|
259
|
+
|
|
260
|
+
Tu proyecto está ready para auditoría. Recomendación:
|
|
261
|
+
|
|
262
|
+
1. Ejecuta /sdd.implementar antes de cada release para verificar
|
|
263
|
+
que los cambios mantienen compliance
|
|
264
|
+
2. Revisa /sdd.compliance mensualmente para detectar nuevos gaps
|
|
265
|
+
3. Si hay cambio de regulación (ej: expande a mercado EU), ejecuta
|
|
266
|
+
/sdd.compliance --framework=gdpr
|
|
267
|
+
|
|
268
|
+
Next: Integra en CI/CD
|
|
269
|
+
|
|
270
|
+
gh secret set SDD_COMPLIANCE_STRICT=true
|
|
271
|
+
# En tu workflow:
|
|
272
|
+
/sdd.compliance --output=json --strict > compliance.json
|
|
273
|
+
# Bloquea el merge si compliance falla
|
|
274
|
+
|
|
275
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
### Escenario B: Preset startup, algunos gaps
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
282
|
+
|
|
283
|
+
⚠️ CUMPLIMIENTO PARCIAL
|
|
284
|
+
|
|
285
|
+
Preset: startup
|
|
286
|
+
Frameworks: GDPR ⚠️ (2 gaps), SOC2 ❌ (4 gaps)
|
|
287
|
+
Gaps: 6 total
|
|
288
|
+
Riesgo: MEDIO-ALTO
|
|
289
|
+
|
|
290
|
+
Tu proyecto puede lanzarse, pero si auditan hoy, encontrarán issues.
|
|
291
|
+
|
|
292
|
+
Recomendación:
|
|
293
|
+
|
|
294
|
+
Opción 1 (RÁPIDO - para MVP):
|
|
295
|
+
- Resuelve los gaps ALTO (3 de 6)
|
|
296
|
+
- Tiempo: 1-2 horas
|
|
297
|
+
- Resultado: Reduce riesgo a MEDIO
|
|
298
|
+
|
|
299
|
+
Opción 2 (COMPLETO - antes de escalar):
|
|
300
|
+
- Cambia preset: startup → enterprise en sdd.config.yaml
|
|
301
|
+
- Ejecuta: /sdd.compliance
|
|
302
|
+
- Resuelve todos los gaps
|
|
303
|
+
- Tiempo: 4-6 horas
|
|
304
|
+
- Resultado: Listo para auditoría
|
|
305
|
+
|
|
306
|
+
Te recomiendo Opción 2 si:
|
|
307
|
+
- Ya tienes datos de usuarios (no importa volumen)
|
|
308
|
+
- Planeas levantar inversión
|
|
309
|
+
- El cliente es empresa grande (fintech, healthcare)
|
|
310
|
+
|
|
311
|
+
Primeros pasos:
|
|
312
|
+
sdd.config.yaml → cambiar preset a enterprise
|
|
313
|
+
/sdd.compliance → ver gaps priorizados
|
|
314
|
+
/sdd.implementar → ejecutar agente de seguridad
|
|
315
|
+
|
|
316
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### Escenario C: Preset lean, sin compliance
|
|
320
|
+
|
|
321
|
+
```
|
|
322
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
323
|
+
|
|
324
|
+
❌ COMPLIANCE NO CONFIGURADO
|
|
325
|
+
|
|
326
|
+
Preset: lean
|
|
327
|
+
Frameworks: ninguno habilitado
|
|
328
|
+
Agentes: ninguno activo
|
|
329
|
+
Gaps: N/A (compliance deshabilitado)
|
|
330
|
+
|
|
331
|
+
Tu proyecto no tiene compliance integrado. Esto es OK si:
|
|
332
|
+
- Es solo para interno / demo
|
|
333
|
+
- No toca datos de usuarios
|
|
334
|
+
- No busca inversión ni clientes empresariales
|
|
335
|
+
|
|
336
|
+
Si en el futuro necesitas compliance, cambia a:
|
|
337
|
+
|
|
338
|
+
sdd.config.yaml:
|
|
339
|
+
preset: enterprise
|
|
340
|
+
compliance:
|
|
341
|
+
enabled: true
|
|
342
|
+
|
|
343
|
+
Luego ejecuta:
|
|
344
|
+
/sdd.compliance
|
|
345
|
+
|
|
346
|
+
El agente te guiará automáticamente.
|
|
347
|
+
|
|
348
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
---
|
|
352
|
+
|
|
353
|
+
## Integración en CI/CD
|
|
354
|
+
|
|
355
|
+
Para bloquear merges que violen compliance:
|
|
356
|
+
|
|
357
|
+
### GitHub Actions
|
|
358
|
+
|
|
359
|
+
```yaml
|
|
360
|
+
name: Compliance Check
|
|
361
|
+
on: [pull_request]
|
|
362
|
+
|
|
363
|
+
jobs:
|
|
364
|
+
compliance:
|
|
365
|
+
runs-on: ubuntu-latest
|
|
366
|
+
steps:
|
|
367
|
+
- uses: actions/checkout@v3
|
|
368
|
+
- name: Run compliance check
|
|
369
|
+
run: /sdd.compliance --output=json --strict > compliance.json
|
|
370
|
+
- name: Block if compliance fails
|
|
371
|
+
run: |
|
|
372
|
+
if grep -q '"status": "fail"' compliance.json; then
|
|
373
|
+
echo "❌ Compliance check failed"
|
|
374
|
+
cat compliance.json
|
|
375
|
+
exit 1
|
|
376
|
+
fi
|
|
377
|
+
- name: Upload compliance report
|
|
378
|
+
uses: actions/upload-artifact@v3
|
|
379
|
+
with:
|
|
380
|
+
name: compliance-report
|
|
381
|
+
path: compliance.json
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
### GitLab CI
|
|
385
|
+
|
|
386
|
+
```yaml
|
|
387
|
+
compliance_check:
|
|
388
|
+
stage: test
|
|
389
|
+
script:
|
|
390
|
+
- /sdd.compliance --output=json --strict > compliance.json
|
|
391
|
+
- |
|
|
392
|
+
if grep -q '"status": "fail"' compliance.json; then
|
|
393
|
+
echo "❌ Compliance check failed"
|
|
394
|
+
cat compliance.json
|
|
395
|
+
exit 1
|
|
396
|
+
fi
|
|
397
|
+
artifacts:
|
|
398
|
+
paths:
|
|
399
|
+
- compliance.json
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
---
|
|
403
|
+
|
|
404
|
+
## Ejemplos de salida real
|
|
405
|
+
|
|
406
|
+
### Output por terminal (legible)
|
|
407
|
+
|
|
408
|
+
```bash
|
|
409
|
+
$ /sdd.compliance --framework=gdpr
|
|
410
|
+
|
|
411
|
+
┌─ GDPR: Protección de Datos (EU) ────────────────────────────────┐
|
|
412
|
+
│ │
|
|
413
|
+
│ ✅ CUMPLIMIENTO: 4/5 requisitos │
|
|
414
|
+
│ │
|
|
415
|
+
│ ✅ Especificación clara │
|
|
416
|
+
│ Encontrado: .sdd/especificaciones/datos-personales.md │
|
|
417
|
+
│ │
|
|
418
|
+
│ ✅ Protección de PII │
|
|
419
|
+
│ Agente de seguridad detecta datos personales en código │
|
|
420
|
+
│ │
|
|
421
|
+
│ ✅ Auditoría de acceso │
|
|
422
|
+
│ Historial: .sdd/cambios/ (48 entradas) │
|
|
423
|
+
│ │
|
|
424
|
+
│ ⚠️ Data retention policy │
|
|
425
|
+
│ NO ENCONTRADO. Acción: /sdd.especificar │
|
|
426
|
+
│ │
|
|
427
|
+
│ ⚠️ Encryption en reposo │
|
|
428
|
+
│ En tránsito: ✓ (TLS 1.3) │
|
|
429
|
+
│ En reposo: ? (revisar config de BD) │
|
|
430
|
+
│ Acción: sdd.config.yaml → [storage] encryption: aes-256 │
|
|
431
|
+
│ │
|
|
432
|
+
└───────────────────────────────────────────────────────────────────┘
|
|
433
|
+
|
|
434
|
+
RESUMEN:
|
|
435
|
+
Gaps: 2 (ambos resolvibles en <30 min)
|
|
436
|
+
Riesgo: MEDIO
|
|
437
|
+
Recomendación: Ejecuta las 2 acciones y listo
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
### Output JSON (para máquinas)
|
|
441
|
+
|
|
442
|
+
```json
|
|
443
|
+
{
|
|
444
|
+
"timestamp": "2026-06-13T14:23:45Z",
|
|
445
|
+
"preset": "enterprise",
|
|
446
|
+
"compliance_enabled": true,
|
|
447
|
+
"frameworks": [
|
|
448
|
+
{
|
|
449
|
+
"name": "gdpr",
|
|
450
|
+
"status": "partial",
|
|
451
|
+
"score": 80,
|
|
452
|
+
"requirements": [
|
|
453
|
+
{
|
|
454
|
+
"id": "GDPR-001",
|
|
455
|
+
"name": "Especificación clara",
|
|
456
|
+
"status": "pass",
|
|
457
|
+
"evidence": "spec.md 2.5 KB"
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
"id": "GDPR-004",
|
|
461
|
+
"name": "Data retention policy",
|
|
462
|
+
"status": "fail",
|
|
463
|
+
"evidence": null,
|
|
464
|
+
"action": "/sdd.especificar",
|
|
465
|
+
"severity": "medium"
|
|
466
|
+
}
|
|
467
|
+
]
|
|
468
|
+
}
|
|
469
|
+
],
|
|
470
|
+
"total_gaps": 3,
|
|
471
|
+
"total_severity": "medium",
|
|
472
|
+
"next_action": "Execute: /sdd.especificar"
|
|
473
|
+
}
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
---
|
|
477
|
+
|
|
478
|
+
## Troubleshooting
|
|
479
|
+
|
|
480
|
+
### "Error: sdd.config.yaml not found"
|
|
481
|
+
|
|
482
|
+
```bash
|
|
483
|
+
# Verifica que estés en la raíz del proyecto
|
|
484
|
+
ls sdd.config.yaml
|
|
485
|
+
|
|
486
|
+
# Si no existe, inicializa SDD-ES
|
|
487
|
+
/sdd.init --preset=enterprise
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
### "Error: .sdd/ directory is empty"
|
|
491
|
+
|
|
492
|
+
```bash
|
|
493
|
+
# El directorio .sdd/ debe existir con artefactos
|
|
494
|
+
# Genera al menos una especificación
|
|
495
|
+
/sdd.especificar "Sistema procesa datos de usuarios"
|
|
496
|
+
|
|
497
|
+
# Luego intenta de nuevo
|
|
498
|
+
/sdd.compliance
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
### "Gap reportado es falso positivo"
|
|
502
|
+
|
|
503
|
+
```bash
|
|
504
|
+
# Abre docs/COMPLIANCE.md para entender qué busca el agente
|
|
505
|
+
# Ajusta tu especificación o sdd.config.yaml según corresponda
|
|
506
|
+
# Si aún así es falso, reporta:
|
|
507
|
+
/sdd.issue "compliance-gap-false-positive"
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
---
|
|
511
|
+
|
|
512
|
+
## Resumen rápido
|
|
513
|
+
|
|
514
|
+
| Comando | Para qué | Frecuencia |
|
|
515
|
+
|---------|----------|-----------|
|
|
516
|
+
| `/sdd.compliance` | Diagnóstico completo | Semanal o antes de release |
|
|
517
|
+
| `/sdd.compliance --framework=gdpr` | Solo GDPR | Cuando manejes datos EU |
|
|
518
|
+
| `/sdd.compliance --output=json --strict` | CI/CD integration | En cada PR |
|
|
519
|
+
| `/sdd.compliance --framework=hipaa` | Solo HIPAA | Si es healthcare |
|
|
520
|
+
|
|
521
|
+
**Prioridad**: Resuelve gaps ALTO primero, luego MEDIO, BAJO al final.
|
|
@@ -60,7 +60,7 @@ Calidad: cobertura 75% · warnings: no · funciones ≤50 líneas
|
|
|
60
60
|
¿Aplicar este preset? Los valores que hayas personalizado se sobreescribirán.
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
-
Si el usuario confirma, mezcla los valores del preset sobre el `sdd.config.yaml` existente (preserva secciones como `
|
|
63
|
+
Si el usuario confirma, mezcla los valores del preset sobre el `sdd.config.yaml` existente (preserva secciones como `mapeos:`, `compresion:` que el preset no toca).
|
|
64
64
|
|
|
65
65
|
## PASO 3 — Modo: Mostrar
|
|
66
66
|
|
|
@@ -179,6 +179,39 @@ CAMBIOS:
|
|
|
179
179
|
Los cambios se aplican a la próxima ejecución de comandos SDD.
|
|
180
180
|
```
|
|
181
181
|
|
|
182
|
+
## Modo: Control de esfuerzo (effort level)
|
|
183
|
+
|
|
184
|
+
Claude Code tiene un nivel de esfuerzo **global** que controla cuánto razonamiento aplica el modelo. No es un campo de agente — es una configuración de la sesión.
|
|
185
|
+
|
|
186
|
+
**Cómo cambiarlo:**
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
# En la sesión activa de Claude Code — escribe directamente:
|
|
190
|
+
/effort low # rápido, respuestas cortas
|
|
191
|
+
/effort medium # balanceado (default)
|
|
192
|
+
/effort high # más razonamiento
|
|
193
|
+
/effort xhigh # máximo — equivale a "ultracode"
|
|
194
|
+
|
|
195
|
+
# O desde el terminal antes de abrir Claude Code:
|
|
196
|
+
CLAUDE_CODE_EFFORT_LEVEL=xhigh claude
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**Recomendación SDD-ES por fase:**
|
|
200
|
+
|
|
201
|
+
| Fase | Effort recomendado | Razón |
|
|
202
|
+
|------|--------------------|-------|
|
|
203
|
+
| `/sdd.descubrir`, `/sdd.especificar` | `medium` | Exploración inicial |
|
|
204
|
+
| `/sdd.planificar`, `/sdd.analizar` | `high` | Decisiones con impacto |
|
|
205
|
+
| `/sdd.implementar` (agentes OPUS) | `xhigh` | Arquitectura, seguridad, BD |
|
|
206
|
+
| `/sdd.implementar` (agentes SONNET) | `medium` | Implementación estándar |
|
|
207
|
+
| `/sdd.qa`, `/sdd.verificar` | `high` | Revisión crítica |
|
|
208
|
+
| `/sdd.documentar`, investigación | `low` | Tareas de baja complejidad |
|
|
209
|
+
|
|
210
|
+
Cuando el usuario escribe `/sdd.configurar effort:X`:
|
|
211
|
+
- Muestra el nivel actual y el recomendado para la fase activa
|
|
212
|
+
- Indica cómo aplicarlo (`/effort X` en Claude Code o la variable de entorno)
|
|
213
|
+
- NO modifica ningún archivo de agente — el effort es siempre global de sesión
|
|
214
|
+
|
|
182
215
|
## Modo asistente: Recomendar configuración
|
|
183
216
|
|
|
184
217
|
Si el usuario escribe `/sdd.configurar recomendar`:
|