elsabro 4.2.1 → 5.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.
@@ -75,6 +75,31 @@ Analizar proyecto existente para generar documentación.
75
75
  2. Identificar tecnologías usadas
76
76
  3. Mapear funcionalidades existentes
77
77
  4. Generar resumen en lenguaje simple
78
+
79
+ ### [PRD] Create PRD (BMAD Profile)
80
+ Generar un Product Requirements Document completo con user stories y acceptance criteria.
81
+ Activado por el perfil `bmad` en el flow engine.
82
+
83
+ **Proceso:**
84
+ 1. Si existe `.planning/BRIEF.md`, usarlo como base
85
+ 2. Si no existe, ejecutar `[CB]` primero para crear el brief
86
+ 3. Convertir features del BRIEF en User Stories con formato:
87
+ - **As a** [persona], **I want to** [action], **So that** [benefit]
88
+ - Acceptance Criteria en formato **Given/When/Then**
89
+ 4. Identificar Non-Functional Requirements (performance, security, accessibility)
90
+ 5. Documentar Out of Scope explícitamente (mínimo 2 exclusiones)
91
+ 6. Definir Success Metrics medibles
92
+
93
+ **Input:** BRIEF.md (opcional), user description
94
+ **Output:** `.planning/PRD.md` (basado en `templates/PRD.md.template`)
95
+
96
+ **Reglas:**
97
+ - Cada story DEBE tener al menos 2 acceptance criteria
98
+ - Cada acceptance criteria DEBE ser verificable por un test automatizado
99
+ - Prioridades DEBEN ser P0 (must-have) / P1 (should-have) / P2 (nice-to-have)
100
+ - Out of Scope DEBE listar al menos 2 exclusiones explícitas
101
+ - NO inventar requisitos — preguntar al usuario si hay ambigüedad
102
+ - Usar `AskUserQuestion` para clarificar personas, prioridades, y métricas
78
103
  </commands>
79
104
 
80
105
  <questioning_technique>
@@ -276,3 +276,36 @@ wave: 1 # Número de wave
276
276
  9. Ejecutar plan-checker (si habilitado)
277
277
  ```
278
278
  </execution_flow>
279
+
280
+ <bmad_commands>
281
+ ## Comandos BMAD (Perfil bmad)
282
+
283
+ ### [SOL] Create Solution Design (BMAD Profile)
284
+ Diseñar la solución técnica detallada para cada story del PRD.
285
+ Activado por el perfil `bmad` en el flow engine.
286
+
287
+ **Proceso:**
288
+ 1. Leer `.planning/PRD.md` y `.planning/CONTROL-MANIFEST.md`
289
+ 2. Para cada story en el PRD:
290
+ a. Definir approach técnico específico
291
+ b. Listar archivos a crear/modificar
292
+ c. Especificar pasos de implementación (con código de Context7)
293
+ d. Definir comando de verificación ejecutable
294
+ e. Mapear acceptance criteria → implementación → test
295
+ 3. Crear Architecture Decision Records (ADRs) para decisiones no triviales
296
+ 4. Verificar compliance con CADA constraint del Control Manifest
297
+ 5. Documentar data flows y API contracts
298
+ 6. Estimar esfuerzo por story y asignar a waves
299
+
300
+ **Input:** PRD.md, CONTROL-MANIFEST.md, codebase context
301
+ **Output:** `.planning/SOLUTION.md` (basado en `templates/SOLUTION.md.template`)
302
+
303
+ **Reglas:**
304
+ - Cada story DEBE tener implementation steps concretos
305
+ - Cada ADR DEBE listar al menos 2 alternativas consideradas con razón de rechazo
306
+ - Compliance con Control Manifest DEBE ser explícita por cada constraint
307
+ - Si una constraint del manifest no se puede cumplir → marcar como **BLOCKED** con razón
308
+ - NO asumir tecnologías que no están en el manifest — preguntar si hay ambigüedad
309
+ - Usar Context7 para TODOS los patrones de código (no pseudo-código)
310
+ - Cada story debe poder verificarse independientemente con un comando bash
311
+ </bmad_commands>
@@ -0,0 +1,253 @@
1
+ ---
2
+ name: party
3
+ description: Party Mode - Discusion multi-agente colaborativa donde 2-3 agentes debaten un tema desde diferentes perspectivas
4
+ sync:
5
+ reads: [".elsabro/state.json"]
6
+ writes: [".elsabro/state.json"]
7
+ ---
8
+
9
+ # /elsabro:party
10
+
11
+ <command-name>party</command-name>
12
+
13
+ <state_sync>
14
+ ## SINCRONIZACION DE ESTADO
15
+
16
+ **IMPORTAR**: Ver `/references/state-sync.md` para protocolo completo.
17
+
18
+ ### Al Iniciar
19
+ - Leer `.elsabro/state.json`
20
+ - Verificar contexto actual
21
+ - Activar persistent mode: `state.elsabro_mode = true`
22
+
23
+ ### Al Completar
24
+ - Registrar en `history`
25
+ - Guardar resumen en `state.context.party_summary`
26
+ - Establecer `state.suggested_next = "discuss-phase"`
27
+ </state_sync>
28
+
29
+ ## Proposito
30
+
31
+ Facilitar una discusion colaborativa donde 2-3 agentes ELSABRO debaten un tema desde diferentes perspectivas. A diferencia de Agent Teams (ejecucion paralela de tareas separadas), Party Mode es **deliberacion** sobre el mismo tema.
32
+
33
+ ## Uso
34
+
35
+ ```bash
36
+ # Party Mode automatico (selecciona agentes por relevancia)
37
+ /elsabro:party "debemos usar microservicios o monolito?"
38
+
39
+ # Party Mode con agentes especificos
40
+ /elsabro:party "estrategia de testing" --agents=qa,executor,debugger
41
+
42
+ # Party Mode con rounds limitados
43
+ /elsabro:party "arquitectura del backend" --rounds=2
44
+ ```
45
+
46
+ ## Agent Personality Cards
47
+
48
+ Cada agente tiene una personalidad distinta que guia sus contribuciones:
49
+
50
+ ### Executor (Pragmatico)
51
+ - **Perspectiva:** "Esto funciona en la practica?"
52
+ - **Enfoque:** Factibilidad, velocidad, complejidad real
53
+ - **Pregunta tipica:** "Cuantas horas lleva implementar esto?"
54
+
55
+ ### QA (Esceptico constructivo)
56
+ - **Perspectiva:** "Que puede salir mal?"
57
+ - **Enfoque:** Edge cases, testing, fiabilidad
58
+ - **Pregunta tipica:** "Y si el input es null? Y si hay 10K usuarios simultaneos?"
59
+
60
+ ### Debugger (Detective)
61
+ - **Perspectiva:** "He visto esto fallar antes"
62
+ - **Enfoque:** Patrones de error, root causes, observabilidad
63
+ - **Pregunta tipica:** "Como vamos a diagnosticar problemas en produccion?"
64
+
65
+ ### Planner (Arquitecto)
66
+ - **Perspectiva:** "Pensemos a largo plazo"
67
+ - **Enfoque:** Escalabilidad, mantenibilidad, patrones
68
+ - **Pregunta tipica:** "Como se ve esto en 6 meses con 3x mas features?"
69
+
70
+ ### Analyst (Abogado del usuario)
71
+ - **Perspectiva:** "El usuario importa mas que el codigo"
72
+ - **Enfoque:** UX, requisitos, valor de negocio
73
+ - **Pregunta tipica:** "Esto realmente resuelve lo que el usuario necesita?"
74
+
75
+ ### Quick-Dev (Velocista)
76
+ - **Perspectiva:** "Menos es mas"
77
+ - **Enfoque:** MVP, simplicidad, iteracion rapida
78
+ - **Pregunta tipica:** "Cual es la version mas simple que aporta valor?"
79
+
80
+ ### UX Designer (Empatico)
81
+ - **Perspectiva:** "Como se siente usar esto?"
82
+ - **Enfoque:** Flujos, accesibilidad, consistencia visual
83
+ - **Pregunta tipica:** "El usuario sabe que hacer en este paso?"
84
+
85
+ ### Tech Writer (Comunicador)
86
+ - **Perspectiva:** "Si no se puede explicar, no se entiende"
87
+ - **Enfoque:** Claridad, documentacion, onboarding
88
+ - **Pregunta tipica:** "Un developer nuevo puede entender esto en 10 minutos?"
89
+
90
+ ### Scrum Master (Facilitador)
91
+ - **Perspectiva:** "El equipo primero"
92
+ - **Enfoque:** Proceso, bloqueos, comunicacion
93
+ - **Pregunta tipica:** "Esto genera dependencias entre equipos?"
94
+
95
+ ## Proceso
96
+
97
+ ### Paso 1: Seleccion de Agentes
98
+
99
+ ```
100
+ Agent Relevance Map:
101
+ ┌─────────────────────────────────────────────────────┐
102
+ │ Topic Analysis: "estrategia de testing" │
103
+ ├─────────────────────────────────────────────────────┤
104
+ │ Relevance Score: │
105
+ │ ★★★ QA (testing expert) → SELECTED │
106
+ │ ★★★ Executor (implementation view) → SELECTED │
107
+ │ ★★☆ Debugger (error patterns) → SELECTED │
108
+ │ ★☆☆ Planner (architecture) → reserve │
109
+ │ ☆☆☆ UX Designer (not relevant) → skip │
110
+ └─────────────────────────────────────────────────────┘
111
+ ```
112
+
113
+ Seleccion automatica basada en keywords del topic:
114
+ - **testing/quality/bugs** → QA, Executor, Debugger
115
+ - **architecture/design/scale** → Planner, Executor, Debugger
116
+ - **UX/UI/frontend** → UX Designer, Analyst, Quick-Dev
117
+ - **process/team/sprint** → Scrum Master, Planner, Analyst
118
+ - **requirements/scope/users** → Analyst, Planner, QA
119
+ - **performance/optimization** → Debugger, Executor, Planner
120
+
121
+ ### Paso 2: Deliberacion (Single-Agent Simulation)
122
+
123
+ La implementacion v1 usa **single-agent simulation**: un agente encarna secuencialmente a cada personalidad, generando respuestas autenticas desde cada perspectiva.
124
+
125
+ ```
126
+ ╔══════════════════════════════════════════════════════╗
127
+ ║ PARTY MODE: "Debemos usar microservicios?" ║
128
+ ║ Agentes: Planner, Executor, QA ║
129
+ ║ Round: 1/3 ║
130
+ ╠══════════════════════════════════════════════════════╣
131
+ ║ ║
132
+ ║ [Planner] A largo plazo, microservicios dan ║
133
+ ║ flexibilidad para escalar equipos. Pero el costo ║
134
+ ║ inicial es alto. Recomiendo empezar monolito ║
135
+ ║ modular con boundaries claros. ║
136
+ ║ ║
137
+ ║ [Executor] De acuerdo con el monolito modular. ║
138
+ ║ Microservicios para un equipo de 3 personas es ║
139
+ ║ over-engineering. Pero necesitamos API contracts ║
140
+ ║ claros desde el dia 1 para facilitar la separacion ║
141
+ ║ futura. ║
142
+ ║ ║
143
+ ║ [QA] Mi preocupacion: si no definimos boundaries ║
144
+ ║ ahora, el monolito se convierte en un big ball of ║
145
+ ║ mud. Propongo: domain modules con interfaces ║
146
+ ║ explicitas + integration tests por modulo. ║
147
+ ║ ║
148
+ ╠══════════════════════════════════════════════════════╣
149
+ ║ Round 2: Reacciones... ║
150
+ ╚══════════════════════════════════════════════════════╝
151
+ ```
152
+
153
+ ### Paso 3: Rounds de Reaccion
154
+
155
+ Cada round despues del primero permite a los agentes **reaccionar** a lo que dijeron los otros:
156
+
157
+ - **Acuerdos:** "Concuerdo con [Agent] sobre..."
158
+ - **Desacuerdos:** "No estoy seguro sobre lo que dice [Agent]..."
159
+ - **Builds:** "Expandiendo lo que dijo [Agent]..."
160
+ - **Preguntas:** "Le preguntaria a [Agent]: que pasa si...?"
161
+
162
+ Rounds por defecto: 3 (configurable con --rounds)
163
+
164
+ ### Paso 4: Sintesis
165
+
166
+ Al final, generar consenso y puntos de debate:
167
+
168
+ ```
169
+ ╔══════════════════════════════════════════════════════╗
170
+ ║ PARTY SUMMARY ║
171
+ ╠══════════════════════════════════════════════════════╣
172
+ ║ ║
173
+ ║ Consenso (todos de acuerdo): ║
174
+ ║ • Empezar con monolito modular ║
175
+ ║ • API contracts claros desde dia 1 ║
176
+ ║ • Integration tests por modulo ║
177
+ ║ ║
178
+ ║ Debate abierto (sin consenso): ║
179
+ ║ • Cuando migrar a microservicios? ║
180
+ ║ - Planner: cuando haya 3+ equipos ║
181
+ ║ - Executor: cuando un modulo sea bottleneck ║
182
+ ║ ║
183
+ ║ Action items sugeridos: ║
184
+ ║ 1. Definir domain boundaries ║
185
+ ║ 2. Crear interface contracts entre modulos ║
186
+ ║ 3. Setup integration test framework ║
187
+ ║ ║
188
+ ╚══════════════════════════════════════════════════════╝
189
+ ```
190
+
191
+ ### Paso 5: Documentacion
192
+
193
+ Genera `.planning/PARTY-{topic-slug}-SUMMARY.md` usando template.
194
+
195
+ ## Implementacion Tecnica
196
+
197
+ ```javascript
198
+ // Single-Agent Simulation (v1)
199
+ // Un solo agente cambia de personalidad por iteracion
200
+
201
+ const topic = inputs.topic;
202
+ const agents = selectAgentsByRelevance(topic); // Top 3
203
+ const rounds = inputs.rounds || 3;
204
+
205
+ for (let round = 1; round <= rounds; round++) {
206
+ for (const agent of agents) {
207
+ const response = generateResponse({
208
+ personality: agent.personality,
209
+ topic: topic,
210
+ round: round,
211
+ previousResponses: history,
212
+ instruction: round === 1
213
+ ? "Da tu perspectiva inicial sobre el tema"
214
+ : "Reacciona a lo que dijeron los otros agentes"
215
+ });
216
+ history.push({ agent: agent.name, round, response });
217
+ }
218
+ }
219
+
220
+ // Sintetizar
221
+ const summary = synthesize(history);
222
+ ```
223
+
224
+ ## Opciones
225
+
226
+ | Opcion | Default | Descripcion |
227
+ |--------|---------|-------------|
228
+ | `--agents` | auto | Agentes especificos (separados por coma) |
229
+ | `--rounds` | 3 | Numero de rounds de deliberacion |
230
+ | `--focus` | general | Enfocar discusion: risks, approach, scope, architecture |
231
+ | `--save` | true | Guardar resumen en .planning/ |
232
+
233
+ <siguiente_paso>
234
+ ## Siguiente Paso
235
+
236
+ Al completar el party mode, establecer en state.json:
237
+ ```javascript
238
+ state.context = state.context || {};
239
+ state.context.party_summary = summaryPath;
240
+ state.context.party_consensus = consensusPoints;
241
+ state.context.party_debates = openDebates;
242
+ state.suggested_next = "discuss-phase";
243
+ Write(".elsabro/state.json", JSON.stringify(state, null, 2));
244
+ ```
245
+
246
+ Mostrar al usuario:
247
+ ```
248
+ ## Siguiente Paso
249
+
250
+ → /elsabro:discuss-phase — profundizar en los puntos de debate
251
+ → /elsabro:plan — planificar basado en el consenso alcanzado
252
+ ```
253
+ </siguiente_paso>
@@ -53,6 +53,7 @@ Cambiar rápidamente el perfil de comportamiento de ELSABRO. Los perfiles son pr
53
53
  /elsabro:set-profile yolo
54
54
  /elsabro:set-profile careful
55
55
  /elsabro:set-profile default
56
+ /elsabro:set-profile bmad
56
57
  ```
57
58
 
58
59
  ## Perfiles Disponibles
@@ -125,6 +126,36 @@ Ideal para:
125
126
 
126
127
  ---
127
128
 
129
+ ### 📋 BMAD (Spec-Driven)
130
+
131
+ Desarrollo guiado por especificaciones formales (PRD → Manifest → Solution → Implementation).
132
+
133
+ ```
134
+ Settings:
135
+ - auto-commit: false
136
+ - auto-tests: true
137
+ - require-tests: true
138
+ - parallel-agents: true
139
+ - verbosity: verbose
140
+ - default-flow: bmad
141
+ - extra: require-prd, require-manifest, require-solution, spec-compliance-review
142
+ ```
143
+
144
+ Ideal para:
145
+ - Proyectos con múltiples stakeholders
146
+ - Requisitos complejos que necesitan trazabilidad
147
+ - Equipos que quieren documentación formal antes de implementar
148
+ - Desarrollo con acceptance criteria verificables
149
+
150
+ Fase BMAD:
151
+ ```
152
+ Analysis → Planning → Solutioning → Implementation
153
+ ↓ ↓ ↓ ↓
154
+ PRD.md PLAN.md SOLUTION.md Código + Tests
155
+ ```
156
+
157
+ ---
158
+
128
159
  ### 🎓 Beginner (Learning)
129
160
 
130
161
  Explicaciones detalladas, guía paso a paso.
@@ -193,16 +193,16 @@ AskUserQuestion({
193
193
  multiSelect: false
194
194
  },
195
195
  {
196
- question: "¿Quieres que ELSABRO use múltiples agentes en paralelo para trabajar más rápido?",
197
- header: "Paralelo",
196
+ question: "¿Quieres que ELSABRO use Agent Teams (múltiples agentes coordinados) para trabajar más rápido?",
197
+ header: "Agent Teams",
198
198
  options: [
199
199
  {
200
- label: "Sí (Recomendado)",
201
- description: "ELSABRO lanza 2-4 agentes trabajando simultáneamente (exploración, implementación, testing). Más rápido pero usa más recursos del API."
200
+ label: "Sí con Agent Teams (Recomendado)",
201
+ description: "ELSABRO crea equipos de 2-4 agentes que se coordinan entre sí (TeamCreate + SendMessage). Se comunican, comparten progreso, y trabajan en paralelo. Es como tener un equipo de desarrolladores. Más rápido pero usa más recursos del API."
202
202
  },
203
203
  {
204
- label: "No",
205
- description: "Un solo agente a la vez, secuencial. Más lento pero más predecible y usa menos recursos. Útil si tienes límites de API."
204
+ label: "No, un agente a la vez",
205
+ description: "Un solo agente secuencial. Más lento pero más predecible y usa menos recursos. Útil si tienes límites de API o prefieres control total."
206
206
  }
207
207
  ],
208
208
  multiSelect: false
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "development_flow",
3
3
  "name": "Standard Development Flow",
4
- "version": "4.0.0",
4
+ "version": "5.0.0",
5
5
  "description": "Workflow completo para desarrollar features con quality gates",
6
6
 
7
7
  "config": {
@@ -15,7 +15,7 @@
15
15
  "inputs": {
16
16
  "task": { "type": "string", "required": true, "description": "Descripción de la tarea" },
17
17
  "complexity": { "type": "enum", "values": ["low", "medium", "high"], "default": "medium" },
18
- "profile": { "type": "enum", "values": ["default", "yolo", "careful", "teams"], "default": "default" }
18
+ "profile": { "type": "enum", "values": ["default", "yolo", "careful", "teams", "bmad"], "default": "default" }
19
19
  },
20
20
 
21
21
  "outputs": {
@@ -91,6 +91,7 @@
91
91
  "yolo": "yolo_execute",
92
92
  "careful": "careful_analyze",
93
93
  "teams": "teams_spawn",
94
+ "bmad": "bmad_analyze",
94
95
  "default": "standard_analyze"
95
96
  },
96
97
  "default": "standard_analyze"
@@ -236,6 +237,140 @@
236
237
  }
237
238
  },
238
239
 
240
+ {
241
+ "id": "bmad_analyze",
242
+ "type": "sequence",
243
+ "description": "BMAD Phase 1: Analysis - Generate PRD and Architecture overview",
244
+ "steps": [
245
+ {
246
+ "agent": "elsabro-analyst",
247
+ "as": "prd",
248
+ "model": "opus",
249
+ "inputs": {
250
+ "command": "[PRD]",
251
+ "task": "{{inputs.task}}",
252
+ "brief": "{{state.briefContent || ''}}",
253
+ "template": "templates/PRD.md.template"
254
+ }
255
+ },
256
+ {
257
+ "agent": "elsabro-planner",
258
+ "as": "architecture",
259
+ "model": "opus",
260
+ "inputs": {
261
+ "task": "Create architecture overview for: {{inputs.task}}",
262
+ "prd": "{{steps.prd.output}}"
263
+ }
264
+ }
265
+ ],
266
+ "outputs": {
267
+ "prd": "{{steps.prd.output}}",
268
+ "architecture": "{{steps.architecture.output}}"
269
+ },
270
+ "next": "interrupt_prd_approval"
271
+ },
272
+
273
+ {
274
+ "id": "interrupt_prd_approval",
275
+ "type": "interrupt",
276
+ "reason": "PRD and Architecture require human approval before planning",
277
+ "display": {
278
+ "title": "PRD Review (BMAD)",
279
+ "content": "Se ha generado el PRD con user stories y el documento de arquitectura. Revisa los artifacts antes de continuar.",
280
+ "artifacts": [".planning/PRD.md", ".planning/ARCHITECTURE.md"],
281
+ "options": [
282
+ { "id": "approve", "label": "Aprobar PRD y continuar" },
283
+ { "id": "modify", "label": "Modificar PRD" },
284
+ { "id": "reject", "label": "Cancelar" }
285
+ ]
286
+ },
287
+ "routes": {
288
+ "approve": "bmad_plan",
289
+ "modify": "bmad_analyze",
290
+ "reject": "end_cancelled"
291
+ }
292
+ },
293
+
294
+ {
295
+ "id": "bmad_plan",
296
+ "type": "sequence",
297
+ "description": "BMAD Phase 2: Planning - Break PRD into stories + human Control Manifest",
298
+ "steps": [
299
+ {
300
+ "agent": "elsabro-analyst",
301
+ "as": "stories",
302
+ "model": "opus",
303
+ "inputs": {
304
+ "task": "Break approved PRD into prioritized epics and stories with acceptance criteria",
305
+ "prd": "{{nodes.bmad_analyze.outputs.prd}}"
306
+ }
307
+ }
308
+ ],
309
+ "outputs": {
310
+ "stories": "{{steps.stories.output}}"
311
+ },
312
+ "next": "interrupt_manifest"
313
+ },
314
+
315
+ {
316
+ "id": "interrupt_manifest",
317
+ "type": "interrupt",
318
+ "reason": "Control Manifest needed - human defines constraints before code generation",
319
+ "display": {
320
+ "title": "Control Manifest (BMAD)",
321
+ "content": "Antes de generar codigo, define tus constraints en el Control Manifest. Esto establece los guardarrailes que los agentes DEBEN respetar.",
322
+ "template": "templates/CONTROL-MANIFEST.md.template",
323
+ "options": [
324
+ { "id": "auto", "label": "Generar automaticamente basado en PRD y tech stack" },
325
+ { "id": "manual", "label": "Lo creo yo manualmente" }
326
+ ]
327
+ },
328
+ "routes": {
329
+ "auto": "bmad_solution",
330
+ "manual": "bmad_solution"
331
+ }
332
+ },
333
+
334
+ {
335
+ "id": "bmad_solution",
336
+ "type": "agent",
337
+ "description": "BMAD Phase 3: Solutioning - Technical design per story with ADRs",
338
+ "agent": "elsabro-planner",
339
+ "config": { "model": "opus", "timeout": 600000 },
340
+ "inputs": {
341
+ "command": "[SOL]",
342
+ "prd": "{{nodes.bmad_analyze.outputs.prd}}",
343
+ "stories": "{{nodes.bmad_plan.outputs.stories}}",
344
+ "architecture": "{{nodes.bmad_analyze.outputs.architecture}}",
345
+ "task": "{{inputs.task}}"
346
+ },
347
+ "outputs": {
348
+ "solution": "{{output}}"
349
+ },
350
+ "next": "interrupt_solution_approval"
351
+ },
352
+
353
+ {
354
+ "id": "interrupt_solution_approval",
355
+ "type": "interrupt",
356
+ "reason": "Solution design requires approval before implementation starts",
357
+ "display": {
358
+ "title": "Solution Review (BMAD)",
359
+ "content": "Se ha disenado la solucion tecnica para cada story con ADRs y compliance check contra el Control Manifest. Revisa antes de implementar.",
360
+ "artifacts": [".planning/SOLUTION.md"],
361
+ "options": [
362
+ { "id": "approve", "label": "Aprobar solucion y comenzar implementacion" },
363
+ { "id": "modify", "label": "Modificar diseno" },
364
+ { "id": "reject", "label": "Cancelar" }
365
+ ]
366
+ },
367
+ "routes": {
368
+ "approve": "parallel_implementation",
369
+ "modify": "bmad_solution",
370
+ "reject": "end_cancelled"
371
+ }
372
+ },
373
+
239
374
  {
240
375
  "id": "standard_analyze",
241
376
  "type": "parallel",
@@ -298,7 +433,7 @@
298
433
  "config": { "model": "opus", "timeout": 900000 },
299
434
  "inputs": {
300
435
  "task": "{{inputs.task}}",
301
- "plan": "{{nodes.merge_analysis.outputs.plan || nodes.careful_analyze.outputs.detailed_plan}}",
436
+ "plan": "{{nodes.merge_analysis.outputs.plan || nodes.careful_analyze.outputs.detailed_plan || nodes.bmad_solution.outputs.solution}}",
302
437
  "patterns": "{{state.patterns}}",
303
438
  "mistakes": "{{state.mistakes}}"
304
439
  }
@@ -309,7 +444,7 @@
309
444
  "config": { "model": "opus", "timeout": 600000 },
310
445
  "inputs": {
311
446
  "task": "Crear tests para: {{inputs.task}}",
312
- "plan": "{{nodes.merge_analysis.outputs.plan || nodes.careful_analyze.outputs.detailed_plan}}"
447
+ "plan": "{{nodes.merge_analysis.outputs.plan || nodes.careful_analyze.outputs.detailed_plan || nodes.bmad_solution.outputs.solution}}"
313
448
  }
314
449
  }
315
450
  ],
@@ -156,6 +156,22 @@
156
156
  "agent-teams": true,
157
157
  "blocking-review": true,
158
158
  "max-review-iterations": 5
159
+ },
160
+
161
+ "bmad": {
162
+ "description": "Perfil BMAD - Spec-Driven Development con PRD, Control Manifest y Solution Design",
163
+ "auto-test-on-edit": true,
164
+ "lint-on-save": true,
165
+ "confirm-destructive": true,
166
+ "skill-discovery": true,
167
+ "agent-teams": true,
168
+ "blocking-review": true,
169
+ "max-review-iterations": 5,
170
+ "require-prd": true,
171
+ "require-manifest": true,
172
+ "require-solution": true,
173
+ "spec-compliance-review": true,
174
+ "bmad-phases": ["analysis", "planning", "solutioning", "implementation"]
159
175
  }
160
176
  },
161
177
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "elsabro",
3
- "version": "4.2.1",
4
- "description": "Sistema de desarrollo AI-powered para Claude Code - Next Step Suggestions, Stitch UI Design, Agent Teams, blocking code review, orquestación avanzada con checkpointing, memoria multi-nivel y flows declarativos",
3
+ "version": "5.0.0",
4
+ "description": "Sistema de desarrollo AI-powered para Claude Code - BMAD Method Integration, Spec-Driven Development, Party Mode, Next Step Suggestions, Stitch UI Design, Agent Teams, blocking code review, orquestación avanzada con flows declarativos",
5
5
  "bin": {
6
6
  "elsabro": "bin/install.js"
7
7
  },
@@ -238,6 +238,44 @@ Task({ subagent_type: "pr-review-toolkit:silent-failure-hunter", prompt: "..." }
238
238
 
239
239
  ---
240
240
 
241
+ ### 9. Spec Compliance OBLIGATORIO en Perfil BMAD
242
+
243
+ **PROHIBIDO** (cuando profile=bmad): Ejecutar implementación sin que existan y estén aprobados los 3 artefactos de spec:
244
+ 1. PRD.md (aprobado por usuario)
245
+ 2. CONTROL-MANIFEST.md (firmado por usuario)
246
+ 3. SOLUTION.md (aprobado por usuario)
247
+
248
+ **OBLIGATORIO**: Verificar que los 3 artefactos existen antes de pasar a implementación.
249
+
250
+ **Secuencia BMAD:**
251
+ ```
252
+ 1. Analysis: Generar PRD → interrupt → aprobación usuario
253
+ 2. Planning: Generar Control Manifest → interrupt → aprobación usuario
254
+ 3. Solutioning: Generar Solution Design → interrupt → aprobación usuario
255
+ 4. Implementation: SOLO si los 3 están aprobados
256
+ ```
257
+
258
+ **Aplica a**: Cualquier ejecución bajo profile `bmad` en el flow engine.
259
+
260
+ **Ejemplo correcto:**
261
+ ```javascript
262
+ // Verificar artefactos BMAD antes de implementar
263
+ if (state.context?.bmad_phase === "implementation") {
264
+ assert(state.context.prd_approved, "PRD must be approved");
265
+ assert(state.context.manifest_approved, "Manifest must be approved");
266
+ assert(state.context.solution_approved, "Solution must be approved");
267
+ }
268
+ ```
269
+
270
+ **Ejemplo INCORRECTO:**
271
+ ```javascript
272
+ // VIOLACIÓN: Saltar a implementación sin Solution aprobado
273
+ state.context.bmad_phase = "implementation";
274
+ // ← Sin verificar artefactos
275
+ ```
276
+
277
+ ---
278
+
241
279
  ## MATRIZ DE COMANDOS
242
280
 
243
281
  ### Comandos Core (Workflow Principal)
@@ -60,6 +60,15 @@ Al final de cada `<process>`, mostrar:
60
60
  | progress | context-dependent | → /elsabro:execute — continuar trabajo activo | → /elsabro:check-todos — revisar pendientes |
61
61
  | exit | "resume-work" | → /elsabro:resume-work — cuando vuelvas | |
62
62
 
63
+ ### BMAD Profile Commands
64
+
65
+ | Comando (BMAD) | suggested_next | Sugerencia Primaria | Alternativa |
66
+ |----------------|---------------|---------------------|-------------|
67
+ | bmad_analyze | "bmad_plan" | → Aprobar PRD y continuar a Planning | → Revisar/editar PRD antes de avanzar |
68
+ | bmad_plan | "bmad_solution" | → Aprobar Manifest y continuar a Solutioning | → Editar Control Manifest |
69
+ | bmad_solution | "execute" | → Aprobar Solution y ejecutar implementación | → Revisar Solution Design |
70
+ | party | "discuss-phase" | → /elsabro:discuss-phase — discutir hallazgos | → /elsabro:plan — planificar basado en discusión |
71
+
63
72
  ## Contextual Overrides
64
73
 
65
74
  The suggested_next can be overridden based on context:
@@ -134,6 +134,11 @@ Fases: initializing → diagnosing → fixing → verifying → done
134
134
  Fases: initializing → executing → done
135
135
  ```
136
136
 
137
+ ### BMAD Flow (profile=bmad)
138
+ ```
139
+ Fases: bmad_analyze → prd_approval → bmad_plan → manifest_approval → bmad_solution → solution_approval → implementation → done
140
+ ```
141
+
137
142
  ---
138
143
 
139
144
  ## CONTEXTO QUE CADA COMANDO DEBE PASAR
@@ -194,6 +199,46 @@ Fases: initializing → executing → done
194
199
  }
195
200
  ```
196
201
 
202
+ ### BMAD Flow Context Fields
203
+
204
+ #### bmad_analyze → bmad_plan
205
+ ```json
206
+ {
207
+ "bmad_phase": "planning",
208
+ "prd_file": ".planning/PRD.md",
209
+ "prd_approved": true,
210
+ "architecture_overview": "resumen de arquitectura",
211
+ "user_stories_count": 5,
212
+ "acceptance_criteria_count": 12
213
+ }
214
+ ```
215
+
216
+ #### bmad_plan → bmad_solution
217
+ ```json
218
+ {
219
+ "bmad_phase": "solutioning",
220
+ "prd_file": ".planning/PRD.md",
221
+ "manifest_file": ".planning/CONTROL-MANIFEST.md",
222
+ "manifest_approved": true,
223
+ "tech_constraints": ["constraint1", "constraint2"],
224
+ "plan_file": ".planning/01-01-PLAN.md"
225
+ }
226
+ ```
227
+
228
+ #### bmad_solution → execute
229
+ ```json
230
+ {
231
+ "bmad_phase": "implementation",
232
+ "prd_file": ".planning/PRD.md",
233
+ "manifest_file": ".planning/CONTROL-MANIFEST.md",
234
+ "solution_file": ".planning/SOLUTION.md",
235
+ "solution_approved": true,
236
+ "stories_to_implement": ["story1", "story2"],
237
+ "adrs": ["ADR-001", "ADR-002"],
238
+ "ready_for_execution": true
239
+ }
240
+ ```
241
+
197
242
  ---
198
243
 
199
244
  ## TRANSICIONES VÁLIDAS
@@ -0,0 +1,86 @@
1
+ # Control Manifest: {{feature_name}}
2
+
3
+ > This document is created by the HUMAN before AI agents generate code.
4
+ > It serves as guardrails that agents MUST respect during implementation.
5
+ > Generated by ELSABRO (BMAD Profile) | Date: {{date}}
6
+
7
+ ## Technology Constraints
8
+
9
+ | Category | Constraint | Reason |
10
+ |----------|-----------|--------|
11
+ | Language | {{e.g., TypeScript strict mode}} | {{reason}} |
12
+ | Framework | {{e.g., Next.js 15 App Router}} | {{reason}} |
13
+ | Database | {{e.g., PostgreSQL via Prisma}} | {{reason}} |
14
+ | Auth | {{e.g., Clerk}} | {{reason}} |
15
+ | Styling | {{e.g., Tailwind CSS}} | {{reason}} |
16
+
17
+ ## Architecture Boundaries
18
+
19
+ ### MUST (mandatory patterns)
20
+ - {{pattern that must be followed}}
21
+ - {{pattern that must be followed}}
22
+
23
+ ### MUST NOT (forbidden patterns)
24
+ - {{pattern that is forbidden}}
25
+ - {{pattern that is forbidden}}
26
+
27
+ ### PREFER (recommended but not mandatory)
28
+ - {{preferred pattern}}
29
+ - {{preferred pattern}}
30
+
31
+ ## Performance Constraints
32
+
33
+ | Metric | Target | Measurement |
34
+ |--------|--------|-------------|
35
+ | Page Load | < {{X}}s | Lighthouse |
36
+ | API Response | < {{X}}ms | p95 latency |
37
+ | Bundle Size | < {{X}} KB | webpack-bundle-analyzer |
38
+ | Memory | < {{X}} MB | Chrome DevTools |
39
+
40
+ ## Coding Standards
41
+
42
+ | Area | Standard |
43
+ |------|----------|
44
+ | Testing | {{e.g., Vitest, min 80% coverage}} |
45
+ | Linting | {{e.g., ESLint strict + Prettier}} |
46
+ | Naming (files) | {{e.g., kebab-case}} |
47
+ | Naming (components) | {{e.g., PascalCase}} |
48
+ | Naming (functions) | {{e.g., camelCase}} |
49
+ | Commits | {{e.g., Conventional Commits}} |
50
+
51
+ ## Security Requirements
52
+
53
+ - [ ] Input validation on all user inputs
54
+ - [ ] SQL injection prevention (parameterized queries only)
55
+ - [ ] XSS prevention (sanitized output)
56
+ - [ ] CSRF protection
57
+ - [ ] Rate limiting on public endpoints
58
+ - [ ] {{custom_requirement}}
59
+
60
+ ## Dependency Policy
61
+
62
+ ### Pre-Approved
63
+ {{list of packages that can be used freely}}
64
+
65
+ ### Forbidden
66
+ {{packages that must NOT be used, with reason}}
67
+
68
+ ### Requires Human Approval
69
+ {{packages that need explicit OK before adding}}
70
+
71
+ ## File Structure Conventions
72
+
73
+ ```
74
+ {{expected file/folder structure}}
75
+ ```
76
+
77
+ ## Signed By
78
+
79
+ - **Human:** _______________
80
+ - **Date:** {{date}}
81
+ - **Scope:** {{what this manifest covers}}
82
+
83
+ ---
84
+
85
+ > Agents: If you cannot comply with any constraint above, you MUST stop
86
+ > and report the conflict. Do NOT silently bypass constraints.
@@ -0,0 +1,74 @@
1
+ # Party Mode Summary: {{topic}}
2
+
3
+ > Generated by ELSABRO Party Mode
4
+ > Date: {{date}}
5
+ > Rounds: {{rounds}}
6
+
7
+ ## Participants
8
+
9
+ | Agent | Perspective | Key Contribution |
10
+ |-------|------------|------------------|
11
+ | {{agent_1_name}} | {{agent_1_perspective}} | {{agent_1_key_point}} |
12
+ | {{agent_2_name}} | {{agent_2_perspective}} | {{agent_2_key_point}} |
13
+ | {{agent_3_name}} | {{agent_3_perspective}} | {{agent_3_key_point}} |
14
+
15
+ ## Discussion Rounds
16
+
17
+ ### Round 1: Initial Perspectives
18
+
19
+ **{{agent_1_name}}:**
20
+ {{agent_1_round1}}
21
+
22
+ **{{agent_2_name}}:**
23
+ {{agent_2_round1}}
24
+
25
+ **{{agent_3_name}}:**
26
+ {{agent_3_round1}}
27
+
28
+ ### Round 2: Reactions
29
+
30
+ {{round_2_content}}
31
+
32
+ ### Round 3: Convergence
33
+
34
+ {{round_3_content}}
35
+
36
+ ## Consensus Points
37
+
38
+ Items where all participants agreed:
39
+
40
+ - {{consensus_1}}
41
+ - {{consensus_2}}
42
+ - {{consensus_3}}
43
+
44
+ ## Open Debates
45
+
46
+ Items where participants disagreed or need more discussion:
47
+
48
+ | Topic | Position A | Position B | Suggested Resolution |
49
+ |-------|-----------|-----------|---------------------|
50
+ | {{debate_1_topic}} | {{debate_1_pos_a}} | {{debate_1_pos_b}} | {{debate_1_resolution}} |
51
+
52
+ ## Action Items
53
+
54
+ Suggested next steps based on the discussion:
55
+
56
+ - [ ] {{action_1}}
57
+ - [ ] {{action_2}}
58
+ - [ ] {{action_3}}
59
+
60
+ ## Key Insights
61
+
62
+ Notable observations that emerged during deliberation:
63
+
64
+ 1. {{insight_1}}
65
+ 2. {{insight_2}}
66
+
67
+ ## Relevance to Current Project
68
+
69
+ {{project_relevance}}
70
+
71
+ ---
72
+
73
+ > Use `/elsabro:discuss-phase` to deep-dive into any open debate
74
+ > Use `/elsabro:plan` to turn consensus into an executable plan
@@ -0,0 +1,83 @@
1
+ # PRD: {{project_name}}
2
+
3
+ > Generated by ELSABRO Analyst (BMAD Profile)
4
+ > Version: 1.0 | Date: {{date}}
5
+
6
+ ## 1. Problem Statement
7
+
8
+ {{one_sentence_problem}}
9
+
10
+ ## 2. Target Users
11
+
12
+ | Persona | Description | Primary Need | Pain Point |
13
+ |---------|-------------|-------------|------------|
14
+ | {{persona_1}} | {{desc}} | {{need}} | {{pain}} |
15
+ | {{persona_2}} | {{desc}} | {{need}} | {{pain}} |
16
+
17
+ ## 3. User Stories
18
+
19
+ ### Epic: {{epic_name}}
20
+
21
+ #### Story {{N}}: {{story_title}}
22
+
23
+ **As a** {{persona}},
24
+ **I want to** {{action}},
25
+ **So that** {{benefit}}.
26
+
27
+ **Acceptance Criteria:**
28
+ - [ ] **Given** {{context}}, **when** {{action}}, **then** {{expected_result}}
29
+ - [ ] **Given** {{context}}, **when** {{action}}, **then** {{expected_result}}
30
+
31
+ **Priority:** P0 | P1 | P2
32
+ **Complexity:** Low | Medium | High
33
+ **Dependencies:** {{list or "None"}}
34
+
35
+ ---
36
+
37
+ ## 4. Non-Functional Requirements
38
+
39
+ ### Performance
40
+ - {{perf_criteria}}
41
+
42
+ ### Security
43
+ - {{security_criteria}}
44
+
45
+ ### Accessibility
46
+ - {{a11y_criteria}}
47
+
48
+ ### Scalability
49
+ - {{scale_criteria}}
50
+
51
+ ## 5. Out of Scope
52
+
53
+ > Explicitly listing what this PRD does NOT cover prevents scope creep.
54
+
55
+ - {{explicit_exclusion_1}}
56
+ - {{explicit_exclusion_2}}
57
+ - {{explicit_exclusion_3}}
58
+
59
+ ## 6. Success Metrics
60
+
61
+ | Metric | Target | How to Measure |
62
+ |--------|--------|----------------|
63
+ | {{metric_1}} | {{target}} | {{measurement}} |
64
+ | {{metric_2}} | {{target}} | {{measurement}} |
65
+
66
+ ## 7. Technical Constraints
67
+
68
+ > These constraints come from the Control Manifest (if available).
69
+
70
+ - Language: {{language}}
71
+ - Framework: {{framework}}
72
+ - Database: {{database}}
73
+
74
+ ## 8. Open Questions
75
+
76
+ - [ ] {{question_1}}
77
+ - [ ] {{question_2}}
78
+
79
+ ## 9. Revision History
80
+
81
+ | Version | Date | Author | Changes |
82
+ |---------|------|--------|---------|
83
+ | 1.0 | {{date}} | ELSABRO Analyst | Initial PRD |
@@ -0,0 +1,122 @@
1
+ # Solution Design: {{feature_name}}
2
+
3
+ > Generated by ELSABRO Planner (BMAD Profile)
4
+ > PRD Reference: {{prd_path}}
5
+ > Control Manifest: {{manifest_path}}
6
+ > Date: {{date}}
7
+
8
+ ## Architecture Decisions
9
+
10
+ ### ADR-001: {{decision_title}}
11
+
12
+ - **Status:** Proposed | Accepted | Deprecated
13
+ - **Context:** {{why this decision is needed}}
14
+ - **Decision:** {{what was decided}}
15
+ - **Alternatives Considered:**
16
+ 1. {{alternative_1}} — rejected because {{reason}}
17
+ 2. {{alternative_2}} — rejected because {{reason}}
18
+ - **Consequences:** {{positive and negative impact of this decision}}
19
+
20
+ ---
21
+
22
+ ## Implementation Plan per Story
23
+
24
+ ### Story: {{story_title}}
25
+
26
+ **PRD Reference:** Section {{N}}, Story {{M}}
27
+ **Priority:** {{priority}}
28
+
29
+ **Technical Approach:**
30
+ - Files to create: {{list}}
31
+ - Files to modify: {{list}}
32
+ - Dependencies needed: {{list}}
33
+
34
+ **Implementation Steps:**
35
+ 1. {{step_1}}
36
+ 2. {{step_2}}
37
+ 3. {{step_3}}
38
+
39
+ **Verification:**
40
+ ```bash
41
+ {{command to verify this story works}}
42
+ ```
43
+
44
+ **Acceptance Criteria Mapping:**
45
+ | AC from PRD | Implementation | Test |
46
+ |-------------|---------------|------|
47
+ | Given X, When Y, Then Z | {{how it's implemented}} | {{test file/case}} |
48
+
49
+ ---
50
+
51
+ ## Data Flow
52
+
53
+ ```
54
+ {{user_action}}
55
+ → {{frontend_component}}
56
+ → {{api_endpoint}}
57
+ → {{service_layer}}
58
+ → {{database}}
59
+ ← {{response}}
60
+ ← {{rendered_result}}
61
+ ```
62
+
63
+ ## API Contracts (if applicable)
64
+
65
+ ### {{endpoint_name}}
66
+ ```
67
+ {{METHOD}} /api/{{path}}
68
+
69
+ Request:
70
+ Headers: {{required_headers}}
71
+ Body: {
72
+ {{field}}: {{type}} // {{description}}
73
+ }
74
+
75
+ Response (200):
76
+ {
77
+ {{field}}: {{type}}
78
+ }
79
+
80
+ Response (4xx/5xx):
81
+ {
82
+ error: string,
83
+ code: string
84
+ }
85
+ ```
86
+
87
+ ## Database Changes (if applicable)
88
+
89
+ ### New Tables/Collections
90
+ ```sql
91
+ {{schema changes}}
92
+ ```
93
+
94
+ ### Migrations
95
+ - {{migration_description}}
96
+
97
+ ## Compliance with Control Manifest
98
+
99
+ | Constraint | Status | Implementation Notes |
100
+ |-----------|--------|---------------------|
101
+ | {{constraint_1}} | Compliant | {{how it complies}} |
102
+ | {{constraint_2}} | Compliant | {{how it complies}} |
103
+ | {{constraint_3}} | BLOCKED | {{why it can't comply + proposed alternative}} |
104
+
105
+ ## Risk Assessment
106
+
107
+ | Risk | Probability | Impact | Mitigation |
108
+ |------|------------|--------|------------|
109
+ | {{risk_1}} | Low/Med/High | Low/Med/High | {{mitigation}} |
110
+
111
+ ## Estimated Effort
112
+
113
+ | Story | Complexity | Estimated Waves |
114
+ |-------|-----------|----------------|
115
+ | {{story_1}} | {{low/med/high}} | Wave {{N}} |
116
+ | {{story_2}} | {{low/med/high}} | Wave {{N}} |
117
+
118
+ ## Revision History
119
+
120
+ | Version | Date | Author | Changes |
121
+ |---------|------|--------|---------|
122
+ | 1.0 | {{date}} | ELSABRO Planner | Initial solution design |