specleap-framework 2.1.0 → 2.1.5

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 (75) hide show
  1. package/.agents/backend.md +3 -3
  2. package/.agents/frontend.md +2 -2
  3. package/.agents/producto.md +9 -11
  4. package/.claude/hooks/spec-guard.sh +132 -0
  5. package/.claude/settings.json.template +15 -0
  6. package/.clinerules +3 -3
  7. package/.coderabbit.yaml +2 -4
  8. package/.commands/compliance.md +89 -0
  9. package/.commands/inicio.md +15 -15
  10. package/.commands/nuevo/README.md +2 -2
  11. package/.commands/planificar.md +1 -1
  12. package/.continue/rules/04-git-workflow.md +5 -5
  13. package/.continuerules +3 -4
  14. package/.cursorrules +1 -1
  15. package/.github/copilot-instructions.md +1 -1
  16. package/.specleap/i18n/en.json +177 -0
  17. package/.specleap/i18n/es.json +177 -0
  18. package/.specleap/i18n.sh +63 -0
  19. package/CHANGELOG.md +276 -0
  20. package/CLAUDE.md +54 -13
  21. package/README.md +169 -528
  22. package/SETUP.md +16 -13
  23. package/openspec/INDEX.md +53 -0
  24. package/openspec/README.md +104 -0
  25. package/openspec/SPEC-FORMAT.md +168 -0
  26. package/openspec/changes/.gitkeep +0 -0
  27. package/openspec/cli/COMMAND_REFERENCE.md +817 -0
  28. package/openspec/cli/README.md +189 -0
  29. package/openspec/cli/apply.sh +229 -0
  30. package/openspec/cli/archive.sh +240 -0
  31. package/openspec/cli/code-review.sh +207 -0
  32. package/openspec/cli/common.sh +171 -0
  33. package/openspec/cli/enrich.sh +188 -0
  34. package/openspec/cli/ff.sh +329 -0
  35. package/openspec/cli/new.sh +260 -0
  36. package/openspec/cli/openspec +82 -0
  37. package/openspec/cli/report.sh +244 -0
  38. package/openspec/cli/status.sh +178 -0
  39. package/openspec/cli/verify.sh +246 -0
  40. package/openspec/config.yaml +76 -0
  41. package/openspec/examples/CHANGE-SAMPLE-001-user-authentication/00-original-user-story.md +5 -0
  42. package/openspec/examples/CHANGE-SAMPLE-001-user-authentication/01-refined-user-story.md +106 -0
  43. package/openspec/examples/CHANGE-SAMPLE-001-user-authentication/README.md +333 -0
  44. package/openspec/examples/CHANGE-SAMPLE-001-user-authentication/design.md +461 -0
  45. package/openspec/examples/CHANGE-SAMPLE-001-user-authentication/proposal.md +124 -0
  46. package/openspec/examples/CHANGE-SAMPLE-001-user-authentication/specs/functional/F001-authentication.spec.md +399 -0
  47. package/openspec/examples/CHANGE-SAMPLE-001-user-authentication/specs/technical/T001-jwt-implementation.spec.md +606 -0
  48. package/openspec/examples/CHANGE-SAMPLE-001-user-authentication/tasks.md +433 -0
  49. package/openspec/examples/MERMAID_DIAGRAMS.md +481 -0
  50. package/openspec/examples/README.md +334 -0
  51. package/openspec/specs/functional/.gitkeep +0 -0
  52. package/openspec/specs/integration/.gitkeep +0 -0
  53. package/openspec/specs/security/.gitkeep +0 -0
  54. package/openspec/specs/technical/.gitkeep +0 -0
  55. package/openspec/templates/.coderabbit.yaml +259 -0
  56. package/openspec/templates/design.md +181 -0
  57. package/openspec/templates/proposal.md +79 -0
  58. package/openspec/templates/tasks.md +193 -0
  59. package/package.json +10 -5
  60. package/rules/git-workflow.md +3 -3
  61. package/rules/session-protocol.md +3 -3
  62. package/scripts/README.md +13 -25
  63. package/scripts/compliance-audit.sh +325 -0
  64. package/scripts/generate-contract.sh +4 -4
  65. package/scripts/install-skills.sh +12 -11
  66. package/scripts/lib/render-contrato.py +1 -1
  67. package/scripts/quality-baseline.sh +210 -0
  68. package/scripts/quality-healing.sh +241 -0
  69. package/setup.sh +3 -3
  70. package/.claude/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
  71. package/.claude/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
  72. package/.claude/skills/ui-ux-pro-max/scripts/__pycache__/search.cpython-314.pyc +0 -0
  73. package/scripts/lib/jira-project-utils.sh +0 -222
  74. package/scripts/setup-mcp.sh +0 -654
  75. package/scripts/test-cuestionario.sh +0 -428
@@ -0,0 +1,181 @@
1
+ # [CHANGE-XXX] Diseño Técnico: Título del Cambio
2
+
3
+ | Campo | Valor |
4
+ |-------|-------|
5
+ | ID | CHANGE-XXX |
6
+ | Propuesta | `proposal.md` |
7
+ | Fecha | YYYY-MM-DD |
8
+ | Estado | draft / review / approved |
9
+ | Arquitecto | nombre |
10
+
11
+ ## Resumen del Diseño
12
+
13
+ Descripción técnica de alto nivel de cómo se implementará la propuesta.
14
+
15
+ ## Arquitectura
16
+
17
+ ### Diagrama de Componentes
18
+
19
+ ```
20
+ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
21
+ │ Componente A│────▶│ Componente B│────▶│ Componente C│
22
+ └─────────────┘ └─────────────┘ └─────────────┘
23
+ ```
24
+
25
+ ### Componentes Afectados
26
+
27
+ | Componente | Tipo de Cambio | Descripción |
28
+ |------------|----------------|-------------|
29
+ | ComponenteA | Nuevo / Modificado | Qué cambia |
30
+ | ComponenteB | Modificado | Qué cambia |
31
+
32
+ ## Modelo de Datos
33
+
34
+ ### Nuevas Entidades
35
+
36
+ ```typescript
37
+ interface NuevaEntidad {
38
+ id: string;
39
+ campo1: string;
40
+ campo2: number;
41
+ createdAt: Date;
42
+ updatedAt: Date;
43
+ }
44
+ ```
45
+
46
+ ### Cambios en Entidades Existentes
47
+
48
+ ```diff
49
+ interface EntidadExistente {
50
+ id: string;
51
+ campoExistente: string;
52
+ + nuevoCampo: string; // Añadido
53
+ - campoEliminado: string; // Eliminado
54
+ }
55
+ ```
56
+
57
+ ### Migraciones de Base de Datos
58
+
59
+ ```sql
60
+ -- Migration: YYYYMMDDHHMMSS_descripcion
61
+ ALTER TABLE tabla ADD COLUMN nuevo_campo VARCHAR(255);
62
+ ```
63
+
64
+ ## API / Interfaces
65
+
66
+ ### Nuevos Endpoints
67
+
68
+ ```
69
+ POST /api/v1/recurso
70
+ GET /api/v1/recurso/:id
71
+ PUT /api/v1/recurso/:id
72
+ DELETE /api/v1/recurso/:id
73
+ ```
74
+
75
+ ### Contratos de API
76
+
77
+ ```typescript
78
+ // POST /api/v1/recurso
79
+ interface CreateRecursoRequest {
80
+ campo1: string;
81
+ campo2: number;
82
+ }
83
+
84
+ interface CreateRecursoResponse {
85
+ id: string;
86
+ campo1: string;
87
+ campo2: number;
88
+ createdAt: string;
89
+ }
90
+ ```
91
+
92
+ ## Flujo de Datos
93
+
94
+ ### Secuencia Principal
95
+
96
+ ```
97
+ Usuario → Frontend → API → Service → Repository → Database
98
+
99
+ Validación
100
+
101
+ Lógica de Negocio
102
+ ```
103
+
104
+ ### Casos de Error
105
+
106
+ | Código | Escenario | Respuesta |
107
+ |--------|-----------|-----------|
108
+ | 400 | Validación fallida | `{ error: "Campo X inválido" }` |
109
+ | 404 | Recurso no encontrado | `{ error: "No encontrado" }` |
110
+ | 500 | Error interno | `{ error: "Error del servidor" }` |
111
+
112
+ ## Seguridad
113
+
114
+ ### Autenticación/Autorización
115
+ - Método de autenticación requerido
116
+ - Roles con acceso: admin, user, etc.
117
+
118
+ ### Validación de Inputs
119
+ - Campo1: string, max 255 chars, sanitizado
120
+ - Campo2: number, min 0, max 1000
121
+
122
+ ### Consideraciones de Seguridad
123
+ - [ ] CSRF protection
124
+ - [ ] Rate limiting
125
+ - [ ] Input sanitization
126
+ - [ ] SQL injection prevention
127
+
128
+ ## Performance
129
+
130
+ ### Estimaciones de Carga
131
+ - Requests esperados: X/segundo
132
+ - Tamaño de datos: X registros
133
+
134
+ ### Optimizaciones
135
+ - Índices de base de datos necesarios
136
+ - Caché strategy
137
+ - Paginación
138
+
139
+ ## Testing Strategy
140
+
141
+ ### Unit Tests
142
+ - [ ] Service layer: lógica de negocio
143
+ - [ ] Validators: validación de inputs
144
+ - [ ] Utils: funciones auxiliares
145
+
146
+ ### Integration Tests
147
+ - [ ] API endpoints
148
+ - [ ] Database operations
149
+
150
+ ### E2E Tests (si aplica)
151
+ - [ ] Flujo principal del usuario
152
+
153
+ ## Plan de Rollback
154
+
155
+ ### Pasos para Revertir
156
+ 1. Revertir código (git revert)
157
+ 2. Revertir migración de BD
158
+ 3. Limpiar caché
159
+
160
+ ### Datos a Preservar
161
+ - Qué datos no se pueden perder
162
+ - Estrategia de backup
163
+
164
+ ## Decisiones Técnicas (ADR)
165
+
166
+ ### ADR-001: Elección de X sobre Y
167
+
168
+ **Contexto:** Necesitamos decidir entre X e Y para...
169
+
170
+ **Decisión:** Elegimos X porque...
171
+
172
+ **Consecuencias:**
173
+ - Positivo: ...
174
+ - Negativo: ...
175
+
176
+ ## Referencias
177
+
178
+ - Propuesta: `proposal.md`
179
+ - Spec principal: `openspec/specs/domain/spec.md`
180
+ - Delta specs: `specs/domain/spec.md`
181
+ - Documentación externa: links
@@ -0,0 +1,79 @@
1
+ # [CHANGE-XXX] Propuesta: Título del Cambio
2
+
3
+ | Campo | Valor |
4
+ |-------|-------|
5
+ | ID | CHANGE-XXX |
6
+ | Fecha | YYYY-MM-DD |
7
+ | Estado | draft / review / approved / rejected |
8
+ | Autor | nombre |
9
+ | Prioridad | critical / high / medium / low |
10
+ | Ticket | TICKET-XXX |
11
+
12
+ ## Resumen Ejecutivo
13
+
14
+ Descripción breve (2-3 oraciones) de qué se propone y por qué.
15
+
16
+ ## Contexto y Problema
17
+
18
+ ### Situación Actual
19
+ Descripción del estado actual y por qué necesita cambiar.
20
+
21
+ ### Problema a Resolver
22
+ - Problema 1
23
+ - Problema 2
24
+
25
+ ### Impacto si No se Resuelve
26
+ Qué pasa si no hacemos nada.
27
+
28
+ ## Propuesta de Solución
29
+
30
+ ### Descripción General
31
+ Qué se va a hacer a alto nivel.
32
+
33
+ ### User Stories Afectadas
34
+
35
+ #### US-01: Como [rol], quiero [acción] para [beneficio]
36
+ - Criterios de aceptación:
37
+ - [ ] CA-01: ...
38
+ - [ ] CA-02: ...
39
+
40
+ ## Alcance
41
+
42
+ ### Incluido
43
+ - Funcionalidad A
44
+ - Funcionalidad B
45
+
46
+ ### Excluido (fuera de alcance)
47
+ - Funcionalidad X (se hará en otra propuesta)
48
+ - Funcionalidad Y (no es necesaria)
49
+
50
+ ## Riesgos y Mitigaciones
51
+
52
+ | Riesgo | Probabilidad | Impacto | Mitigación |
53
+ |--------|--------------|---------|------------|
54
+ | Riesgo 1 | Alta/Media/Baja | Alto/Medio/Bajo | Cómo mitigar |
55
+
56
+ ## Dependencias
57
+
58
+ - [ ] Depende de CHANGE-XXX (descripción)
59
+ - [ ] Depende de integración externa X
60
+
61
+ ## Estimación Inicial
62
+
63
+ | Concepto | Estimación |
64
+ |----------|------------|
65
+ | Esfuerzo | S / M / L / XL |
66
+ | Tiempo | X días/semanas |
67
+ | Complejidad | Baja / Media / Alta |
68
+
69
+ ## Decisión
70
+
71
+ - [ ] **Aprobada** — Fecha: YYYY-MM-DD
72
+ - [ ] **Rechazada** — Motivo: ...
73
+ - [ ] **Pendiente de revisión**
74
+
75
+ ## Referencias
76
+
77
+ - Spec relacionada: `openspec/specs/domain/spec.md`
78
+ - Documentación: link
79
+ - Diseño: `openspec/changes/CHANGE-XXX/design.md`
@@ -0,0 +1,193 @@
1
+ # [CHANGE-XXX] Tareas: Título del Cambio
2
+
3
+ | Campo | Valor |
4
+ |-------|-------|
5
+ | ID | CHANGE-XXX |
6
+ | Propuesta | `proposal.md` |
7
+ | Diseño | `design.md` |
8
+ | Fecha | YYYY-MM-DD |
9
+ | Sprint | Sprint X |
10
+
11
+ ## Resumen
12
+
13
+ Total de tareas: X
14
+ Estimación total: X story points
15
+ Ticket Epic: [proyecto]-XXX
16
+
17
+ ## Tareas
18
+
19
+ ### 🏗️ Setup & Scaffolding
20
+
21
+ #### TASK-001: Crear estructura base
22
+ - **Ticket:** [proyecto]-XXX
23
+ - **Estimación:** 1 SP
24
+ - **Asignado:** @nombre
25
+ - **Estado:** ⬜ Pendiente / 🔄 En progreso / ✅ Completada
26
+ - **Branch:** `feat/TICKET-XXX-estructura-base`
27
+
28
+ **Subtareas:**
29
+ - [ ] Crear carpeta de feature
30
+ - [ ] Configurar rutas
31
+ - [ ] Crear archivos base
32
+
33
+ **Criterios de aceptación:**
34
+ - [ ] Estructura creada según design.md
35
+ - [ ] Rutas registradas
36
+ - [ ] Tests de humo pasan
37
+
38
+ ---
39
+
40
+ ### 📊 Backend / API
41
+
42
+ #### TASK-002: Implementar modelo de datos
43
+ - **Ticket:** [proyecto]-XXX
44
+ - **Estimación:** 2 SP
45
+ - **Asignado:** @nombre
46
+ - **Estado:** ⬜ Pendiente
47
+ - **Branch:** `feat/TICKET-XXX-modelo-datos`
48
+
49
+ **Subtareas:**
50
+ - [ ] Crear entidades/modelos
51
+ - [ ] Crear migraciones
52
+ - [ ] Crear seeders (si aplica)
53
+
54
+ **Criterios de aceptación:**
55
+ - [ ] Migraciones ejecutan sin error
56
+ - [ ] Modelo tiene validaciones según spec
57
+ - [ ] Tests unitarios del modelo
58
+
59
+ ---
60
+
61
+ #### TASK-003: Implementar endpoints API
62
+ - **Ticket:** [proyecto]-XXX
63
+ - **Estimación:** 3 SP
64
+ - **Asignado:** @nombre
65
+ - **Estado:** ⬜ Pendiente
66
+ - **Branch:** `feat/TICKET-XXX-api-endpoints`
67
+
68
+ **Subtareas:**
69
+ - [ ] POST /api/recurso
70
+ - [ ] GET /api/recurso/:id
71
+ - [ ] PUT /api/recurso/:id
72
+ - [ ] DELETE /api/recurso/:id
73
+
74
+ **Criterios de aceptación:**
75
+ - [ ] Endpoints responden según contrato en design.md
76
+ - [ ] Validación de inputs
77
+ - [ ] Manejo de errores
78
+ - [ ] Tests de integración
79
+
80
+ ---
81
+
82
+ ### 🎨 Frontend / UI
83
+
84
+ #### TASK-004: Implementar componentes UI
85
+ - **Ticket:** [proyecto]-XXX
86
+ - **Estimación:** 3 SP
87
+ - **Asignado:** @nombre
88
+ - **Estado:** ⬜ Pendiente
89
+ - **Branch:** `feat/TICKET-XXX-ui-components`
90
+
91
+ **Subtareas:**
92
+ - [ ] Componente de lista
93
+ - [ ] Componente de formulario
94
+ - [ ] Componente de detalle
95
+
96
+ **Criterios de aceptación:**
97
+ - [ ] Componentes renderizan correctamente
98
+ - [ ] Responsive design
99
+ - [ ] Accesibilidad WCAG 2.1
100
+ - [ ] Tests de comportamiento
101
+
102
+ ---
103
+
104
+ ### 🧪 Testing
105
+
106
+ #### TASK-005: Tests unitarios
107
+ - **Ticket:** [proyecto]-XXX
108
+ - **Estimación:** 2 SP
109
+ - **Asignado:** @nombre
110
+ - **Estado:** ⬜ Pendiente
111
+ - **Branch:** `feat/TICKET-XXX-unit-tests`
112
+
113
+ **Cobertura requerida:**
114
+ - [ ] Lógica de negocio: 80%+
115
+ - [ ] Validadores: 90%+
116
+ - [ ] Utils: 90%+
117
+
118
+ ---
119
+
120
+ #### TASK-006: Tests de integración
121
+ - **Ticket:** [proyecto]-XXX
122
+ - **Estimación:** 2 SP
123
+ - **Asignado:** @nombre
124
+ - **Estado:** ⬜ Pendiente
125
+ - **Branch:** `feat/TICKET-XXX-integration-tests`
126
+
127
+ **Escenarios:**
128
+ - [ ] Happy path completo
129
+ - [ ] Casos de error
130
+ - [ ] Edge cases
131
+
132
+ ---
133
+
134
+ ### 📚 Documentación
135
+
136
+ #### TASK-007: Documentación técnica
137
+ - **Ticket:** [proyecto]-XXX
138
+ - **Estimación:** 1 SP
139
+ - **Asignado:** @nombre
140
+ - **Estado:** ⬜ Pendiente
141
+ - **Branch:** `docs/TICKET-XXX-documentacion`
142
+
143
+ **Subtareas:**
144
+ - [ ] README del módulo
145
+ - [ ] Documentación de API (OpenAPI/Swagger)
146
+ - [ ] Actualizar Wiki técnica
147
+
148
+ ---
149
+
150
+ ## Dependencias entre Tareas
151
+
152
+ ```
153
+ TASK-001 (Setup)
154
+
155
+ TASK-002 (Modelo) ───┬──▶ TASK-003 (API)
156
+ │ ↓
157
+ └──▶ TASK-004 (UI)
158
+
159
+ ┌─────────┴─────────┐
160
+ ↓ ↓
161
+ TASK-005 (Unit) TASK-006 (Integration)
162
+ └─────────┬─────────┘
163
+
164
+ TASK-007 (Docs)
165
+ ```
166
+
167
+ ## Testing Report
168
+
169
+ ### Pre-merge Checklist
170
+ - [ ] Todos los tests pasan
171
+ - [ ] Cobertura mínima alcanzada
172
+ - [ ] Sin errores de linting
173
+ - [ ] CodeRabbit review aprobado
174
+ - [ ] PR review manual aprobado
175
+
176
+ ### Resultados de Tests
177
+ | Suite | Tests | Passed | Failed | Coverage |
178
+ |-------|-------|--------|--------|----------|
179
+ | Unit | X | X | 0 | XX% |
180
+ | Integration | X | X | 0 | N/A |
181
+ | E2E | X | X | 0 | N/A |
182
+
183
+ ### CodeRabbit Report
184
+ - **PR:** #XXX
185
+ - **Status:** ✅ Aprobado / ❌ Cambios requeridos
186
+ - **Issues encontrados:** X
187
+ - **Issues resueltos:** X
188
+
189
+ ## Notas
190
+
191
+ - Notas adicionales sobre la implementación
192
+ - Decisiones tomadas durante el desarrollo
193
+ - Problemas encontrados y soluciones
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specleap-framework",
3
- "version": "2.1.0",
3
+ "version": "2.1.5",
4
4
  "description": "Spec-Driven Development Framework — Transform VSCode, Cursor, JetBrains into spec-first development machines",
5
5
  "keywords": [
6
6
  "spec-driven-development",
@@ -20,15 +20,16 @@
20
20
  "homepage": "https://specleap.com",
21
21
  "repository": {
22
22
  "type": "git",
23
- "url": "https://github.com/iapanderson/specleap-framework.git"
23
+ "url": "https://github.com/ConceptualCreative/specleap-framework.git"
24
24
  },
25
25
  "bugs": {
26
- "url": "https://github.com/iapanderson/specleap-framework/issues"
26
+ "url": "https://github.com/ConceptualCreative/specleap-framework/issues"
27
27
  },
28
28
  "license": "MIT",
29
29
  "author": {
30
- "name": "SpecLeap Community",
31
- "url": "https://specleap.com"
30
+ "name": "Styng Arias",
31
+ "email": "developers@conceptualcreative.com",
32
+ "url": "https://conceptualcreative.com"
32
33
  },
33
34
  "bin": "bin/specleap",
34
35
  "scripts": {
@@ -49,12 +50,16 @@
49
50
  ".continuerules",
50
51
  ".cursorrules",
51
52
  ".github/**",
53
+ ".specleap/i18n/**",
54
+ ".specleap/i18n.sh",
52
55
  ".vscode/**",
53
56
  "bin/**",
57
+ "openspec/**",
54
58
  "rules/**",
55
59
  "scripts/**",
56
60
  "setup.sh",
57
61
  "install.sh",
62
+ "CHANGELOG.md",
58
63
  "CLAUDE.md",
59
64
  "README.md",
60
65
  "SETUP.md",
@@ -62,9 +62,9 @@ tipo/TICKET-ID-descripcion-corta
62
62
 
63
63
  **Ejemplos:**
64
64
  ```
65
- feature/SCRUM-23-integracion-jira
66
- fix/SCRUM-45-error-login-timeout
67
- refactor/SCRUM-12-optimizar-queries
65
+ feature/app-tienda-23-integracion-tracker
66
+ fix/app-tienda-45-error-login-timeout
67
+ refactor/app-tienda-12-optimizar-queries
68
68
  ```
69
69
 
70
70
  ### 5. Formato de Commits
@@ -39,7 +39,7 @@ Si hay trabajo en progreso sin commit → preguntar antes de continuar.
39
39
  ### Paso 4: Verificar Ticket
40
40
 
41
41
  ```
42
- ¿Hay un ticket en Jira asociado a esta tarea?
42
+ ¿Hay un ticket en Asana asociado a esta tarea?
43
43
  ```
44
44
 
45
45
  - **Sí** → Usar el ID del ticket (SCRUM-XX) en rama y commits
@@ -82,7 +82,7 @@ Dejar nota clara de:
82
82
  ## Flujo Completo de Feature
83
83
 
84
84
  ```
85
- 1. TICKET (Jira)
85
+ 1. TICKET (Asana)
86
86
  └── Crear/asignar ticket SCRUM-XX
87
87
 
88
88
  2. SPEC (SpecLeap)
@@ -113,7 +113,7 @@ Dejar nota clara de:
113
113
  8. POST-DESARROLLO
114
114
  ├── Actualizar context/ si hubo decisiones
115
115
  ├── Actualizar spec si cambió
116
- └── Cerrar ticket en Jira
116
+ └── Cerrar ticket en Asana
117
117
  ```
118
118
 
119
119
  ---
package/scripts/README.md CHANGED
@@ -41,40 +41,28 @@ git commit --no-verify -m "mensaje"
41
41
 
42
42
  ---
43
43
 
44
- ### `setup-mcp.sh`
45
-
46
- **Propósito:** Instalación rápida de dependencias SpecLeap
47
-
48
- **Uso:**
49
- ```bash
50
- bash scripts/setup-mcp.sh
51
- ```
52
-
53
- **Instala:**
54
- - ✅ Cliente Asana (npm global)
55
- - ✅ 20 Agent Skills TIER 1
56
- - ✅ Context7 MCP (opcional)
57
-
58
- **Tiempo:** ~5 minutos
59
-
60
- ---
61
-
62
44
  ### `install-skills.sh`
63
45
 
64
- **Propósito:** Instalar Agent Skills manualmente
46
+ **Propósito:** Instalar los 34 Agent Skills del framework en `~/.skills/`.
65
47
 
66
48
  **Uso:**
67
49
  ```bash
68
50
  bash scripts/install-skills.sh
69
51
  ```
70
52
 
71
- **Instala:** 20 Agent Skills TIER 1 en `~/.skills/`
53
+ **Instala:** 34 skills (20 TIER 1 + 14 TIER 2).
54
+
55
+ **Categorías:**
56
+ - Consistencia: `verification-before-completion`, `systematic-debugging`, `requesting-code-review`, `receiving-code-review`, `code-reviewer`, `debugging-wizard`
57
+ - Backend: `laravel-specialist`, `api-designer`, `database-optimizer`, `python-pro`, `react-expert`, `typescript-pro`
58
+ - Diseño y frontend: `frontend-design`, `canvas-design`, `algorithmic-art`, `skill-creator`, `web-design-guidelines`, `vercel-composition-patterns`, `agent-browser`
59
+ - DevOps: `devops-engineer`, `cloud-architect`, `architecture-designer`, `terraform-engineer`, `monitoring-expert`
60
+ - Mobile: `react-native-expert`, `flutter-expert`
61
+ - Testing: `test-driven-development`, `playwright-expert`, `test-master`
62
+ - Seguridad: `security-reviewer`, `gdpr-dsgvo-expert`
63
+ - Documentación y otros: `code-documenter`, `brainstorming`, `pdf`
72
64
 
73
- **Skills incluidas:**
74
- - 5 skills de seguridad (SAST, STRIDE, OWASP)
75
- - 3 skills de consistencia (verification-before-completion, DRY)
76
- - 6 skills de diseño (Vercel-style, Tailwind, shadcn/ui)
77
- - 6 skills de backend/dev (Laravel, React, TDD, API design)
65
+ El script detecta las skills ya instaladas y las salta. Puede volver a ejecutarse con seguridad.
78
66
 
79
67
  ---
80
68