specleap-framework 2.0.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 (47) hide show
  1. package/.agents/backend.md +419 -0
  2. package/.agents/frontend.md +577 -0
  3. package/.agents/producto.md +516 -0
  4. package/.commands/adoptar.md +323 -0
  5. package/.commands/ayuda.md +142 -0
  6. package/.commands/crear-tickets.md +55 -0
  7. package/.commands/documentar.md +285 -0
  8. package/.commands/explicar.md +234 -0
  9. package/.commands/implementar.md +383 -0
  10. package/.commands/inicio.md +824 -0
  11. package/.commands/nuevo/README.md +292 -0
  12. package/.commands/nuevo/questions-base.yaml +320 -0
  13. package/.commands/nuevo/responses-example.yaml +53 -0
  14. package/.commands/planificar.md +253 -0
  15. package/.commands/refinar.md +306 -0
  16. package/LICENSE +21 -0
  17. package/README.md +603 -0
  18. package/SETUP.md +351 -0
  19. package/install.sh +152 -0
  20. package/package.json +60 -0
  21. package/proyectos/_template/.gitkeep +1 -0
  22. package/proyectos/_template/ANEXOS.md +21 -0
  23. package/proyectos/_template/CONTRATO.md +26 -0
  24. package/proyectos/_template/context/.gitkeep +1 -0
  25. package/rules/development-rules.md +113 -0
  26. package/rules/environment-protection.md +97 -0
  27. package/rules/git-workflow.md +142 -0
  28. package/rules/session-protocol.md +121 -0
  29. package/scripts/README.md +129 -0
  30. package/scripts/analyze-project.sh +826 -0
  31. package/scripts/create-asana-tasks.sh +133 -0
  32. package/scripts/detect-project-type.sh +141 -0
  33. package/scripts/estimate-effort.sh +290 -0
  34. package/scripts/generate-asana-structure.sh +262 -0
  35. package/scripts/generate-contract.sh +360 -0
  36. package/scripts/generate-contrato.sh +555 -0
  37. package/scripts/install-git-hooks.sh +141 -0
  38. package/scripts/install-skills.sh +130 -0
  39. package/scripts/lib/asana-utils.sh +191 -0
  40. package/scripts/lib/jira-project-utils.sh +222 -0
  41. package/scripts/lib/questions.json +831 -0
  42. package/scripts/lib/render-contrato.py +195 -0
  43. package/scripts/lib/validate.sh +325 -0
  44. package/scripts/parse-contrato.sh +190 -0
  45. package/scripts/setup-mcp.sh +654 -0
  46. package/scripts/test-cuestionario.sh +428 -0
  47. package/setup.sh +458 -0
@@ -0,0 +1,292 @@
1
+ # Sistema de Cuestionario Adaptativo — SpecLeap
2
+
3
+ Este directorio contiene el sistema de preguntas adaptativas para generar CONTRATOs completos y personalizados según el tipo de proyecto.
4
+
5
+ ## 📁 Estructura
6
+
7
+ ```
8
+ .commands/nuevo/
9
+ ├── README.md ← Este archivo
10
+ ├── questions-base.yaml ← Preguntas obligatorias (todos los proyectos)
11
+ ├── questions-ecommerce.yaml ← Preguntas específicas e-commerce
12
+ ├── questions-saas.yaml ← Preguntas específicas SaaS
13
+ ├── questions-api.yaml ← Preguntas específicas API/Backend
14
+ ├── questions-cms.yaml ← Preguntas específicas CMS/Blog
15
+ ├── questions-auth.yaml ← Preguntas específicas autenticación
16
+ ├── questions-admin.yaml ← Preguntas específicas panel admin
17
+ ├── questions-storage.yaml ← Preguntas específicas almacenamiento
18
+ ├── questions-oauth.yaml ← Preguntas específicas OAuth
19
+ ├── questions-aws.yaml ← Preguntas específicas AWS
20
+ ├── responses-example.yaml ← Ejemplo de archivo de respuestas
21
+ └── responses-schema.json ← JSON Schema para validación
22
+ ```
23
+
24
+ ## 🔄 Flujo de Funcionamiento
25
+
26
+ ### 1. Inicio del Cuestionario
27
+
28
+ ```bash
29
+ # Usuario ejecuta
30
+ /nuevo
31
+
32
+ # Claude carga questions-base.yaml
33
+ # Realiza 18-20 preguntas obligatorias
34
+ ```
35
+
36
+ ### 2. Detección de Tipo de Proyecto
37
+
38
+ ```bash
39
+ # Analiza respuestas con detect-project-type.sh
40
+ ./scripts/detect-project-type.sh responses.yaml
41
+
42
+ # Output: ecommerce auth admin storage
43
+ ```
44
+
45
+ ### 3. Carga de Preguntas Condicionales
46
+
47
+ ```bash
48
+ # Según tipos detectados, carga archivos adicionales:
49
+ # - questions-ecommerce.yaml
50
+ # - questions-auth.yaml
51
+ # - questions-admin.yaml
52
+ # - questions-storage.yaml
53
+
54
+ # Total: 18 base + 30-40 condicionales = 48-58 preguntas
55
+ ```
56
+
57
+ ### 4. Generación del CONTRATO
58
+
59
+ ```bash
60
+ # Genera CONTRATO.md con frontmatter YAML
61
+ ./scripts/generate-contract.sh responses.yaml
62
+
63
+ # Output: proyectos/<nombre>/CONTRATO.md
64
+ ```
65
+
66
+ ## 📋 Formato questions-*.yaml
67
+
68
+ ```yaml
69
+ version: "1.0"
70
+ category: <nombre>
71
+ description: "Descripción del conjunto de preguntas"
72
+
73
+ questions:
74
+ - id: unique_id
75
+ section: <identity|stack|features|deployment|etc>
76
+ text: "¿Pregunta?"
77
+ type: <text|textarea|select|boolean|multiline>
78
+ required: true|false
79
+ options: # Solo para type=select
80
+ - value: valor
81
+ label: "Etiqueta"
82
+ triggers: [questions-oauth] # Activa otros archivos
83
+ follow_up: # Pregunta de seguimiento
84
+ - condition: "valor"
85
+ question: "¿Pregunta adicional?"
86
+ type: text
87
+ depends_on: # Solo mostrar si...
88
+ - other_question_id: [valor1, valor2]
89
+ validation: "regex" # Validación opcional
90
+ help: "Texto de ayuda"
91
+ default: valor_por_defecto
92
+ ```
93
+
94
+ ## 🎯 Tipos de Pregunta
95
+
96
+ ### `text`
97
+ Respuesta corta (1 línea)
98
+
99
+ ```yaml
100
+ - id: project_name
101
+ type: text
102
+ validation: "^[a-z0-9-]+$"
103
+ ```
104
+
105
+ ### `textarea`
106
+ Respuesta larga (múltiples líneas)
107
+
108
+ ```yaml
109
+ - id: project_objective
110
+ type: textarea
111
+ ```
112
+
113
+ ### `select`
114
+ Opción única de una lista
115
+
116
+ ```yaml
117
+ - id: backend_framework
118
+ type: select
119
+ options:
120
+ - value: laravel
121
+ label: "Laravel (PHP)"
122
+ - value: nodejs
123
+ label: "Node.js"
124
+ ```
125
+
126
+ ### `boolean`
127
+ Sí/No
128
+
129
+ ```yaml
130
+ - id: needs_ssl
131
+ type: boolean
132
+ default: true
133
+ ```
134
+
135
+ ### `multiline`
136
+ Lista de items (uno por línea)
137
+
138
+ ```yaml
139
+ - id: core_features
140
+ type: multiline
141
+ help: |
142
+ Una funcionalidad por línea:
143
+ - Login de usuarios
144
+ - CRUD de productos
145
+ ```
146
+
147
+ ## 🔍 Detectores de Tipo
148
+
149
+ El sistema analiza las respuestas en busca de patrones (keywords) para determinar qué preguntas condicionales cargar.
150
+
151
+ ### Patrones Detectados
152
+
153
+ | Tipo | Keywords | Archivo Cargado |
154
+ |------|----------|-----------------|
155
+ | **E-commerce** | pago, compra, carrito, stripe, paypal, producto | `questions-ecommerce.yaml` |
156
+ | **SaaS** | suscripción, plan, billing, mensualidad, trial | `questions-saas.yaml` |
157
+ | **API** | api, endpoint, rest, graphql, webhook | `questions-api.yaml` |
158
+ | **CMS** | blog, post, artículo, contenido, cms | `questions-cms.yaml` |
159
+ | **Realtime** | chat, mensaje, notificación, websocket | `questions-realtime.yaml` |
160
+ | **Auth** | login, usuario, registro, perfil | `questions-auth.yaml` |
161
+
162
+ ### Configuración en questions-base.yaml
163
+
164
+ ```yaml
165
+ analyzers:
166
+ detect_project_type:
167
+ triggers:
168
+ - keywords: [pago, compra, carrito]
169
+ activate: questions-ecommerce
170
+ - keywords: [blog, post, artículo]
171
+ activate: questions-cms
172
+ ```
173
+
174
+ ## 📝 Archivo de Respuestas (responses.yaml)
175
+
176
+ Las respuestas se guardan en formato YAML plano:
177
+
178
+ ```yaml
179
+ # Respuestas básicas
180
+ project_name: mi-proyecto
181
+ project_objective: Descripción del proyecto
182
+ backend_framework: laravel
183
+ frontend_framework: react
184
+
185
+ # Listas
186
+ core_features:
187
+ - Funcionalidad 1
188
+ - Funcionalidad 2
189
+
190
+ # Booleanos
191
+ use_typescript: true
192
+ needs_ssl: true
193
+
194
+ # Opciones
195
+ target_audience: public
196
+ visual_style: modern
197
+ ```
198
+
199
+ ## 🏗️ Generación del CONTRATO
200
+
201
+ El script `generate-contract.sh`:
202
+
203
+ 1. Lee `responses.yaml`
204
+ 2. Carga template `proyectos/_template/CONTRATO.md`
205
+ 3. Reemplaza placeholders con valores reales
206
+ 4. Genera frontmatter YAML con metadata
207
+ 5. Crea archivos `context/*.md`
208
+ 6. Guarda todo en `proyectos/<nombre>/`
209
+
210
+ ### Frontmatter Generado
211
+
212
+ ```yaml
213
+ ---
214
+ project:
215
+ name: "mi-proyecto"
216
+ display_name: "Mi Proyecto"
217
+ created_at: "2026-02-24"
218
+ status: draft
219
+ version: "1.0"
220
+
221
+ stack:
222
+ backend:
223
+ framework: "laravel"
224
+ frontend:
225
+ framework: "react"
226
+ database:
227
+ engine: "postgresql"
228
+
229
+ features:
230
+ core: [...]
231
+ auth:
232
+ enabled: true
233
+ methods: [email_password]
234
+ ---
235
+ ```
236
+
237
+ ## 🧪 Testing
238
+
239
+ ### Probar el Sistema Completo
240
+
241
+ ```bash
242
+ # 1. Analizar respuestas de ejemplo
243
+ cd /path/to/specleap
244
+ ./scripts/detect-project-type.sh .commands/nuevo/responses-example.yaml
245
+
246
+ # Output esperado:
247
+ # ✓ Detectado: Autenticación de usuarios
248
+ # ✓ Detectado: Panel de administración
249
+ # ✓ Detectado: Almacenamiento en la nube
250
+ # ✓ Detectado: Stack PHP/Laravel
251
+ # ✓ Detectado: Frontend React
252
+
253
+ # 2. Generar CONTRATO
254
+ ./scripts/generate-contract.sh .commands/nuevo/responses-example.yaml
255
+
256
+ # Output esperado:
257
+ # ✅ CONTRATO.md generado exitosamente
258
+ # 📁 Archivos creados:
259
+ # - proyectos/casa-de-peli/CONTRATO.md
260
+ # - proyectos/casa-de-peli/context/brief.md
261
+ # - ...
262
+ ```
263
+
264
+ ### Validar CONTRATO Generado
265
+
266
+ ```bash
267
+ # Ver frontmatter
268
+ head -n 100 proyectos/casa-de-peli/CONTRATO.md
269
+
270
+ # Ver estructura completa
271
+ cat proyectos/casa-de-peli/CONTRATO.md
272
+ ```
273
+
274
+ ## 🔧 Próximos Pasos (Fase 2)
275
+
276
+ - [ ] Crear archivos `questions-*.yaml` para cada tipo
277
+ - [ ] Implementar orquestador `ask-questions.sh`
278
+ - [ ] Integrar con comando `/nuevo` en Claude
279
+ - [ ] Testing con proyecto real
280
+
281
+ ## 🔧 Próximos Pasos (Fase 3)
282
+
283
+ - [ ] Parser CONTRATO → Jira (`parse-contract-to-jira.sh`)
284
+ - [ ] Integración con `planificar`
285
+ - [ ] Sincronización bidireccional Jira ↔ CONTRATO
286
+
287
+ ## 📚 Referencias
288
+
289
+ - Template CONTRATO: `proyectos/_template/CONTRATO.md`
290
+ - Script detector: `scripts/detect-project-type.sh`
291
+ - Script generador: `scripts/generate-contract.sh`
292
+ - Ejemplo respuestas: `.commands/nuevo/responses-example.yaml`
@@ -0,0 +1,320 @@
1
+ # PREGUNTAS BASE (Obligatorias para todos los proyectos)
2
+ # Estas preguntas determinan el tipo de proyecto y activan preguntas condicionales
3
+
4
+ version: "1.0"
5
+ category: base
6
+ description: "Preguntas fundamentales que aplican a cualquier tipo de proyecto"
7
+
8
+ questions:
9
+ # ===== IDENTIDAD DEL PROYECTO =====
10
+ - id: project_name
11
+ section: identity
12
+ text: "¿Cuál es el nombre del proyecto?"
13
+ type: text
14
+ required: true
15
+ validation: "^[a-z0-9-]+$"
16
+ help: "Usa formato slug: mi-proyecto-web (solo minúsculas, números y guiones)"
17
+
18
+ - id: project_objective
19
+ section: identity
20
+ text: "¿Cuál es el objetivo principal del proyecto?"
21
+ type: textarea
22
+ required: true
23
+ help: "Describe en 1-2 frases qué problema resuelve o qué necesidad cubre"
24
+
25
+ - id: target_audience
26
+ section: identity
27
+ text: "¿Quién es el público objetivo?"
28
+ type: select
29
+ required: true
30
+ options:
31
+ - value: personal
32
+ label: "Uso personal"
33
+ - value: team
34
+ label: "Equipo/empresa específica"
35
+ - value: public
36
+ label: "Público general"
37
+ - value: niche
38
+ label: "Nicho específico"
39
+ follow_up:
40
+ - condition: "niche"
41
+ question: "Especifica el nicho:"
42
+ type: text
43
+
44
+ - id: problem_solved
45
+ section: identity
46
+ text: "¿Qué problema específico resuelve?"
47
+ type: textarea
48
+ required: true
49
+
50
+ - id: competitors
51
+ section: identity
52
+ text: "¿Hay algún competidor o referencia? (Ejemplo: 'Como Trello pero para...')"
53
+ type: text
54
+ required: false
55
+
56
+ # ===== STACK TECNOLÓGICO BASE =====
57
+ - id: backend_framework
58
+ section: stack
59
+ text: "¿Qué framework de backend prefieres?"
60
+ type: select
61
+ required: true
62
+ options:
63
+ - value: laravel
64
+ label: "Laravel (PHP)"
65
+ triggers: [questions-php]
66
+ - value: nodejs
67
+ label: "Node.js (Express/NestJS)"
68
+ triggers: [questions-nodejs]
69
+ - value: python
70
+ label: "Python (Django/FastAPI)"
71
+ triggers: [questions-python]
72
+ - value: rails
73
+ label: "Ruby on Rails"
74
+ triggers: [questions-ruby]
75
+ - value: other
76
+ label: "Otro"
77
+ follow_up:
78
+ - condition: "other"
79
+ question: "Especifica el framework:"
80
+ type: text
81
+
82
+ - id: frontend_framework
83
+ section: stack
84
+ text: "¿Qué framework de frontend prefieres?"
85
+ type: select
86
+ required: true
87
+ options:
88
+ - value: react
89
+ label: "React"
90
+ triggers: [questions-react]
91
+ - value: vue
92
+ label: "Vue.js"
93
+ triggers: [questions-vue]
94
+ - value: angular
95
+ label: "Angular"
96
+ - value: svelte
97
+ label: "Svelte"
98
+ - value: blade
99
+ label: "Blade (solo Laravel)"
100
+ requires: {backend_framework: laravel}
101
+ - value: none
102
+ label: "Sin frontend (API/Backend solo)"
103
+ triggers: [questions-api]
104
+ - value: other
105
+ label: "Otro"
106
+
107
+ - id: use_typescript
108
+ section: stack
109
+ text: "¿Usar TypeScript en el frontend?"
110
+ type: boolean
111
+ required: true
112
+ depends_on:
113
+ - frontend_framework: [react, vue, angular, svelte]
114
+ default: true
115
+
116
+ - id: database
117
+ section: stack
118
+ text: "¿Qué base de datos prefieres?"
119
+ type: select
120
+ required: true
121
+ options:
122
+ - value: postgresql
123
+ label: "PostgreSQL"
124
+ - value: mysql
125
+ label: "MySQL/MariaDB"
126
+ - value: mongodb
127
+ label: "MongoDB"
128
+ triggers: [questions-nosql]
129
+ - value: sqlite
130
+ label: "SQLite"
131
+ - value: other
132
+ label: "Otro"
133
+
134
+ # ===== FUNCIONALIDADES CORE =====
135
+ - id: core_features
136
+ section: features
137
+ text: "Lista las funcionalidades CORE (MVP mínimo viable)"
138
+ type: multiline
139
+ required: true
140
+ help: |
141
+ Una funcionalidad por línea. Ejemplos:
142
+ - Login de usuarios
143
+ - CRUD de productos
144
+ - Búsqueda de contenido
145
+ - Carrito de compras
146
+ analyzer: detect_project_type
147
+
148
+ - id: secondary_features
149
+ section: features
150
+ text: "Lista las funcionalidades SECUNDARIAS (nice-to-have)"
151
+ type: multiline
152
+ required: false
153
+ help: |
154
+ Funcionalidades deseables pero no críticas para el MVP.
155
+ Ejemplos:
156
+ - Notificaciones email
157
+ - Modo oscuro
158
+ - Exportar a PDF
159
+
160
+ - id: needs_auth
161
+ section: features
162
+ text: "¿El proyecto necesita autenticación de usuarios?"
163
+ type: select
164
+ required: true
165
+ options:
166
+ - value: email_password
167
+ label: "Sí, email + password"
168
+ triggers: [questions-auth]
169
+ - value: oauth
170
+ label: "Sí, OAuth (Google, GitHub, etc.)"
171
+ triggers: [questions-auth, questions-oauth]
172
+ - value: both
173
+ label: "Ambas opciones"
174
+ triggers: [questions-auth, questions-oauth]
175
+ - value: none
176
+ label: "No necesita autenticación"
177
+
178
+ - id: needs_admin_panel
179
+ section: features
180
+ text: "¿Necesita panel de administración?"
181
+ type: select
182
+ required: true
183
+ options:
184
+ - value: full
185
+ label: "Sí, completo (CRUD de todo)"
186
+ triggers: [questions-admin]
187
+ - value: basic
188
+ label: "Sí, básico (solo usuarios y config)"
189
+ triggers: [questions-admin]
190
+ - value: none
191
+ label: "No"
192
+
193
+ - id: file_uploads
194
+ section: features
195
+ text: "¿Necesita subida de archivos/imágenes?"
196
+ type: select
197
+ required: true
198
+ options:
199
+ - value: local
200
+ label: "Sí, almacenamiento local"
201
+ - value: cloud
202
+ label: "Sí, cloud (S3, Cloudinary...)"
203
+ triggers: [questions-storage]
204
+ - value: none
205
+ label: "No"
206
+
207
+ # ===== DESPLIEGUE =====
208
+ - id: hosting
209
+ section: deployment
210
+ text: "¿Dónde se desplegará el proyecto?"
211
+ type: select
212
+ required: true
213
+ options:
214
+ - value: hostinger
215
+ label: "Hostinger"
216
+ - value: aws
217
+ label: "AWS"
218
+ triggers: [questions-aws]
219
+ - value: digitalocean
220
+ label: "DigitalOcean"
221
+ - value: vercel
222
+ label: "Vercel/Netlify (frontend) + otro (backend)"
223
+ - value: local
224
+ label: "Local/desarrollo solamente"
225
+ - value: other
226
+ label: "Otro"
227
+
228
+ - id: needs_ssl
229
+ section: deployment
230
+ text: "¿Necesita SSL/HTTPS?"
231
+ type: boolean
232
+ required: true
233
+ default: true
234
+
235
+ - id: custom_domain
236
+ section: deployment
237
+ text: "¿Necesita dominio personalizado?"
238
+ type: text
239
+ required: false
240
+ help: "Deja vacío si usarás subdominio temporal"
241
+
242
+ # ===== DISEÑO =====
243
+ - id: color_palette
244
+ section: design
245
+ text: "¿Tienes una paleta de colores definida?"
246
+ type: select
247
+ required: true
248
+ options:
249
+ - value: custom
250
+ label: "Sí, tengo colores específicos"
251
+ - value: suggest
252
+ label: "No, sugiéreme una"
253
+ - value: default
254
+ label: "Usar defaults de Tailwind/Bootstrap"
255
+ follow_up:
256
+ - condition: "custom"
257
+ question: "Especifica colores (primario, secundario, acento):"
258
+ type: text
259
+
260
+ - id: visual_style
261
+ section: design
262
+ text: "¿Qué estilo visual prefieres?"
263
+ type: select
264
+ required: true
265
+ options:
266
+ - value: minimal
267
+ label: "Minimalista (Vercel-style)"
268
+ - value: modern
269
+ label: "Moderno (Gradientes, glassmorphism)"
270
+ - value: professional
271
+ label: "Profesional (Corporate, serio)"
272
+ - value: creative
273
+ label: "Creativo (Ilustraciones, colores vivos)"
274
+ - value: other
275
+ label: "Otro"
276
+
277
+ # ===== RESTRICCIONES =====
278
+ - id: time_limit
279
+ section: constraints
280
+ text: "¿Hay límite de tiempo para el MVP?"
281
+ type: text
282
+ required: false
283
+ help: "Ejemplos: 2 semanas, 3 meses, sin prisa..."
284
+
285
+ - id: budget_limit
286
+ section: constraints
287
+ text: "¿Hay presupuesto máximo para servicios externos?"
288
+ type: text
289
+ required: false
290
+ help: "Para hosting, APIs, servicios de terceros..."
291
+
292
+ - id: out_of_scope
293
+ section: constraints
294
+ text: "¿Qué NO debe incluir el proyecto?"
295
+ type: multiline
296
+ required: false
297
+ help: |
298
+ Cosas que explícitamente quedan fuera del alcance.
299
+ Ejemplos:
300
+ - No app móvil nativa
301
+ - No sistema de pagos
302
+ - No chat en vivo
303
+
304
+ # ===== ANALIZADORES =====
305
+ analyzers:
306
+ detect_project_type:
307
+ description: "Detecta el tipo de proyecto basándose en las funcionalidades listadas"
308
+ triggers:
309
+ - keywords: [login, usuario, registro, perfil, auth]
310
+ activate: questions-auth
311
+ - keywords: [pago, compra, carrito, stripe, paypal]
312
+ activate: questions-ecommerce
313
+ - keywords: [suscripción, plan, billing, mensualidad]
314
+ activate: questions-saas
315
+ - keywords: [api, endpoint, rest, graphql]
316
+ activate: questions-api
317
+ - keywords: [blog, post, artículo, contenido, cms]
318
+ activate: questions-cms
319
+ - keywords: [chat, mensaje, notificación, tiempo real]
320
+ activate: questions-realtime
@@ -0,0 +1,53 @@
1
+ # Archivo de ejemplo de respuestas
2
+ # Este archivo muestra cómo se guardan las respuestas del cuestionario
3
+
4
+ # ===== IDENTIDAD =====
5
+ project_name: casa-de-peli
6
+ project_display_name: Casa de Peli
7
+ project_objective: Plataforma web de catálogo y reseñas de películas donde los usuarios pueden descubrir películas, ver detalles y crear listas personalizadas
8
+ problem_solved: Los usuarios no tienen un lugar centralizado para llevar registro de películas vistas, escribir reseñas y gestionar listas de películas
9
+ target_audience: public
10
+ competitors: IMDb, Letterboxd, FilmAffinity
11
+
12
+ # ===== STACK TECNOLÓGICO =====
13
+ backend_framework: laravel
14
+ frontend_framework: react
15
+ use_typescript: true
16
+ database: postgresql
17
+ css_framework: tailwind
18
+
19
+ # ===== FUNCIONALIDADES =====
20
+ core_features:
21
+ - Catálogo de películas con búsqueda y filtros
22
+ - Sistema de reseñas y calificaciones
23
+ - Listas personalizadas (favoritas, por ver, vistas)
24
+ - Autenticación de usuarios
25
+ - Perfil de usuario
26
+
27
+ secondary_features:
28
+ - Feed de actividad reciente
29
+ - Recomendaciones basadas en gustos
30
+ - Modo oscuro
31
+ - Compartir reseñas en redes sociales
32
+
33
+ needs_auth: email_password
34
+ needs_admin_panel: basic
35
+ file_uploads: cloud
36
+
37
+ # ===== DISEÑO =====
38
+ color_palette: suggest
39
+ visual_style: modern
40
+
41
+ # ===== DESPLIEGUE =====
42
+ hosting: hostinger
43
+ needs_ssl: true
44
+ custom_domain: casadepeli.com
45
+
46
+ # ===== RESTRICCIONES =====
47
+ time_limit: 3 meses
48
+ budget_limit: 500 USD
49
+ out_of_scope:
50
+ - Streaming de películas (no reproducción)
51
+ - App móvil nativa
52
+ - Sistema de pagos
53
+ - Chat entre usuarios