oden-forge 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 (58) hide show
  1. package/.claude/CLAUDE.md +75 -0
  2. package/.claude/commands/oden/architect.md +204 -0
  3. package/.claude/commands/oden/checklist.md +199 -0
  4. package/.claude/commands/oden/daily.md +223 -0
  5. package/.claude/commands/oden/debug.md +203 -0
  6. package/.claude/commands/oden/epic.md +224 -0
  7. package/.claude/commands/oden/git.md +259 -0
  8. package/.claude/commands/oden/help.md +304 -0
  9. package/.claude/commands/oden/init-agents.md +268 -0
  10. package/.claude/commands/oden/init-mcp.md +460 -0
  11. package/.claude/commands/oden/init.md +495 -0
  12. package/.claude/commands/oden/mcp.md +585 -0
  13. package/.claude/commands/oden/prd.md +134 -0
  14. package/.claude/commands/oden/research.md +207 -0
  15. package/.claude/commands/oden/review.md +146 -0
  16. package/.claude/commands/oden/spec.md +539 -0
  17. package/.claude/commands/oden/sync.md +286 -0
  18. package/.claude/commands/oden/tasks.md +156 -0
  19. package/.claude/commands/oden/test.md +200 -0
  20. package/.claude/commands/oden/work.md +791 -0
  21. package/.claude/epics/.gitkeep +0 -0
  22. package/.claude/hooks/README.md +130 -0
  23. package/.claude/hooks/bash-worktree-fix.sh +189 -0
  24. package/.claude/prds/.gitkeep +0 -0
  25. package/.claude/rules/agent-coordination.md +224 -0
  26. package/.claude/rules/branch-operations.md +147 -0
  27. package/.claude/rules/datetime.md +118 -0
  28. package/.claude/rules/frontmatter-operations.md +58 -0
  29. package/.claude/rules/github-operations.md +89 -0
  30. package/.claude/rules/oden-methodology.md +111 -0
  31. package/.claude/rules/path-standards.md +155 -0
  32. package/.claude/rules/standard-patterns.md +174 -0
  33. package/.claude/rules/strip-frontmatter.md +82 -0
  34. package/.claude/rules/worktree-operations.md +136 -0
  35. package/.claude/scripts/oden/blocked.sh +72 -0
  36. package/.claude/scripts/oden/epic-list.sh +101 -0
  37. package/.claude/scripts/oden/epic-show.sh +91 -0
  38. package/.claude/scripts/oden/epic-status.sh +90 -0
  39. package/.claude/scripts/oden/help.sh +71 -0
  40. package/.claude/scripts/oden/in-progress.sh +74 -0
  41. package/.claude/scripts/oden/init.sh +192 -0
  42. package/.claude/scripts/oden/next.sh +65 -0
  43. package/.claude/scripts/oden/prd-list.sh +89 -0
  44. package/.claude/scripts/oden/prd-status.sh +63 -0
  45. package/.claude/scripts/oden/search.sh +71 -0
  46. package/.claude/scripts/oden/standup.sh +89 -0
  47. package/.claude/scripts/oden/status.sh +42 -0
  48. package/.claude/scripts/oden/validate.sh +101 -0
  49. package/.claude/settings.json +27 -0
  50. package/MIGRATION.md +217 -0
  51. package/README.md +368 -0
  52. package/bin/install.js +155 -0
  53. package/bin/migrate.js +191 -0
  54. package/bin/oden-forge.js +114 -0
  55. package/bin/post-install.js +47 -0
  56. package/bin/pre-uninstall.js +108 -0
  57. package/install.sh +231 -0
  58. package/package.json +76 -0
@@ -0,0 +1,585 @@
1
+ ---
2
+ allowed-tools: Bash, Read, Write, Edit, LS, Glob
3
+ description: Gestionar MCPs - instalar, verificar estado, actualizar y recomendar MCPs para el proyecto
4
+ ---
5
+
6
+ # Oden Forge - MCP Management
7
+
8
+ Gestiona Model Context Protocol (MCP) servers para potenciar el desarrollo con herramientas externas.
9
+
10
+ ## Usage
11
+
12
+ ```
13
+ /oden:mcp [subcommand] [args]
14
+ ```
15
+
16
+ ## Subcomandos
17
+
18
+ | Subcomando | Descripción |
19
+ |------------|-------------|
20
+ | `status` | Mostrar MCPs configurados y su estado |
21
+ | `recommend` | Recomendar MCPs basado en el stack del proyecto |
22
+ | `install [mcp]` | Instalar un MCP específico o interactivo |
23
+ | `update` | Actualizar MCPs instalados a última versión |
24
+ | (vacío) | Equivale a `status` |
25
+
26
+ ---
27
+
28
+ ## `/oden:mcp status`
29
+
30
+ Muestra el estado actual de MCPs configurados.
31
+
32
+ ### Proceso
33
+
34
+ 1. Leer configuración global de `~/.claude.json` (campo `mcpServers`)
35
+ 2. Leer configuración de proyecto `.mcp.json` en la raíz del proyecto
36
+ 3. Leer settings de `~/.claude/settings.json` (campo `mcpServers`)
37
+ 4. Combinar y mostrar estado
38
+
39
+ ### Detección de MCPs
40
+
41
+ ```bash
42
+ # Config global
43
+ cat ~/.claude.json 2>/dev/null | python3 -c "
44
+ import json, sys
45
+ try:
46
+ data = json.load(sys.stdin)
47
+ servers = data.get('mcpServers', {})
48
+ for name, config in servers.items():
49
+ stype = config.get('type', 'command')
50
+ print(f' global | {name:<24} | {stype}')
51
+ except: pass
52
+ "
53
+
54
+ # Config proyecto
55
+ cat .mcp.json 2>/dev/null | python3 -c "
56
+ import json, sys
57
+ try:
58
+ data = json.load(sys.stdin)
59
+ servers = data.get('mcpServers', {})
60
+ for name, config in servers.items():
61
+ stype = config.get('type', 'command')
62
+ print(f' project | {name:<24} | {stype}')
63
+ except: pass
64
+ "
65
+ ```
66
+
67
+ ### Output
68
+
69
+ ```
70
+ MCP STATUS
71
+ ==========
72
+
73
+ Scope | MCP | Type
74
+ ----------|--------------------------|--------
75
+ global | context7 | http
76
+ global | pencil | http
77
+ project | supabase | command
78
+ project | playwright | command
79
+
80
+ Total: 4 MCPs configurados (2 global, 2 proyecto)
81
+
82
+ Tip: Usa /oden:mcp recommend para ver MCPs sugeridos para tu stack.
83
+ ```
84
+
85
+ ---
86
+
87
+ ## `/oden:mcp recommend`
88
+
89
+ Detecta el stack del proyecto y recomienda MCPs relevantes.
90
+
91
+ ### Detección de Stack
92
+
93
+ Analizar archivos en la raíz del proyecto para detectar tecnologías:
94
+
95
+ ```bash
96
+ # Detectar stack del proyecto
97
+ STACK=""
98
+
99
+ # Next.js / React
100
+ [ -f "next.config.js" ] || [ -f "next.config.mjs" ] || [ -f "next.config.ts" ] && STACK="$STACK,nextjs"
101
+
102
+ # React (sin Next)
103
+ [ -f "package.json" ] && grep -q '"react"' package.json 2>/dev/null && STACK="$STACK,react"
104
+
105
+ # React Native / Expo
106
+ [ -f "app.json" ] && grep -q '"expo"' app.json 2>/dev/null && STACK="$STACK,expo"
107
+ [ -f "package.json" ] && grep -q '"react-native"' package.json 2>/dev/null && STACK="$STACK,react-native"
108
+
109
+ # Flutter
110
+ [ -f "pubspec.yaml" ] && STACK="$STACK,flutter"
111
+
112
+ # Swift / iOS
113
+ [ -d "*.xcodeproj" ] || [ -f "Package.swift" ] && STACK="$STACK,swift"
114
+
115
+ # Supabase
116
+ [ -d "supabase" ] || ([ -f "package.json" ] && grep -q '"@supabase"' package.json 2>/dev/null) && STACK="$STACK,supabase"
117
+
118
+ # Stripe
119
+ [ -f "package.json" ] && grep -q '"stripe"' package.json 2>/dev/null && STACK="$STACK,stripe"
120
+
121
+ # Python
122
+ [ -f "requirements.txt" ] || [ -f "pyproject.toml" ] || [ -f "Pipfile" ] && STACK="$STACK,python"
123
+
124
+ # Node.js
125
+ [ -f "package.json" ] && STACK="$STACK,nodejs"
126
+
127
+ # Tailwind
128
+ [ -f "tailwind.config.js" ] || [ -f "tailwind.config.ts" ] && STACK="$STACK,tailwind"
129
+
130
+ # Playwright (already using)
131
+ [ -f "playwright.config.ts" ] || [ -f "playwright.config.js" ] && STACK="$STACK,playwright"
132
+
133
+ echo "Detected: $STACK"
134
+ ```
135
+
136
+ ### MCP Catalog
137
+
138
+ #### Tier 1 - Universal (recomendado para todos los proyectos)
139
+
140
+ | MCP | Descripcion | Config Type |
141
+ |-----|-------------|-------------|
142
+ | `context7` | Documentacion actualizada de librerias | http |
143
+ | `pencil` | Editor de diseno para web/mobile | http |
144
+
145
+ #### Tier 2 - Stack-Specific (segun tecnologias detectadas)
146
+
147
+ | MCP | Se recomienda cuando | Config Type |
148
+ |-----|----------------------|-------------|
149
+ | `supabase` | Detecta `supabase/` dir o `@supabase` en deps | command (npx) |
150
+ | `playwright` | Proyecto web sin playwright ya configurado | command (npx) |
151
+ | `chrome-devtools` | Proyecto web (debug de UI) | command (npx) |
152
+ | `figma` | Proyecto con UI (web o mobile) | http |
153
+ | `vercel` | Detecta next.config o vercel.json | http |
154
+ | `notion` | Cualquier proyecto (productividad) | http |
155
+
156
+ #### Tier 3 - Specialized (por necesidad especifica)
157
+
158
+ | MCP | Se recomienda cuando | Config Type |
159
+ |-----|----------------------|-------------|
160
+ | `stripe` | Detecta `stripe` en deps | command (npx) |
161
+ | `ios-simulator` | Detecta React Native, Expo, o Swift en macOS | command (npx) |
162
+ | `expo` | Detecta Expo en deps | command (npx) |
163
+ | `sentry` | Detecta `@sentry` en deps | command (npx) |
164
+ | `github` | Cualquier proyecto con git remote | http |
165
+
166
+ ### Recommendation Logic
167
+
168
+ ```
169
+ POR CADA MCP en el catalogo:
170
+ SI ya esta instalado:
171
+ marcar como "instalado"
172
+ SI su condicion de stack aplica:
173
+ marcar como "recomendado"
174
+ SI NO:
175
+ marcar como "disponible"
176
+ ```
177
+
178
+ ### Output
179
+
180
+ ```
181
+ MCP RECOMMENDATIONS
182
+ ====================
183
+
184
+ Stack detectado: nextjs, react, supabase, tailwind, nodejs
185
+
186
+ Tier 1 - Universal:
187
+ [installed] context7 - Documentacion de librerias
188
+ [recommend] pencil - Editor de diseno
189
+
190
+ Tier 2 - Para tu stack:
191
+ [installed] supabase - Gestion de BD Supabase
192
+ [recommend] chrome-devtools - Debug de UI en Chrome
193
+ [recommend] vercel - Deploy y gestion Vercel
194
+ [recommend] playwright - Testing E2E
195
+
196
+ Tier 3 - Especializados:
197
+ [available] stripe - Pagos con Stripe
198
+ [available] notion - Documentacion en Notion
199
+ [available] sentry - Monitoreo de errores
200
+
201
+ Instalar: /oden:mcp install <nombre>
202
+ Instalar todos recomendados: /oden:mcp install --recommended
203
+ ```
204
+
205
+ ---
206
+
207
+ ## `/oden:mcp install [mcp]`
208
+
209
+ Instala un MCP especifico o permite seleccion interactiva.
210
+
211
+ ### Argumentos
212
+
213
+ - `<nombre>` - Nombre del MCP a instalar (ej: `context7`, `supabase`)
214
+ - `--recommended` - Instalar todos los MCPs marcados como "recomendado"
215
+ - (vacío) - Mostrar lista interactiva para seleccionar
216
+
217
+ ### Configuraciones de Instalacion
218
+
219
+ Cada MCP tiene una configuracion predefinida. Al instalar:
220
+
221
+ 1. Preguntar nivel de instalacion:
222
+ - **Global** (`~/.claude.json`) - Disponible en todos los proyectos
223
+ - **Proyecto** (`.mcp.json`) - Solo este proyecto
224
+
225
+ 2. Agregar configuracion JSON al archivo correspondiente
226
+
227
+ 3. Indicar si requiere credenciales y como obtenerlas
228
+
229
+ ### MCP Configs (Referencia de Instalacion)
230
+
231
+ #### context7
232
+ ```json
233
+ {
234
+ "context7": {
235
+ "type": "http",
236
+ "url": "https://mcp.context7.com/mcp"
237
+ }
238
+ }
239
+ ```
240
+ - **Scope recomendado:** Global
241
+ - **Credenciales:** Ninguna (uso gratuito)
242
+
243
+ #### pencil
244
+ ```json
245
+ {
246
+ "pencil": {
247
+ "type": "http",
248
+ "url": "https://mcp.pencil.li/"
249
+ }
250
+ }
251
+ ```
252
+ - **Scope recomendado:** Global
253
+ - **Credenciales:** Cuenta Pencil (OAuth en primer uso)
254
+
255
+ #### supabase
256
+ ```json
257
+ {
258
+ "supabase": {
259
+ "command": "npx",
260
+ "args": [
261
+ "-y",
262
+ "@supabase/mcp-server-supabase@latest",
263
+ "--read-only",
264
+ "--project-ref=<PROJECT_REF>"
265
+ ],
266
+ "env": {
267
+ "SUPABASE_ACCESS_TOKEN": "<ACCESS_TOKEN>"
268
+ }
269
+ }
270
+ }
271
+ ```
272
+ - **Scope recomendado:** Proyecto
273
+ - **Credenciales:** Access Token + Project Ref
274
+ - **Obtener:** https://supabase.com/dashboard/account/tokens
275
+
276
+ #### playwright
277
+ ```json
278
+ {
279
+ "playwright": {
280
+ "command": "npx",
281
+ "args": ["-y", "@anthropic/mcp-server-playwright@latest"]
282
+ }
283
+ }
284
+ ```
285
+ - **Scope recomendado:** Proyecto
286
+ - **Credenciales:** Ninguna
287
+
288
+ #### chrome-devtools
289
+ ```json
290
+ {
291
+ "chrome-devtools": {
292
+ "command": "npx",
293
+ "args": ["-y", "chrome-devtools-mcp@latest"]
294
+ }
295
+ }
296
+ ```
297
+ - **Scope recomendado:** Global
298
+ - **Credenciales:** Ninguna (Chrome debe estar instalado)
299
+
300
+ #### figma
301
+ ```json
302
+ {
303
+ "figma": {
304
+ "type": "http",
305
+ "url": "https://mcp.figma.com/mcp"
306
+ }
307
+ }
308
+ ```
309
+ - **Scope recomendado:** Global
310
+ - **Credenciales:** Cuenta Figma (OAuth en primer uso)
311
+
312
+ #### vercel
313
+ ```json
314
+ {
315
+ "vercel": {
316
+ "type": "http",
317
+ "url": "https://mcp.vercel.com/"
318
+ }
319
+ }
320
+ ```
321
+ - **Scope recomendado:** Global
322
+ - **Credenciales:** Cuenta Vercel (OAuth en primer uso)
323
+
324
+ #### notion
325
+ ```json
326
+ {
327
+ "notion": {
328
+ "type": "http",
329
+ "url": "https://mcp.notion.com/mcp"
330
+ }
331
+ }
332
+ ```
333
+ - **Scope recomendado:** Global
334
+ - **Credenciales:** Cuenta Notion (OAuth en primer uso)
335
+
336
+ #### stripe
337
+ ```json
338
+ {
339
+ "stripe": {
340
+ "command": "npx",
341
+ "args": ["-y", "@stripe/mcp@latest"],
342
+ "env": {
343
+ "STRIPE_SECRET_KEY": "<SECRET_KEY>"
344
+ }
345
+ }
346
+ }
347
+ ```
348
+ - **Scope recomendado:** Proyecto
349
+ - **Credenciales:** Stripe Secret Key
350
+ - **Obtener:** https://dashboard.stripe.com/apikeys
351
+
352
+ #### ios-simulator
353
+ ```json
354
+ {
355
+ "ios-simulator": {
356
+ "command": "npx",
357
+ "args": ["-y", "@anthropic/mcp-server-ios-simulator@latest"]
358
+ }
359
+ }
360
+ ```
361
+ - **Scope recomendado:** Global
362
+ - **Credenciales:** Ninguna (requiere Xcode + macOS)
363
+
364
+ #### expo
365
+ ```json
366
+ {
367
+ "expo": {
368
+ "command": "npx",
369
+ "args": ["-y", "@anthropic/mcp-server-expo@latest"]
370
+ }
371
+ }
372
+ ```
373
+ - **Scope recomendado:** Proyecto
374
+ - **Credenciales:** Ninguna
375
+
376
+ #### sentry
377
+ ```json
378
+ {
379
+ "sentry": {
380
+ "command": "npx",
381
+ "args": ["-y", "@sentry/mcp-server@latest"],
382
+ "env": {
383
+ "SENTRY_AUTH_TOKEN": "<AUTH_TOKEN>"
384
+ }
385
+ }
386
+ }
387
+ ```
388
+ - **Scope recomendado:** Proyecto
389
+ - **Credenciales:** Sentry Auth Token
390
+ - **Obtener:** https://sentry.io/settings/auth-tokens/
391
+
392
+ #### github
393
+ ```json
394
+ {
395
+ "github": {
396
+ "type": "http",
397
+ "url": "https://mcp.github.com/mcp"
398
+ }
399
+ }
400
+ ```
401
+ - **Scope recomendado:** Global
402
+ - **Credenciales:** Cuenta GitHub (OAuth en primer uso)
403
+
404
+ ### Proceso de Instalacion
405
+
406
+ 1. **Validar MCP nombre** - Verificar que existe en el catalogo
407
+ 2. **Verificar si ya instalado** - Leer configs existentes
408
+ 3. **Preguntar scope** - Global o proyecto (usar recomendado como default)
409
+ 4. **Solicitar credenciales** - Si el MCP las requiere, indicar donde obtenerlas y pedir al usuario
410
+ 5. **Escribir configuracion** - Agregar al archivo JSON correspondiente
411
+ 6. **Verificar** - Confirmar que se escribio correctamente
412
+
413
+ ### Escritura de Config
414
+
415
+ Para archivos JSON existentes, hacer merge del mcpServers:
416
+
417
+ ```python
418
+ # Pseudocodigo
419
+ config = read_json(config_file) or {}
420
+ mcp_servers = config.get("mcpServers", {})
421
+ mcp_servers[mcp_name] = mcp_config
422
+ config["mcpServers"] = mcp_servers
423
+ write_json(config_file, config)
424
+ ```
425
+
426
+ Para `.mcp.json` de proyecto (si no existe, crear):
427
+
428
+ ```json
429
+ {
430
+ "mcpServers": {
431
+ "<nombre>": { ... }
432
+ }
433
+ }
434
+ ```
435
+
436
+ Para `~/.claude.json` global (merge con existente):
437
+
438
+ Leer el archivo, parsear JSON, agregar al campo `mcpServers`, escribir de vuelta.
439
+
440
+ ### Output
441
+
442
+ ```
443
+ MCP INSTALL: context7
444
+ ======================
445
+
446
+ Scope: Global (~/.claude.json)
447
+ Credenciales: Ninguna requerida
448
+
449
+ Configuracion agregada:
450
+ "context7": {
451
+ "type": "http",
452
+ "url": "https://mcp.context7.com/mcp"
453
+ }
454
+
455
+ Reinicia Claude Code para activar el MCP.
456
+
457
+ Verificar despues de reiniciar: /mcp
458
+ ```
459
+
460
+ ### Output con credenciales requeridas
461
+
462
+ ```
463
+ MCP INSTALL: supabase
464
+ ======================
465
+
466
+ Este MCP requiere credenciales:
467
+
468
+ 1. SUPABASE_ACCESS_TOKEN
469
+ Obtener en: https://supabase.com/dashboard/account/tokens
470
+
471
+ 2. PROJECT_REF
472
+ Encontrar en: Dashboard > Settings > General > Reference ID
473
+
474
+ Proporciona los valores para continuar, o usa /oden:mcp install supabase
475
+ de nuevo cuando los tengas.
476
+ ```
477
+
478
+ ---
479
+
480
+ ## `/oden:mcp update`
481
+
482
+ Actualiza MCPs de tipo command (npx) a su ultima version.
483
+
484
+ ### Proceso
485
+
486
+ 1. Leer MCPs configurados (global + proyecto)
487
+ 2. Identificar los de tipo `command` que usan `npx`
488
+ 3. Verificar que sus paquetes usen `@latest`
489
+ 4. Si alguno tiene version fija, actualizar a `@latest`
490
+
491
+ ### Output
492
+
493
+ ```
494
+ MCP UPDATE
495
+ ==========
496
+
497
+ Verificando MCPs de tipo command...
498
+
499
+ supabase - @supabase/mcp-server-supabase@latest (ya actualizado)
500
+ playwright - @anthropic/mcp-server-playwright@0.3.0 -> @latest (actualizado)
501
+
502
+ 1 MCP actualizado. Reinicia Claude Code para aplicar.
503
+ ```
504
+
505
+ Para MCPs de tipo HTTP no se requiere actualizacion (son servicios remotos).
506
+
507
+ ---
508
+
509
+ ## Deteccion Automatica de Stack
510
+
511
+ La deteccion se basa en archivos presentes en el proyecto:
512
+
513
+ | Indicador | Stack Detectado |
514
+ |-----------|-----------------|
515
+ | `next.config.*` | Next.js |
516
+ | `package.json` con `"react"` | React |
517
+ | `app.json` con `"expo"` | Expo |
518
+ | `package.json` con `"react-native"` | React Native |
519
+ | `pubspec.yaml` | Flutter |
520
+ | `*.xcodeproj` o `Package.swift` | Swift/iOS |
521
+ | `supabase/` dir | Supabase |
522
+ | `package.json` con `"stripe"` | Stripe |
523
+ | `requirements.txt` o `pyproject.toml` | Python |
524
+ | `tailwind.config.*` | Tailwind CSS |
525
+ | `vercel.json` | Vercel |
526
+ | `package.json` con `"@sentry"` | Sentry |
527
+ | `.sentryclirc` | Sentry |
528
+ | `playwright.config.*` | Playwright |
529
+
530
+ ---
531
+
532
+ ## Reinicio de Claude Code
533
+
534
+ Despues de instalar o actualizar MCPs:
535
+
536
+ ```
537
+ IMPORTANTE: Reinicia Claude Code para que los MCPs se carguen.
538
+
539
+ Opciones:
540
+ 1. Salir con /exit y volver a entrar
541
+ 2. Usar Cmd+Shift+P > "Reload Window" (si usas VS Code)
542
+
543
+ Despues de reiniciar, verifica con: /mcp
544
+ ```
545
+
546
+ ---
547
+
548
+ ## Error Handling
549
+
550
+ ### MCP no encontrado
551
+ ```
552
+ No se encontro MCP: "{nombre}"
553
+
554
+ MCPs disponibles:
555
+ context7, pencil, supabase, playwright, chrome-devtools,
556
+ figma, vercel, notion, stripe, ios-simulator, expo, sentry, github
557
+
558
+ Uso: /oden:mcp install <nombre>
559
+ ```
560
+
561
+ ### Config file no es JSON valido
562
+ ```
563
+ El archivo {file} no contiene JSON valido.
564
+ Creando backup en {file}.backup y generando nuevo archivo.
565
+ ```
566
+
567
+ ### MCP ya instalado
568
+ ```
569
+ MCP "{nombre}" ya esta configurado en {scope}.
570
+
571
+ Config actual:
572
+ {config_json}
573
+
574
+ Para reinstalar: elimina la entrada y ejecuta /oden:mcp install {nombre}
575
+ ```
576
+
577
+ ---
578
+
579
+ ## Notas
580
+
581
+ - Los MCPs HTTP se conectan a servicios remotos y requieren OAuth en primer uso
582
+ - Los MCPs NPX ejecutan procesos locales y pueden necesitar API keys como variables de entorno
583
+ - La configuracion global (`~/.claude.json`) aplica a todos los proyectos
584
+ - La configuracion de proyecto (`.mcp.json`) solo aplica al proyecto actual
585
+ - Siempre verificar con `/mcp` despues de reiniciar para confirmar que los MCPs estan activos
@@ -0,0 +1,134 @@
1
+ ---
2
+ allowed-tools: Bash, Read, Write, LS
3
+ description: Crear PRD con brainstorming inteligente (nativo, sin CCPM)
4
+ ---
5
+
6
+ # PRD - Product Requirements Document
7
+
8
+ Crea un PRD completo con brainstorming inteligente y contexto del proyecto.
9
+
10
+ ## Usage
11
+ ```
12
+ /oden:prd <feature_name>
13
+ ```
14
+
15
+ ## Preflight
16
+
17
+ Silently validate:
18
+
19
+ 1. **Feature name**: Must be kebab-case (lowercase, numbers, hyphens, starts with letter).
20
+ - If invalid: "Feature name must be kebab-case. Examples: user-auth, payment-v2"
21
+
22
+ 2. **Existing PRD**: Check `.claude/prds/$ARGUMENTS.md`
23
+ - If exists, ask to overwrite
24
+
25
+ 3. **Directory**: Create `.claude/prds/` if needed
26
+
27
+ ## Context Gathering
28
+
29
+ Before brainstorming, silently scan for project context:
30
+
31
+ 1. **Technical context** (if available):
32
+ - Read `docs/reference/technical-decisions.md` for stack/architecture
33
+ - Read `docs/reference/competitive-analysis.md` for market context
34
+ - Read any existing module specs in `docs/reference/modules/`
35
+
36
+ 2. **Existing PRDs**: Scan `.claude/prds/` for related features
37
+ - Identify potential overlaps or dependencies
38
+
39
+ 3. **Project CLAUDE.md**: Read for project conventions
40
+
41
+ This context informs smarter questions and better PRD quality.
42
+
43
+ ## Brainstorming Session
44
+
45
+ You are a product manager creating a PRD for: **$ARGUMENTS**
46
+
47
+ ### Smart Questions
48
+ Ask 3-5 focused questions based on project context. Adapt questions to what you already know:
49
+
50
+ - If technical-decisions.md exists: Skip stack questions, focus on feature-specific concerns
51
+ - If competitive-analysis exists: Reference competitors in questions
52
+ - If related PRDs exist: Ask about integration/overlap
53
+
54
+ **Question areas:**
55
+ - Problem: What specific user pain does this solve?
56
+ - Users: Who benefits most? (reference existing personas if available)
57
+ - Scope: What's MVP vs full vision?
58
+ - Constraints: Timeline, budget, technical limitations?
59
+ - Success: How do we measure this worked?
60
+
61
+ ### PRD Creation
62
+
63
+ After gathering answers, create the PRD.
64
+
65
+ #### File: `.claude/prds/$ARGUMENTS.md`
66
+
67
+ ```markdown
68
+ ---
69
+ name: $ARGUMENTS
70
+ description: [One-line summary]
71
+ status: backlog
72
+ created: [Real datetime from: date -u +"%Y-%m-%dT%H:%M:%SZ"]
73
+ ---
74
+
75
+ # PRD: $ARGUMENTS
76
+
77
+ ## Executive Summary
78
+ [Value proposition and brief overview]
79
+
80
+ ## Problem Statement
81
+ [What problem, why now, evidence/data]
82
+
83
+ ## User Stories
84
+ [Personas, journeys, acceptance criteria per story]
85
+
86
+ ## Requirements
87
+
88
+ ### Functional Requirements
89
+ [Core features with clear acceptance criteria]
90
+
91
+ ### Non-Functional Requirements
92
+ [Performance, security, scalability, accessibility]
93
+
94
+ ## Success Criteria
95
+ [Measurable KPIs and metrics]
96
+
97
+ ## Constraints & Assumptions
98
+ [Technical, timeline, resource limitations]
99
+
100
+ ## Out of Scope
101
+ [What we explicitly won't build]
102
+
103
+ ## Dependencies
104
+ [External and internal dependencies]
105
+ ```
106
+
107
+ ## Quality Checks
108
+
109
+ Before saving, verify:
110
+ - All sections complete (no placeholders)
111
+ - User stories have acceptance criteria
112
+ - Success criteria are measurable
113
+ - Out of scope is explicit
114
+
115
+ ## Output
116
+
117
+ ```
118
+ PRD created: .claude/prds/$ARGUMENTS.md
119
+
120
+ Summary:
121
+ - [problem in one sentence]
122
+ - [number] user stories
123
+ - [number] functional requirements
124
+ - [key constraint]
125
+
126
+ Next: /oden:epic $ARGUMENTS
127
+ ```
128
+
129
+ ## Important
130
+
131
+ - Get REAL datetime: `date -u +"%Y-%m-%dT%H:%M:%SZ"`
132
+ - Never use placeholder dates
133
+ - Leverage existing project context for smarter brainstorming
134
+ - Keep brainstorming focused (3-5 questions, not 10+)