sdd-es 2.0.0 → 2.5.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.
Files changed (95) hide show
  1. package/.claude/settings.json +21 -45
  2. package/LICENSE +21 -0
  3. package/README.md +51 -21
  4. package/agents/architecture-designer.md +174 -0
  5. package/agents/arquitecto.md +16 -1
  6. package/agents/asesor-datos.md +15 -1
  7. package/agents/critico.md +37 -1
  8. package/agents/desarrollador-backend.md +3 -1
  9. package/agents/desarrollador-frontend.md +3 -1
  10. package/agents/disenador-api.md +13 -1
  11. package/agents/documentador.md +3 -1
  12. package/agents/investigador.md +3 -1
  13. package/agents/operaciones.md +3 -1
  14. package/agents/product-designer.md +232 -0
  15. package/agents/revisor.md +25 -1
  16. package/agents/seguridad.md +5 -1
  17. package/agents/tester.md +3 -1
  18. package/claude-hooks/agent-memory.js +154 -0
  19. package/cli/index.js +1 -2
  20. package/commands/sdd.analizar.md +23 -2
  21. package/commands/sdd.compliance.md +516 -0
  22. package/commands/sdd.configurar.md +33 -0
  23. package/commands/sdd.constitucion.md +198 -23
  24. package/commands/sdd.construir.md +210 -0
  25. package/commands/sdd.dise/303/261ar.md +188 -0
  26. package/commands/sdd.estado.md +68 -1
  27. package/commands/sdd.exportar.md +344 -0
  28. package/commands/sdd.implementar.md +203 -23
  29. package/commands/sdd.interpretar.md +239 -0
  30. package/commands/sdd.md +70 -1
  31. package/commands/sdd.optimizar.md +164 -0
  32. package/commands/sdd.planificar.md +64 -0
  33. package/commands/sdd.verificar.md +10 -0
  34. package/craft/accessibility-baseline.md +216 -0
  35. package/craft/anti-ai-slop.md +158 -0
  36. package/craft/color.md +160 -0
  37. package/craft/typography.md +121 -0
  38. package/design-systems/bold-brutalist/DESIGN.md +239 -0
  39. package/design-systems/editorial-minimal/DESIGN.md +205 -0
  40. package/design-systems/neutral-modern/DESIGN.md +227 -0
  41. package/design-systems/vibrant-consumer/DESIGN.md +257 -0
  42. package/design-systems/warm-editorial/DESIGN.md +221 -0
  43. package/docs/AGENTES.md +4 -1
  44. package/docs/FABRICA.md +164 -115
  45. package/docs/MEMORIA-Y-OBSERVABILIDAD.md +237 -0
  46. package/docs/MODELOS.md +3 -0
  47. package/docs/QUE-PASA-SI-FALLA.md +404 -0
  48. package/docs/SEGURIDAD-PARA-NOTECNICOS.md +280 -0
  49. package/package.json +5 -3
  50. package/skills/cache-audit/SKILL.md +163 -0
  51. package/skills/critica-diseno/SKILL.md +193 -0
  52. package/skills/descubrir-idea/SKILL.md +133 -0
  53. package/skills/effort-router/SKILL.md +128 -0
  54. package/skills/elegir-direccion/SKILL.md +184 -0
  55. package/skills/github-connect/IMPLEMENTATION-CHECKLIST.md +297 -0
  56. package/skills/github-connect/INDEX.md +223 -0
  57. package/skills/github-connect/INTEGRATION.md +361 -0
  58. package/skills/github-connect/QUICK-START.md +168 -0
  59. package/skills/github-connect/README.md +414 -0
  60. package/skills/github-connect/RESUMEN_IMPLEMENTACION.txt +374 -0
  61. package/skills/github-connect/SKILL.md +343 -0
  62. package/skills/github-connect/STRUCTURE.txt +252 -0
  63. package/skills/github-connect/example-config.yaml +41 -0
  64. package/skills/github-connect/github-connect.sh +419 -0
  65. package/skills/interpretar-idea/SKILL.md +254 -0
  66. package/skills/memory-compactor/SKILL.md +114 -0
  67. package/skills/modo-guiado/SKILL.md +12 -2
  68. package/skills/observabilidad-consumo/SKILL.md +164 -0
  69. package/skills/token-budget/SKILL.md +154 -0
  70. package/skills/vercel-deploy/00-START-HERE.txt +364 -0
  71. package/skills/vercel-deploy/CHECKLIST.md +205 -0
  72. package/skills/vercel-deploy/EXEC-SUMMARY.txt +322 -0
  73. package/skills/vercel-deploy/FLOW.txt +334 -0
  74. package/skills/vercel-deploy/INDEX.md +276 -0
  75. package/skills/vercel-deploy/INTEGRATION.md +328 -0
  76. package/skills/vercel-deploy/MANIFEST.md +310 -0
  77. package/skills/vercel-deploy/README.md +65 -0
  78. package/skills/vercel-deploy/SKILL.md +356 -0
  79. package/skills/vercel-deploy/deploy.sh +298 -0
  80. package/skills/vercel-deploy/estado.json.example +205 -0
  81. package/skills/vercel-deploy/skill.yaml +323 -0
  82. package/skills/vercel-deploy/vercel-deploy.sh +216 -0
  83. package/skills/wireframe-mvp/SKILL.md +157 -0
  84. package/.claude-plugin/marketplace.json +0 -31
  85. package/.claude-plugin/plugin.json +0 -97
  86. package/docs/EJEMPLO-PRACTICA.md +0 -383
  87. package/docs/EJEMPLOS.md +0 -212
  88. /package/skills/{compresion-tokens.md → compresion-tokens/SKILL.md} +0 -0
  89. /package/skills/{constitucion-constraint.md → constitucion-constraint/SKILL.md} +0 -0
  90. /package/skills/{deteccion-stack.md → deteccion-stack/SKILL.md} +0 -0
  91. /package/skills/{enrutador-agentes.md → enrutador-agentes/SKILL.md} +0 -0
  92. /package/skills/{gestion-estado.md → gestion-estado/SKILL.md} +0 -0
  93. /package/skills/{indexador.md → indexador/SKILL.md} +0 -0
  94. /package/skills/{validacion-spec.md → validacion-spec/SKILL.md} +0 -0
  95. /package/skills/{verificador-implementacion.md → verificador-implementacion/SKILL.md} +0 -0
@@ -0,0 +1,237 @@
1
+ # Memoria, Observabilidad y Optimización de Tokens en SDD-ES
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.5.0).
4
+
5
+ ---
6
+
7
+ ## 1. Memoria por agente
8
+
9
+ ### Qué es
10
+
11
+ Cada agente del Grupo OPUS (arquitecto, asesor-datos, disenador-api, critico) tiene un archivo de memoria persistente en:
12
+
13
+ ```
14
+ .sdd/memoria/agente-{nombre}.md
15
+ ```
16
+
17
+ Este archivo crece automáticamente durante la sesión: cada vez que el agente escribe un archivo, el hook `PostToolUse` registra la fecha, el archivo modificado y un resumen del contenido.
18
+
19
+ ### Para qué sirve
20
+
21
+ Claude Code no mantiene contexto entre sesiones. El archivo de memoria resuelve este problema: al inicio de una nueva sesión, el agente lee su archivo de memoria y recupera las decisiones tomadas en sesiones anteriores — qué arquitectura se eligió, qué restricciones aplican, qué se acordó con el usuario.
22
+
23
+ ### Cómo funciona el hook
24
+
25
+ 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
+
27
+ Desde v2.5.0, el hook también emite una alerta por stderr cuando la memoria de un agente supera 50KB:
28
+
29
+ ```
30
+ ⚠️ [agent-memory] Memoria de arquitecto supera 52KB — considera ejecutar /sdd.optimizar memoria
31
+ ```
32
+
33
+ ### Formato de una entrada de memoria
34
+
35
+ ```markdown
36
+ ## 2026-06-13 — .sdd/especificaciones/2026-06-13-auth/spec.md
37
+ > # Especificación: Autenticación con magic link — Decisión: usar Resend para emails
38
+ ```
39
+
40
+ ### Cuándo leer la memoria
41
+
42
+ Los agentes leen su archivo de memoria al inicio de cada invocación. No necesitas hacer nada manualmente: si el archivo existe, el agente lo lee.
43
+
44
+ ### Cuándo comprimir la memoria
45
+
46
+ Cuando la memoria supera 80 entradas o 50KB, empieza a consumir ventana de contexto sin aportar valor (entradas antiguas del mismo archivo son redundantes). Usa:
47
+
48
+ ```
49
+ /sdd.optimizar memoria
50
+ ```
51
+
52
+ Esto invoca `memory-compactor`, que deduplica entradas del mismo archivo (conserva solo la más reciente) y aplica compresión caveman (Nivel Full de `compresion-tokens`). Siempre guarda un backup `.original`.
53
+
54
+ ---
55
+
56
+ ## 2. Ledger de consumo (observabilidad)
57
+
58
+ ### Qué es
59
+
60
+ `.sdd/observabilidad/consumo.jsonl` es un archivo de líneas JSON (una por evento) que registra cada escritura de archivo por cualquier agente, incluyendo el agente principal. Se escribe en tiempo real por el mismo hook `agent-memory.js`.
61
+
62
+ Ejemplo de una línea del ledger:
63
+
64
+ ```json
65
+ {"ts":"2026-06-13T14:32:07.123Z","agente":"arquitecto","tool":"Write","archivo":".sdd/especificaciones/2026-06-13-auth/spec.md","bytes":4821}
66
+ ```
67
+
68
+ ### Campos
69
+
70
+ | Campo | Descripción |
71
+ |-------|-------------|
72
+ | `ts` | Timestamp ISO 8601 del momento de escritura |
73
+ | `agente` | Nombre del agente (`CLAUDE_AGENT_NAME`) o `"main"` si es la sesión principal |
74
+ | `tool` | Herramienta usada: `Write`, `Edit`, `MultiEdit` |
75
+ | `archivo` | Ruta del archivo modificado |
76
+ | `bytes` | Tamaño en bytes del contenido escrito |
77
+
78
+ ### Limitación importante
79
+
80
+ Los `bytes` miden el tamaño del contenido escrito en cada invocación — **no el consumo real de tokens del modelo**. Claude Code no expone el conteo de tokens al hook. Los bytes son un **proxy de magnitud**: escrituras grandes correlacionan con más trabajo, pero no son equivalentes a la facturación de la API.
81
+
82
+ Para costos exactos, usa el dashboard de Anthropic Console o la API de usage.
83
+
84
+ ### Cómo usar el ledger
85
+
86
+ ```
87
+ /sdd.estado consumo
88
+ ```
89
+
90
+ Esto invoca `observabilidad-consumo` y produce:
91
+ - Tabla de invocaciones y bytes por agente
92
+ - Alertas de fan-out (>5 agentes distintos, >20 invocaciones de un mismo agente)
93
+ - Top momentos de actividad por minuto
94
+
95
+ ### Vaciar el ledger entre sesiones
96
+
97
+ ```bash
98
+ echo "" > .sdd/observabilidad/consumo.jsonl
99
+ ```
100
+
101
+ ---
102
+
103
+ ## 3. Técnicas de optimización de tokens (v2.5.0)
104
+
105
+ ### El comando unificado
106
+
107
+ ```
108
+ /sdd.optimizar
109
+ ```
110
+
111
+ Ejecuta el ciclo completo de 6 pasos: consumo → routing → compresión de memoria → auditoría de caché → presupuesto → reporte con acciones ordenadas por impacto.
112
+
113
+ Subcomandos disponibles:
114
+
115
+ | Subcomando | Qué hace |
116
+ |---|---|
117
+ | `/sdd.optimizar` | Ciclo completo |
118
+ | `/sdd.optimizar tokens` | Solo effort-router + cache-audit |
119
+ | `/sdd.optimizar memoria` | Solo memory-compactor |
120
+ | `/sdd.optimizar presupuesto` | Solo token-budget |
121
+
122
+ ---
123
+
124
+ ### Técnica 1 — Effort routing (mayor impacto)
125
+
126
+ La skill `effort-router` recomienda el modelo y nivel de esfuerzo correcto para cada agente según la fase actual. Evita pagar Opus cuando la tarea es mecánica.
127
+
128
+ **Regla de oro:** si el agente toma una decisión que no se puede deshacer → Opus. Si ejecuta una decisión ya tomada → Sonnet o Haiku.
129
+
130
+ | Grupo | Fases | Ahorro vs. Opus-en-todo |
131
+ |---|---|---|
132
+ | A — Opus siempre | especificacion, planificacion, analisis | 0% |
133
+ | B — Sonnet suficiente | implementacion (backend/frontend), verificacion, qa | ~40% |
134
+ | C — Haiku suficiente | tests, docs, deploy, retro | ~80% |
135
+
136
+ Ahorro típico en una fase de `implementacion` completa: **~56%**.
137
+
138
+ ---
139
+
140
+ ### Técnica 2 — Compresión de memoria (previene degradación de contexto)
141
+
142
+ La skill `memory-compactor` actúa sobre `.sdd/memoria/agente-*.md`:
143
+
144
+ 1. **Deduplica**: misma ruta modificada en fechas distintas → conserva solo la más reciente (reduce 40-60% en proyectos largos)
145
+ 2. **Comprime**: aplica el diccionario caveman de `compresion-tokens` (Nivel Full, 80+ pares de reemplazos) sobre el texto de cada entrada
146
+ 3. **Backup**: guarda `.original` antes de tocar nada
147
+
148
+ Cuándo actúa: cuando hay >80 entradas O >50KB en algún archivo de memoria.
149
+
150
+ ---
151
+
152
+ ### Técnica 3 — Auditoría de caché
153
+
154
+ La skill `cache-audit` detecta los 3 patrones que invalidan el prompt caching silenciosamente:
155
+
156
+ | Invalidador | Severidad | Fix |
157
+ |---|---|---|
158
+ | Timestamps dinámicos en el system prompt (`2026-06-13`) | Alta | Mover al final del prompt, en bloque separado |
159
+ | UUIDs / IDs de sesión embebidos en el prompt | Alta | Pasar como argumento, no como parte del system prompt |
160
+ | Contenido JSONL (`consumo.jsonl`) embebido en el prompt | Media | Leer con tool `Read` cuando se necesite |
161
+
162
+ El prompt caching reduce hasta un 90% el costo de tokens de entrada para bloques estables. Un solo invalidador en el sistema prompt anula el beneficio completo.
163
+
164
+ ---
165
+
166
+ ### Técnica 4 — Presupuesto por fase
167
+
168
+ La skill `token-budget` proyecta el costo relativo de las fases restantes y recomienda cuándo usar PTC paralelo vs. serial. Si hay historial en `consumo.jsonl`, calibra los pesos con la velocidad real de la sesión.
169
+
170
+ Regla de paralelización (de `orquestacion-ptc`):
171
+
172
+ | Tareas pendientes | Estrategia | Ahorro estimado |
173
+ |---|---|---|
174
+ | 1-2 | Serial directo | — |
175
+ | 3-5 independientes | PTC paralelo | ~70% |
176
+ | 6-10 independientes | PTC en 2 lotes | ~65% |
177
+ | Con dependencias | Serial (respetar grafo) | — |
178
+
179
+ ---
180
+
181
+ ## 4. Cómo controlar los agentes con estos datos
182
+
183
+ ### Detectar paralelización innecesaria
184
+
185
+ Si el ledger muestra >5 agentes activos en una sola fase, revisar `orquestacion-ptc`. Si los agentes se bloquean entre sí (uno necesita el output del otro), paralelizarlos desperdicia tokens.
186
+
187
+ Señal del ledger: muchos agentes distintos con pocas invocaciones cada uno → fan-out excesivo.
188
+
189
+ ### Detectar agentes en loop
190
+
191
+ Si un agente tiene >20 invocaciones en el ledger de una sesión, está probablemente en un ciclo de auto-corrección.
192
+
193
+ Solución: `/sdd.estado agentes` y verificar condiciones de salida claras.
194
+
195
+ ### Detectar memoria que conviene comprimir
196
+
197
+ La alerta del hook (`⚠️ Memoria supera 50KB`) es la señal principal. También visible desde `/sdd.optimizar`.
198
+
199
+ ---
200
+
201
+ ## 5. Arquitectura del sistema (v2.5.0)
202
+
203
+ ```
204
+ claude-hooks/
205
+ agent-memory.js ← Hook PostToolUse (Write/Edit/MultiEdit)
206
+ → .sdd/memoria/agente-{nombre}.md (4 agentes OPUS)
207
+ → .sdd/observabilidad/consumo.jsonl (todos los agentes)
208
+ → stderr: alerta si memoria supera 50KB
209
+
210
+ skills/
211
+ observabilidad-consumo/ ← Lee consumo.jsonl, produce reporte, detecta fan-out
212
+ effort-router/ ← Routing Haiku/Sonnet/Opus por fase (v2.5.0)
213
+ memory-compactor/ ← Deduplicación + compresión de .sdd/memoria/ (v2.5.0)
214
+ cache-audit/ ← Detecta invalidadores silenciosos de caché (v2.5.0)
215
+ token-budget/ ← Proyecta costo por fase + recomendación PTC (v2.5.0)
216
+ compresion-tokens/ ← Diccionario caveman — reutilizado por memory-compactor
217
+ orquestacion-ptc/ ← Criterios PTC — reutilizados por token-budget
218
+
219
+ commands/
220
+ sdd.estado.md ← /sdd.estado consumo
221
+ sdd.optimizar.md ← Ciclo completo de optimización (v2.5.0)
222
+ sdd.comprimir.md ← /sdd.comprimir memoria → memory-compactor
223
+ ```
224
+
225
+ ---
226
+
227
+ ## 6. Tabla completa de skills de eficiencia
228
+
229
+ | Skill | Qué hace | Cuándo usarla |
230
+ |-------|----------|---------------|
231
+ | `observabilidad-consumo` | Reporte del ledger JSONL | Siempre, o desde `/sdd.estado consumo` |
232
+ | `effort-router` | Recomienda Haiku/Sonnet/Opus por fase | Al inicio de cada fase o desde `/sdd.optimizar` |
233
+ | `memory-compactor` | Deduplica y comprime `.sdd/memoria/` | Cuando hay alerta de 50KB o desde `/sdd.optimizar memoria` |
234
+ | `cache-audit` | Detecta invalidadores de caché | Antes de `/sdd.implementar` en proyectos grandes |
235
+ | `token-budget` | Proyecta costo de fases restantes | Antes de fases costosas (analisis, implementacion larga) |
236
+ | `orquestacion-ptc` | Explica cuándo paralelizar agentes | Fan-out alto en el ledger |
237
+ | `compresion-tokens` | Comprime cualquier archivo `.sdd/` | Memoria muy larga, specs verbosas |
package/docs/MODELOS.md CHANGED
@@ -15,6 +15,9 @@
15
15
  | critico | **opus** | sonnet | haiku | Requiere razonamiento abstracto |
16
16
  | seguridad | **opus** | — | sonnet, haiku | Auditoría debe ser exhaustiva |
17
17
  | documentador | **sonnet** | haiku | opus (overkill) | Generación estructurada |
18
+ | investigador | **sonnet** | opus (investigación profunda) | haiku | Análisis comparativo |
19
+ | product-designer | **opus** | sonnet (MVPs) | haiku | Decisiones de producto irreversibles |
20
+ | architecture-designer | **sonnet** | opus (stacks complejos) | haiku | Propuesta técnica estructurada |
18
21
 
19
22
  ## Filosofía
20
23
 
@@ -0,0 +1,404 @@
1
+ # ¿Qué Pasa Si Algo Sale Mal? Guía de Recuperación
2
+
3
+ Este documento responde a las preguntas más comunes de usuarios no-técnicos cuando algo no sale como esperaban.
4
+
5
+ ---
6
+
7
+ ## Premisa: Tu código está **siempre seguro**
8
+
9
+ Antes de cualquier respuesta, recuerda esto:
10
+
11
+ ✅ Tu código está guardado en GitHub (historial completo)
12
+ ✅ Cada cambio se registra (puedes ver quién cambió qué y cuándo)
13
+ ✅ Puedes volver a una versión anterior en cualquier momento (sin perder nada)
14
+
15
+ ---
16
+
17
+ ## Escenario 1: "El deploy falló — mi app no está en internet"
18
+
19
+ ### ¿Por qué pasó?
20
+
21
+ ```
22
+ Vercel rechazó el código porque:
23
+ → Falta una variable de entorno
24
+ → Un archivo obligatorio no se generó
25
+ → El código tiene un error que no detectamos en pruebas
26
+ ```
27
+
28
+ ### ¿Qué hago?
29
+
30
+ **Opción A: Reintentar** (si fue un error pasajero)
31
+
32
+ ```
33
+ Claude responde:
34
+ "Voy a intentar publicar de nuevo..."
35
+
36
+ [Reintentos automáticos con espera]
37
+ ```
38
+
39
+ **Opción B: Arreglar el código**
40
+
41
+ ```
42
+ Si el error es técnico (variable faltante, etc.):
43
+
44
+ Tú dices: "Cambio X cosa"
45
+ Claude: "¿Qué cambias?"
46
+ Tú: "Agrega soporte para pagos"
47
+
48
+ Claude:
49
+ 1. Edita el código
50
+ 2. Prueba de nuevo
51
+ 3. Intenta publicar
52
+
53
+ Tu versión anterior sigue en GitHub → sin miedo de cambiar
54
+ ```
55
+
56
+ **Opción C: Esperar y intentar después**
57
+
58
+ ```
59
+ Tú dices: "Dejar para después"
60
+
61
+ Claude:
62
+ ✅ Tu código está seguro en GitHub
63
+ ✅ Puedes intentar publicar mañana
64
+ ✅ Nada se perdió
65
+ ```
66
+
67
+ ---
68
+
69
+ ## Escenario 2: "Cambié de idea a mitad del proceso"
70
+
71
+ ### Caso: Empezamos a construir, pero quiero otra cosa
72
+
73
+ **Ejecuta `/sdd.constitucion` de nuevo:**
74
+
75
+ ```
76
+ Claude detecta: "Ya hay una constitución"
77
+
78
+ ¿Quieres actualizar los principios?
79
+
80
+ Tú: "Sí, cambio X"
81
+
82
+ Claude:
83
+ 1. Actualiza la constitución
84
+ 2. Carga la especificación anterior
85
+ 3. ¿Modifico la especificación también?
86
+ ```
87
+
88
+ **Lo que NO se pierde:**
89
+
90
+ ```
91
+ ✅ Especificación anterior (en GitHub)
92
+ ✅ Plan anterior (en GitHub)
93
+ ✅ Código que se construyó (en GitHub — rama anterior)
94
+
95
+ Tú empiezas una nueva rama con los cambios.
96
+ Si cambias de idea de vuelta, la anterior sigue disponible.
97
+ ```
98
+
99
+ ---
100
+
101
+ ## Escenario 3: "Publiqué pero después quiero cambiar algo"
102
+
103
+ ### Opción A: Cambio rápido (antes de compartir)
104
+
105
+ ```
106
+ Tú dices: "Cambio el color del botón"
107
+
108
+ Claude:
109
+ 1. Edita el código
110
+ 2. Prueba
111
+ 3. Publica la nueva versión (3 minutos)
112
+
113
+ Usuarios no notan nada (refresca la página y ven la versión nueva)
114
+ ```
115
+
116
+ ### Opción B: Cambio importante (que afecta datos)
117
+
118
+ ```
119
+ Tú dices: "Quiero agregar una nueva pregunta al formulario"
120
+
121
+ Claude:
122
+ 1. Actualiza la especificación
123
+ 2. Genera un plan
124
+ 3. Pide tu aprobación
125
+ 4. Construye
126
+ 5. Prueba
127
+ 6. Publica
128
+
129
+ [Igual que la primera vez, pero más rápido porque ya tiene contexto]
130
+ ```
131
+
132
+ ### Opción C: "Me arrepiento — vuelvo a la versión anterior"
133
+
134
+ ```
135
+ Tú dices: "Vuelve a cómo estaba hace 2 horas"
136
+
137
+ Claude:
138
+ 1. Ve a GitHub
139
+ 2. Encuentra ese commit
140
+ 3. Publica esa versión
141
+
142
+ Tu sitio está igual que antes. Sin pérdida de datos.
143
+ ```
144
+
145
+ ---
146
+
147
+ ## Escenario 4: "Mi cliente dice que algo no funciona"
148
+
149
+ ### Paso 1: Reproducir el problema
150
+
151
+ ```
152
+ Tú dices: "Mi cliente dice que X no funciona"
153
+
154
+ Claude:
155
+ 1. Prueba el sitio en vivo
156
+ 2. Intenta reproducir el problema
157
+ 3. Pregunta: "¿Qué exactamente hizo tu cliente?"
158
+ ```
159
+
160
+ **Ejemplo:**
161
+
162
+ ```
163
+ Tú: "Mi cliente dice que el formulario no calcula el precio"
164
+
165
+ Claude:
166
+ "¿A qué tipo de proyecto selecciona?"
167
+ Tú: "Logo simple"
168
+
169
+ Claude:
170
+ "¿Cuántas revisiones elige?"
171
+ Tú: "Normal"
172
+
173
+ [Claude llena el formulario con esos datos]
174
+
175
+ Claude:
176
+ "Aquí veo el problema: el precio dice $200, pero debería ser $300"
177
+ ```
178
+
179
+ ### Paso 2: Identificar la causa
180
+
181
+ ```
182
+ Claude diagnostica:
183
+
184
+ ❌ Error de cálculo (la fórmula está mal)
185
+ ❌ Falta una opción (ej: urgencia 24 horas)
186
+ ❌ Base de datos no guarda bien los datos
187
+ ✅ Problema del navegador del cliente (caché viejo)
188
+ ```
189
+
190
+ ### Paso 3: Arreglar
191
+
192
+ **Si es cálculo incorrecto:**
193
+
194
+ ```
195
+ Tú: "El precio está mal"
196
+
197
+ Claude:
198
+ "¿Cuál debería ser el precio correcto para logo + normal?"
199
+ Tú: "$400"
200
+
201
+ Claude:
202
+ 1. Edita la fórmula
203
+ 2. Prueba con diferentes opciones
204
+ 3. Publica
205
+
206
+ Listo. Tu cliente verá el precio correcto.
207
+ ```
208
+
209
+ **Si es caché del navegador:**
210
+
211
+ ```
212
+ Claude:
213
+ "Dile a tu cliente que actualice la página (Ctrl+F5 o Cmd+Shift+R)"
214
+
215
+ Eso borra la copia antigua del sitio de su navegador
216
+ y carga la versión nueva.
217
+ ```
218
+
219
+ ---
220
+
221
+ ## Escenario 5: "¿Qué pasa si GitHub desaparece?"
222
+
223
+ ### Respuesta: No es realista, pero aquí está el plan
224
+
225
+ ```
226
+ GitHub es propiedad de Microsoft. Es tan importante como AWS o Google.
227
+ La probabilidad de que desaparezca es 0.001%.
228
+
229
+ Pero si quieres dormir tranquilo:
230
+
231
+ 1. Tu código está en Vercel también (servidor en vivo)
232
+ 2. Puedes hacer "backup" a tu computadora en cualquier momento
233
+ (comando: git clone https://github.com/tu-user/tu-repo)
234
+ 3. Puedes mover tu repo a GitLab o Gitea en 5 minutos
235
+ ```
236
+
237
+ ---
238
+
239
+ ## Escenario 6: "¿Qué pasa si Vercel cobra y no puedo pagar?"
240
+
241
+ ### Respuesta: No sucede sin advertencia
242
+
243
+ ```
244
+ Vercel es gratis hasta 100GB de ancho de banda (datos descargados).
245
+
246
+ Si algo cambia:
247
+ 1. Te lo avisan con 30 días de anticipación
248
+ 2. Tu sitio NO desaparece (sigue funcionando)
249
+ 3. Puedes mover a otro servidor gratis (Netlify, Railway, etc.)
250
+ 4. Tus datos en GitHub no se pierden
251
+
252
+ Claude puede ayudarte a mover en 30 minutos.
253
+ ```
254
+
255
+ ---
256
+
257
+ ## Escenario 7: "¿Qué pasa si cambia mi requerimiento legal?"
258
+
259
+ ### Ejemplo: Necesito cumplir GDPR, HIPAA, etc.
260
+
261
+ ```
262
+ Tú: "Mi cliente quiere que el sitio cumpla GDPR"
263
+
264
+ Claude:
265
+ 1. Ejecuta /sdd.compliance automáticamente
266
+ 2. Identifica qué falta
267
+ 3. Genera un plan
268
+ 4. Pregunta: "¿Apruebo estos cambios?"
269
+ 5. Implementa
270
+
271
+ Ejemplo de cambios:
272
+ - Agregar "política de privacidad"
273
+ - Permitir que usuarios descarguen sus datos
274
+ - Encriptar datos sensibles
275
+ - Otros cambios específicos
276
+ ```
277
+
278
+ ---
279
+
280
+ ## Escenario 8: "¿Qué pasa si alguien hackea mi sitio?"
281
+
282
+ ### Respuesta: SDD-ES lo previene
283
+
284
+ ```
285
+ Durante el proceso:
286
+
287
+ ✅ El agente de seguridad revisó el código automáticamente
288
+ ✅ Se prueban ataques comunes (XSS, SQL injection, etc.)
289
+ ✅ Secretos (contraseñas, API keys) no están en el código
290
+ ✅ Validación de datos (usuario no puede inyectar código malicioso)
291
+
292
+ Si algo pasara:
293
+
294
+ 1. GitHub registra quién cambió qué (auditoría completa)
295
+ 2. Puedes volver a una versión anterior en segundos
296
+ 3. Investigar qué pasó (historial de cambios)
297
+ ```
298
+
299
+ ---
300
+
301
+ ## Escenario 9: "¿Y si alguien lo copia?"
302
+
303
+ ### Respuesta: Depende del contexto
304
+
305
+ ```
306
+ Casos:
307
+
308
+ ❌ Algo muy valioso (algoritmo secreto, datos únicos)
309
+ → Considera cerrar el repo (private en GitHub)
310
+ → Requiere autenticación para acceder al sitio
311
+
312
+ ✅ Algo público (herramienta útil, componente reutilizable)
313
+ → Está bien que la copien
314
+ → Agrega tu licencia (MIT: "úsalo gratis, dame crédito")
315
+ ```
316
+
317
+ ---
318
+
319
+ ## Escenario 10: "Pasó algo raro — no sé qué está mal"
320
+
321
+ ### Paso 1: Ejecutar el diagnóstico
322
+
323
+ ```
324
+ Tú: "Algo no funciona bien"
325
+
326
+ Claude:
327
+ "Voy a revisar todo..."
328
+
329
+ Ejecuta: /sdd.doctor
330
+
331
+ Este comando verifica:
332
+ ✅ Código sintaxis correcta
333
+ ✅ Todos los archivos presentes
334
+ ✅ Base de datos conectada
335
+ ✅ Servidor respondiendo
336
+ ✅ Tests pasando
337
+ ✅ Sin secretos expuestos
338
+ ```
339
+
340
+ ### Paso 2: Obtener un reporte
341
+
342
+ ```
343
+ Claude te muestra:
344
+
345
+ DIAGNOSTICO:
346
+ ✅ Código bien
347
+ ✅ Tests pasando
348
+ ❌ Base de datos no conecta
349
+
350
+ CAUSA PROBABLE:
351
+ El archivo de base de datos se eliminó accidentalmente.
352
+
353
+ SOLUCION:
354
+ Voy a restaurar desde GitHub...
355
+ ```
356
+
357
+ ---
358
+
359
+ ## Resumen: No hay error que no se pueda arreglar
360
+
361
+ | Problema | Tiempo | Reversible | Datos seguros |
362
+ |----------|--------|-----------|----------------|
363
+ | Deploy falló | 2 min reintentar | ✅ Sí | ✅ Sí (GitHub) |
364
+ | Cambié de idea | 10 min refactor | ✅ Sí | ✅ Sí (ramas) |
365
+ | Cliente reporta bug | 5 min fix + test | ✅ Sí | ✅ Sí (auditoria) |
366
+ | GitHub desaparece | 1 hora mover | ✅ Sí | ✅ Sí (backup local) |
367
+ | Vercel cobra extra | 30 min migrar | ✅ Sí | ✅ Sí (GitHub) |
368
+ | Compliance nueva | 20 min auditar | ✅ Sí | ✅ Sí (reportes) |
369
+ | Hackeo potencial | — | ✅ Sí (rollback) | ✅ Sí (GitHub audit) |
370
+
371
+ ---
372
+
373
+ ## Mantra: "Tu código está seguro, cualquier cambio es reversible"
374
+
375
+ Esto no es verdad en 99% de las herramientas.
376
+
377
+ **Con SDD-ES:**
378
+
379
+ ```
380
+ GitHub → historial completo (quién, qué, cuándo)
381
+ Vercel → roll-forward/rollback en 1 click
382
+ Especificación → documento versionado
383
+ Plan → aprobado por ti, registrado
384
+
385
+ No hay decisión que no puedas deshacer.
386
+ ```
387
+
388
+ ---
389
+
390
+ ## Última línea: Si necesitas ayuda
391
+
392
+ ```
393
+ Tu proyecto tiene:
394
+
395
+ 📝 Especificación clara (qué debería hacer)
396
+ 📋 Plan técnico (cómo se construyó)
397
+ 📊 Cambios documentados (quién hizo qué)
398
+ ✅ Tests automáticos (qué funciona)
399
+ 🔒 Auditoría de seguridad (vulnerabilidades conocidas)
400
+
401
+ Si algo está mal, Claude tiene TODA la información para arreglarlo.
402
+
403
+ Sin necesidad de programar. Solo describir el problema.
404
+ ```