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,328 @@
1
+ # Integración: vercel-deploy con sdd.implementar
2
+
3
+ Guía para integrar el skill **vercel-deploy** en el flujo de `/sdd.implementar`.
4
+
5
+ ## Overview
6
+
7
+ El skill **vercel-deploy** se invoca automáticamente al final del flujo `/sdd.implementar` cuando `deploy.plataforma: vercel` está configurado.
8
+
9
+ ```
10
+ /sdd.implementar
11
+ ├─ Paso 1: Análisis & planning
12
+ ├─ Paso 2: Desarrollo iterativo
13
+ ├─ Paso 3: Testing
14
+ ├─ Paso 4: Revisión de código
15
+ └─ Paso 5: DEPLOY → [vercel-deploy skill] ← AQUÍ
16
+
17
+ Gate humano: "¿Despliego en Vercel?" [sí/no/después]
18
+ ↓ sí
19
+ [Ejecutar 6 pasos de deploy]
20
+ ```
21
+
22
+ ## Requisitos previos
23
+
24
+ ### 1. Variable de entorno: VERCEL_TOKEN
25
+
26
+ El skill requiere `VERCEL_TOKEN` configurado. Dos opciones:
27
+
28
+ **Opción A: Exportar en el shell (sesión actual)**
29
+ ```bash
30
+ export VERCEL_TOKEN="vercel_xxx_abc123..."
31
+ ```
32
+
33
+ **Opción B: Persistente en `.env.local` (recomendado)**
34
+ ```bash
35
+ echo 'VERCEL_TOKEN=vercel_xxx_abc123...' >> .env.local
36
+ ```
37
+
38
+ Obtener el token:
39
+ 1. Ve a https://vercel.com/account/tokens
40
+ 2. Crea un nuevo token con scope **full**
41
+ 3. Cópialo y guárdalo
42
+
43
+ ### 2. (Opcional) VERCEL_PROJECT_ID
44
+
45
+ Si el proyecto ya existe en Vercel:
46
+ ```bash
47
+ export VERCEL_PROJECT_ID="prj_xyz123..."
48
+ # O en .env.local:
49
+ echo 'VERCEL_PROJECT_ID=prj_xyz123...' >> .env.local
50
+ ```
51
+
52
+ Obtener project ID:
53
+ 1. Ve a https://vercel.com/dashboard
54
+ 2. Abre tu proyecto
55
+ 3. Ve a Settings > General
56
+ 4. Copia el **Project ID**
57
+
58
+ ## Configuración en sdd.implementar
59
+
60
+ En el archivo `/sdd.implementar.md` (o similar), añade:
61
+
62
+ ### Sección de configuración
63
+ ```yaml
64
+ ---
65
+ deploy:
66
+ plataforma: vercel # ← Activa invocación automática del skill
67
+ framework: auto # ← Auto-detect (next, react, vue, astro, etc.)
68
+ environment: production # ← O 'staging'
69
+ ---
70
+ ```
71
+
72
+ ### Gate humano antes de deploy
73
+ Justo antes de invocar el skill:
74
+
75
+ ```markdown
76
+ ## ¿Estamos listos para producción?
77
+
78
+ Checklist final:
79
+ - [ ] Tests pasando localmente
80
+ - [ ] Cambios committeados
81
+ - [ ] Sin secretos en código
82
+ - [ ] Health check en staging (opcional)
83
+
84
+ **¿Despliego en Vercel?**
85
+
86
+ [sí] → Ejecutar vercel-deploy
87
+ [no] → Saltar deploy
88
+ [después] → Recordarme luego
89
+ ```
90
+
91
+ ### Invocación del skill
92
+ ```bash
93
+ # Automática (recomendada)
94
+ /sdd.implementar
95
+ # ... pasos 1-4 ...
96
+ # PASO 5: Deploy
97
+ if [ deploy.plataforma == "vercel" ]; then
98
+ vercel-deploy # ← Invoca el skill
99
+ fi
100
+
101
+ # O manual en cualquier momento:
102
+ /sdd.desplegar
103
+ /sdd.desplegar --environment staging
104
+ ```
105
+
106
+ ## Flujo esperado
107
+
108
+ ### Ejecución exitosa
109
+ ```
110
+ 🚀 DESPLIEGUE A VERCEL
111
+
112
+ ✅ Pre-checks completados
113
+ ✓ VERCEL_TOKEN presente
114
+ ✓ Rama limpia
115
+ ✓ Sin secretos
116
+ ✓ Tests verdes
117
+
118
+ ✅ vercel.json: detectado framework nextjs
119
+
120
+ ✅ Build local exitoso
121
+ ✅ Deploy a Vercel enviado
122
+ URL: https://mi-proyecto.vercel.app
123
+
124
+ ✅ Health check: HTTP 200 OK
125
+
126
+ Tu app está en vivo: https://mi-proyecto.vercel.app
127
+ Tiempo total: 3m 42s
128
+
129
+ Próximos pasos:
130
+ • Comparte URL: https://mi-proyecto.vercel.app
131
+ • Ejecuta /sdd.snapshot para actualizar estado
132
+ • Monitorea por 15 minutos
133
+ ```
134
+
135
+ ### Fallo y rollback automático
136
+ ```
137
+ 🚀 DESPLIEGUE A VERCEL
138
+
139
+ ✅ Pre-checks completados
140
+ ✅ Build local exitoso
141
+ ✅ Deploy a Vercel enviado
142
+
143
+ ⚠️ Health check: HTTP 502 (3 reintentos fallidos)
144
+
145
+ 🔄 Ejecutando rollback...
146
+ ✅ Rollback completado — versión anterior está en vivo
147
+
148
+ ❌ ACCIÓN REQUERIDA:
149
+ • Revisa los logs en https://vercel.com/dashboard
150
+ • Diagnostica el error (env vars, memoria, etc.)
151
+ • Corrije y ejecuta /sdd.desplegar nuevamente
152
+ ```
153
+
154
+ ### Fallo en pre-checks
155
+ ```
156
+ 🔍 PASO 1: Pre-checks
157
+
158
+ ❌ Error: VERCEL_TOKEN no configurado
159
+
160
+ Instrucciones para generar:
161
+ 1. Ve a https://vercel.com/account/tokens
162
+ 2. Crea un nuevo token con scope 'full'
163
+ 3. Guárdalo:
164
+ export VERCEL_TOKEN='vercel_xxx_...'
165
+ # O en .env.local:
166
+ echo 'VERCEL_TOKEN=vercel_xxx_...' >> .env.local
167
+ ```
168
+
169
+ ## Ejemplo: sdd.implementar.md con vercel-deploy
170
+
171
+ ```markdown
172
+ # sdd.implementar
173
+
174
+ Implementar y desplegar una feature.
175
+
176
+ ---
177
+
178
+ ## Configuración
179
+
180
+ deploy:
181
+ plataforma: vercel
182
+ framework: nextjs
183
+ environment: production
184
+
185
+ ---
186
+
187
+ ## Paso 1: Análisis
188
+
189
+ ...
190
+
191
+ ## Paso 2: Desarrollo
192
+
193
+ ...
194
+
195
+ ## Paso 3: Testing
196
+
197
+ ...
198
+
199
+ ## Paso 4: Code Review
200
+
201
+ ...
202
+
203
+ ## Paso 5: Deploy
204
+
205
+ El siguiente paso despliega tu code a Vercel **solo si todo está OK**.
206
+
207
+ ### ¿Estamos listos?
208
+
209
+ - [ ] Tests pasando
210
+ - [ ] Cambios committeados
211
+ - [ ] Sin secretos en código
212
+
213
+ **¿Despliego en Vercel?**
214
+
215
+ ```bash
216
+ # Sí → ejecutar skill
217
+ /sdd.desplegar
218
+
219
+ # No → saltar por ahora
220
+ # Nota: Puedes desplegar manualmente luego con /sdd.desplegar
221
+ ```
222
+
223
+ ---
224
+
225
+ ## ✨ Checklist post-deploy
226
+
227
+ - [ ] Health check verde (HTTP 200)
228
+ - [ ] Compartir URL con testers
229
+ - [ ] Monitorear por 15 minutos
230
+ - [ ] Ejecutar `/sdd.snapshot` para actualizar estado
231
+ ```
232
+
233
+ ## Archivos generados post-deploy
234
+
235
+ Después de un deploy exitoso, el skill crea/actualiza:
236
+
237
+ ### `.sdd/estado.json`
238
+ Metadatos del último despliegue:
239
+ ```json
240
+ {
241
+ "ultimo_despliegue": {
242
+ "timestamp": "2026-06-13T14:30:00Z",
243
+ "url": "https://mi-proyecto.vercel.app",
244
+ "status": "OK",
245
+ "health_check": "200 OK",
246
+ "framework": "nextjs"
247
+ }
248
+ }
249
+ ```
250
+
251
+ ### `vercel.json` (auto-generado si no existe)
252
+ Configuración de build y output:
253
+ ```json
254
+ {
255
+ "buildCommand": "npm run build",
256
+ "outputDirectory": ".next",
257
+ "framework": "nextjs"
258
+ }
259
+ ```
260
+
261
+ ## Troubleshooting
262
+
263
+ ### Error: "VERCEL_TOKEN no configurado"
264
+
265
+ **Solución:**
266
+ ```bash
267
+ export VERCEL_TOKEN="vercel_xxx_abc123..."
268
+ # O:
269
+ echo 'VERCEL_TOKEN=vercel_xxx_abc123...' >> .env.local
270
+ source .env.local
271
+ ```
272
+
273
+ ### Error: "Tests fallando"
274
+
275
+ **Solución:**
276
+ 1. Ejecuta tests localmente: `npm test`
277
+ 2. Arregla los fallos
278
+ 3. Commit: `git add . && git commit -m "Fix tests"`
279
+ 4. Reintenta: `/sdd.desplegar`
280
+
281
+ ### Error: "Health check fallando (HTTP 502)"
282
+
283
+ **Causas posibles:**
284
+ - Aplicación tarda en iniciar (cold start)
285
+ - Variable de entorno faltante en Vercel
286
+ - Servidor no está escuchando en puerto correcto
287
+
288
+ **Solución:**
289
+ 1. Revisa logs en https://vercel.com/dashboard
290
+ 2. Configura env vars en Vercel si es necesario
291
+ 3. Reintenta el deploy
292
+
293
+ ### Error: "Cambios sin stagear"
294
+
295
+ **Solución:**
296
+ ```bash
297
+ git add .
298
+ git commit -m "Descripción de cambios"
299
+ /sdd.desplegar
300
+ ```
301
+
302
+ ## Variables de entorno en Vercel
303
+
304
+ Si tu aplicación necesita secrets o env vars:
305
+
306
+ 1. Ve a Vercel Dashboard → Settings → Environment Variables
307
+ 2. Añade cada variable: `KEY=value`
308
+ 3. Las variables están disponibles en build time y runtime
309
+
310
+ Ejemplo:
311
+ ```
312
+ DATABASE_URL=postgres://...
313
+ API_KEY=sk_xxx_...
314
+ NODE_ENV=production
315
+ ```
316
+
317
+ ## Monitoreo post-deploy
318
+
319
+ Después de desplegar, el skill propone:
320
+
321
+ 1. **Compartir URL** con testers y stakeholders
322
+ 2. **Monitorear por 15 minutos** usando `/sdd.canary`
323
+ 3. **Actualizar estado del producto** con `/sdd.snapshot`
324
+ 4. **En caso de issues**: `/sdd.revertir` para rollback manual
325
+
326
+ ---
327
+
328
+ Para más detalles, ver [SKILL.md](./SKILL.md).
@@ -0,0 +1,310 @@
1
+ # MANIFEST: Skill vercel-deploy
2
+
3
+ **Despliegue automático en Vercel con 6 pasos atómicos, health checks y rollback automático.**
4
+
5
+ Versión: 1.0.0
6
+ Fecha: 2026-06-13
7
+ Estado: ✅ Listo para usar
8
+
9
+ ---
10
+
11
+ ## 📦 Contenido del paquete
12
+
13
+ ### Documentación (6 archivos)
14
+
15
+ | Archivo | Tipo | Tamaño | Propósito |
16
+ |---------|------|--------|----------|
17
+ | **SKILL.md** | Especificación | ~10 KB | Documento maestro: flujo de 6 pasos con código ejecutable |
18
+ | **README.md** | Quick start | ~2 KB | Guía rápida para empezar inmediatamente |
19
+ | **CHECKLIST.md** | Pre-requisitos | ~5 KB | 8 secciones de validación antes de desplegar |
20
+ | **INTEGRATION.md** | Integración | ~8 KB | Cómo conectar con `/sdd.implementar` |
21
+ | **INDEX.md** | Navegación | ~6 KB | Mapa de documentos y rutas de lectura |
22
+ | **FLOW.txt** | Diagrama visual | ~15 KB | Flujo visual ASCII de toda la ejecución |
23
+
24
+ ### Ejecutables (1 archivo)
25
+
26
+ | Archivo | Tipo | Tamaño | Propósito |
27
+ |---------|------|--------|----------|
28
+ | **deploy.sh** | Script Bash | ~8 KB | Implementación funcional de los 6 pasos |
29
+
30
+ ### Configuración (2 archivos)
31
+
32
+ | Archivo | Tipo | Tamaño | Propósito |
33
+ |---------|------|--------|----------|
34
+ | **skill.yaml** | Metadata YAML | ~10 KB | Metadatos del skill para registración en SDD |
35
+ | **estado.json.example** | Ejemplo JSON | ~15 KB | Ejemplo de salida: `.sdd/estado.json` generado |
36
+
37
+ ### Navegación (1 archivo)
38
+
39
+ | Archivo | Tipo | Propósito |
40
+ |---------|------|----------|
41
+ | **MANIFEST.md** | Resumen | Este archivo: índice de contenidos |
42
+
43
+ ---
44
+
45
+ ## 🚀 Inicio rápido
46
+
47
+ ### 1. Verificar requisitos (1 min)
48
+ ```bash
49
+ cd c:\Users\usuario\sdd-lite\sdd-lite\skills\vercel-deploy
50
+ grep -l "VERCEL_TOKEN\|npm\|git\|curl" README.md
51
+ ```
52
+
53
+ ### 2. Leer documentación (5-10 min)
54
+ ```bash
55
+ # Empezar con el README
56
+ cat README.md
57
+
58
+ # Luego revisar el checklist
59
+ cat CHECKLIST.md
60
+ ```
61
+
62
+ ### 3. Configurar VERCEL_TOKEN (2 min)
63
+ ```bash
64
+ export VERCEL_TOKEN="vercel_xxx_abc123..."
65
+ # O persistente:
66
+ echo 'VERCEL_TOKEN=vercel_xxx_abc123...' >> .env.local
67
+ ```
68
+
69
+ ### 4. Ejecutar el skill (3-4 min)
70
+ ```bash
71
+ # Opción A: Script directo
72
+ bash ./skills/vercel-deploy/deploy.sh
73
+
74
+ # Opción B: Integrado en /sdd.desplegar
75
+ /sdd.desplegar
76
+ ```
77
+
78
+ ---
79
+
80
+ ## 📖 Rutas de lectura según tu perfil
81
+
82
+ ### "Quiero desplegar YA" (10 min total)
83
+ 1. [README.md](./README.md) — Setup y commands
84
+ 2. [CHECKLIST.md](./CHECKLIST.md) — Validar prerequisites
85
+ 3. Ejecutar: `bash deploy.sh`
86
+
87
+ ### "Soy arquitecto/DevOps" (30 min total)
88
+ 1. [SKILL.md](./SKILL.md) — Especificación completa
89
+ 2. [deploy.sh](./deploy.sh) — Revisión de código
90
+ 3. [skill.yaml](./skill.yaml) — Metadata y configuración
91
+ 4. [FLOW.txt](./FLOW.txt) — Diagrama de flujo
92
+
93
+ ### "Voy a integrar en /sdd.implementar" (25 min total)
94
+ 1. [INTEGRATION.md](./INTEGRATION.md) — Cómo conectar
95
+ 2. [CHECKLIST.md](./CHECKLIST.md) — Qué validar
96
+ 3. [skill.yaml](./skill.yaml) — Configuración YAML
97
+ 4. [SKILL.md](./SKILL.md) — Detalles completos
98
+
99
+ ### "Solo necesito un diagrama visual" (5 min)
100
+ 1. [FLOW.txt](./FLOW.txt) — Flujo completo
101
+ 2. [INDEX.md](./INDEX.md) — Relaciones entre documentos
102
+
103
+ ---
104
+
105
+ ## 🎯 Características principales
106
+
107
+ ✅ **Flujo atómico** — 6 pasos secuenciales bloqueantes
108
+ ✅ **Pre-checks** — Valida VERCEL_TOKEN, rama limpia, sin secretos, tests verdes
109
+ ✅ **Auto-configuración** — Detecta framework (next, react, vue, astro, python)
110
+ ✅ **Health checks** — 3 reintentos automáticos con backoff exponencial
111
+ ✅ **Rollback automático** — Revertir a deploy anterior si falla health check
112
+ ✅ **Observabilidad** — `.sdd/estado.json` con metadatos completos
113
+ ✅ **Seguridad** — Detección de secretos, VERCEL_TOKEN nunca se loguea
114
+ ✅ **Idempotencia** — Ejecutar 2x produce el mismo resultado
115
+ ✅ **UX** — Output visual con emojis, colores, pasos numerados
116
+ ✅ **Documentación** — 9 archivos (docs + ejecutables + ejemplos)
117
+
118
+ ---
119
+
120
+ ## 📋 Flujo de 6 pasos (TL;DR)
121
+
122
+ ```
123
+ 1. PRE-CHECKS → Valida VERCEL_TOKEN, rama, secretos, tests
124
+ 2. CONFIGURACIÓN → Detecta framework, auto-genera vercel.json
125
+ 3. BUILD & DEPLOY → npm run build + vercel deploy --prod
126
+ 4. HEALTH CHECK → Verifica HTTP 200 (retry 3x, backoff 5s)
127
+ 5. ROLLBACK → Si falla, revertir a deploy anterior (automático)
128
+ 6. REGISTRAR → Guardar en .sdd/estado.json
129
+ ```
130
+
131
+ ---
132
+
133
+ ## 🔧 Requisitos previos
134
+
135
+ ### Obligatorios
136
+ - ✅ Bash (4+)
137
+ - ✅ Git (2+)
138
+ - ✅ Node.js (18+) con npm
139
+ - ✅ Vercel CLI (`npm install -g vercel`)
140
+ - ✅ curl (7+)
141
+ - ✅ VERCEL_TOKEN (generar en vercel.com/account/tokens)
142
+
143
+ ### Opcionales
144
+ - 🟡 VERCEL_PROJECT_ID (si ya existe en Vercel)
145
+ - 🟡 Notificaciones (Slack, email)
146
+
147
+ ---
148
+
149
+ ## 📊 Estadísticas
150
+
151
+ | Métrica | Valor |
152
+ |---------|-------|
153
+ | Total de archivos | 9 |
154
+ | Líneas de documentación | ~2,500 |
155
+ | Líneas de código (deploy.sh) | ~250 |
156
+ | Líneas de metadata (skill.yaml) | ~300 |
157
+ | Pasos del flujo | 6 |
158
+ | Pre-checks | 4 |
159
+ | Health check retries | 3 |
160
+ | Documentos para diferentes perfiles | 4 |
161
+ | Duración típica | 3-4 minutos |
162
+
163
+ ---
164
+
165
+ ## ✨ Diferenciadores vs Bolt/v0
166
+
167
+ | Aspecto | vercel-deploy | Bolt/v0 |
168
+ |--------|---------------|---------|
169
+ | **Pre-deploy checks** | ✅ Sí (4 validaciones) | ❌ No |
170
+ | **Secretos en código** | ✅ Detecta y bloquea | ❌ Puede estar oculto |
171
+ | **Tests** | ✅ Valida antes de deploy | ❌ Después del deploy |
172
+ | **Health check** | ✅ 3 reintentos automáticos | ❌ Manual o inexistente |
173
+ | **Rollback** | ✅ Automático si falla | ❌ Manual |
174
+ | **Observabilidad** | ✅ .sdd/estado.json completo | ❌ Logs en Vercel |
175
+ | **Framework detection** | ✅ Automático | ❌ Manual |
176
+ | **Atomicidad** | ✅ Todo o nada | ❌ Estados intermedios |
177
+
178
+ ---
179
+
180
+ ## 🔐 Seguridad
181
+
182
+ - ✅ VERCEL_TOKEN nunca se imprime en logs
183
+ - ✅ Grep de secretos comunes (API_KEY, SECRET, password) en src/
184
+ - ✅ Fuerza .env.local en .gitignore
185
+ - ✅ No permite deploy si hay cambios sin stagear
186
+ - ✅ Valida rama limpia ante de proceder
187
+
188
+ ---
189
+
190
+ ## 📌 Cómo se genera .sdd/estado.json
191
+
192
+ Después de un deploy exitoso, el script crea:
193
+
194
+ ```json
195
+ {
196
+ "ultimo_despliegue": {
197
+ "timestamp": "2026-06-13T14:30:00Z",
198
+ "url": "https://proyecto.vercel.app",
199
+ "status": "OK",
200
+ "health_check": "200 OK",
201
+ "framework": "nextjs"
202
+ }
203
+ }
204
+ ```
205
+
206
+ Ver ejemplo completo en [estado.json.example](./estado.json.example).
207
+
208
+ ---
209
+
210
+ ## 🔗 Integración con flujos SDD
211
+
212
+ ```yaml
213
+ # En tu sdd.implementar.md:
214
+ deploy:
215
+ plataforma: vercel
216
+ framework: auto
217
+ environment: production
218
+ skill: vercel-deploy
219
+ ```
220
+
221
+ Gate humano antes de ejecutar:
222
+ ```
223
+ ¿Despliego en Vercel? [sí/no/después]
224
+ ```
225
+
226
+ ---
227
+
228
+ ## 📞 Troubleshooting rápido
229
+
230
+ | Problema | Solución |
231
+ |----------|----------|
232
+ | VERCEL_TOKEN ausente | Generar en vercel.com/account/tokens |
233
+ | Tests fallando | Ejecutar `/sdd.implementar` nuevamente |
234
+ | Health check 502/503 | Reintenta automáticamente (3x); si persiste, rollback |
235
+ | Build falla | Revisar `npm run build` localmente |
236
+ | Cambios sin stagear | `git add . && git commit` |
237
+ | Secretos en código | Mueve a .env.local |
238
+
239
+ Ver [CHECKLIST.md](./CHECKLIST.md) para validación completa.
240
+
241
+ ---
242
+
243
+ ## 🎓 Ejemplos de uso
244
+
245
+ ### Uso simple
246
+ ```bash
247
+ export VERCEL_TOKEN="vercel_xxx_..."
248
+ bash ./skills/vercel-deploy/deploy.sh
249
+ ```
250
+
251
+ ### Integrado en /sdd.implementar
252
+ ```bash
253
+ /sdd.implementar
254
+ # ... pasos 1-4 ...
255
+ # PASO 5: Deploy
256
+ # ¿Despliego en Vercel? [sí]
257
+ # → Ejecuta vercel-deploy automáticamente
258
+ ```
259
+
260
+ ### Con diferentes ambientes
261
+ ```bash
262
+ /sdd.desplegar --environment staging
263
+ /sdd.desplegar --environment production
264
+ ```
265
+
266
+ ---
267
+
268
+ ## 📝 Versionamiento
269
+
270
+ | Versión | Fecha | Cambios |
271
+ |---------|-------|---------|
272
+ | 1.0.0 | 2026-06-13 | Release inicial |
273
+
274
+ ---
275
+
276
+ ## 📚 Referencias
277
+
278
+ - Vercel Docs: https://vercel.com/docs
279
+ - Vercel API: https://vercel.com/docs/api
280
+ - Vercel CLI: https://vercel.com/cli
281
+ - Deployment best practices: https://vercel.com/docs/concepts/deployments
282
+
283
+ ---
284
+
285
+ ## ✅ Checklist de instalación
286
+
287
+ - [ ] Descargado en `sdd-lite/skills/vercel-deploy/`
288
+ - [ ] VERCEL_TOKEN generado y guardado
289
+ - [ ] Leer README.md (2 min)
290
+ - [ ] Revisar CHECKLIST.md (5 min)
291
+ - [ ] Ejecutar deploy.sh (3-4 min)
292
+ - [ ] Verificar URL en vivo
293
+ - [ ] Guardar estado en .sdd/estado.json
294
+
295
+ ---
296
+
297
+ ## 🎯 Próximos pasos
298
+
299
+ 1. **Ahora**: Leer [README.md](./README.md)
300
+ 2. **Luego**: Revisar [CHECKLIST.md](./CHECKLIST.md)
301
+ 3. **Ejecutar**: `bash ./skills/vercel-deploy/deploy.sh`
302
+ 4. **Integrar**: En `/sdd.implementar` con [INTEGRATION.md](./INTEGRATION.md)
303
+ 5. **Monitorear**: Post-deploy con `/sdd.canary`
304
+
305
+ ---
306
+
307
+ **Estado:** ✅ Listo para usar
308
+ **Mantenedor:** SDD Team
309
+ **Soporte:** Referir a documentación interna
310
+
@@ -0,0 +1,65 @@
1
+ # Skill: vercel-deploy
2
+
3
+ Despliegue automático en Vercel con pre-checks, health checks y rollback automático.
4
+
5
+ ## Uso rápido
6
+
7
+ ```bash
8
+ # Generar VERCEL_TOKEN
9
+ export VERCEL_TOKEN="xxx_your_token_xxx"
10
+
11
+ # Desplegar (automáticamente en /sdd.implementar)
12
+ /sdd.desplegar
13
+ ```
14
+
15
+ ## Flujo
16
+
17
+ 1. **Pre-checks**: Validar VERCEL_TOKEN, rama limpia, sin secretos, tests verdes
18
+ 2. **vercel.json**: Auto-generar si no existe (detecta framework automáticamente)
19
+ 3. **Build & Deploy**: Compilar localmente y enviar a Vercel
20
+ 4. **Health Check**: Verificar que la URL responde HTTP 200 (3 reintentos con backoff)
21
+ 5. **Rollback**: Revertir a deploy anterior si health check falla
22
+ 6. **Log**: Guardar metadatos en `.sdd/estado.json` para auditoría
23
+
24
+ ## Obtener VERCEL_TOKEN
25
+
26
+ 1. Ve a https://vercel.com/account/tokens
27
+ 2. Crea un nuevo token con scope **full**
28
+ 3. Guárdalo en el entorno:
29
+ ```bash
30
+ export VERCEL_TOKEN="vercel_xxx_..."
31
+ ```
32
+ O en `.env.local`:
33
+ ```
34
+ VERCEL_TOKEN=vercel_xxx_...
35
+ ```
36
+
37
+ ## Errores comunes
38
+
39
+ | Error | Solución |
40
+ |-------|----------|
41
+ | VERCEL_TOKEN ausente | Ejecutar `export VERCEL_TOKEN="..."` |
42
+ | Tests fallando | Ejecutar `/sdd.implementar` nuevamente |
43
+ | Health check fallando | Revisar logs de Vercel; revisar env vars |
44
+ | Cambios sin stagear | Ejecutar `git add . && git commit` |
45
+
46
+ ## Próximos pasos post-deploy
47
+
48
+ - Compartir URL con testers: https://mi-proyecto.vercel.app
49
+ - Monitorear anomalías (15 minutos)
50
+ - Ejecutar `/sdd.snapshot` para actualizar estado del producto
51
+ - Si hay issues: `/sdd.revertir` para rollback manual
52
+
53
+ ## Invocación
54
+
55
+ **Automática**: PASO final de `/sdd.implementar` (con confirmación humana)
56
+
57
+ **Manual**:
58
+ ```bash
59
+ /sdd.desplegar
60
+ /sdd.desplegar --environment staging
61
+ ```
62
+
63
+ ---
64
+
65
+ Para detalles completos del flujo de 6 pasos, ver [SKILL.md](./SKILL.md).