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,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).
|