bmad-method 4.37.0 → 5.0.0-beta.1

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/.github/workflows/promote-to-stable.yml +144 -0
  2. package/CHANGELOG.md +16 -9
  3. package/bmad-core/agents/qa.md +37 -18
  4. package/bmad-core/data/test-levels-framework.md +146 -0
  5. package/bmad-core/data/test-priorities-matrix.md +172 -0
  6. package/bmad-core/tasks/nfr-assess.md +343 -0
  7. package/bmad-core/tasks/qa-gate.md +159 -0
  8. package/bmad-core/tasks/review-story.md +234 -74
  9. package/bmad-core/tasks/risk-profile.md +353 -0
  10. package/bmad-core/tasks/test-design.md +174 -0
  11. package/bmad-core/tasks/trace-requirements.md +264 -0
  12. package/bmad-core/templates/qa-gate-tmpl.yaml +102 -0
  13. package/dist/agents/analyst.txt +20 -26
  14. package/dist/agents/architect.txt +14 -35
  15. package/dist/agents/bmad-master.txt +40 -70
  16. package/dist/agents/bmad-orchestrator.txt +28 -5
  17. package/dist/agents/dev.txt +0 -14
  18. package/dist/agents/pm.txt +0 -25
  19. package/dist/agents/po.txt +0 -18
  20. package/dist/agents/qa.txt +2079 -135
  21. package/dist/agents/sm.txt +0 -10
  22. package/dist/agents/ux-expert.txt +0 -7
  23. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +0 -37
  24. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +3 -12
  25. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +0 -7
  26. package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +44 -90
  27. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.txt +14 -49
  28. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +0 -46
  29. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +0 -15
  30. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.txt +0 -17
  31. package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +38 -142
  32. package/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +0 -2
  33. package/dist/teams/team-all.txt +2181 -261
  34. package/dist/teams/team-fullstack.txt +43 -57
  35. package/dist/teams/team-ide-minimal.txt +2064 -125
  36. package/dist/teams/team-no-ui.txt +43 -57
  37. package/docs/enhanced-ide-development-workflow.md +220 -15
  38. package/docs/user-guide.md +271 -18
  39. package/docs/working-in-the-brownfield.md +264 -31
  40. package/package.json +1 -1
  41. package/tools/installer/bin/bmad.js +33 -32
  42. package/tools/installer/config/install.config.yaml +11 -1
  43. package/tools/installer/lib/file-manager.js +1 -1
  44. package/tools/installer/lib/ide-base-setup.js +1 -1
  45. package/tools/installer/lib/ide-setup.js +197 -83
  46. package/tools/installer/lib/installer.js +3 -3
  47. package/tools/installer/package.json +1 -1
@@ -76,7 +76,7 @@ The PM will:
76
76
  *document-project
77
77
  ```
78
78
 
79
- The analyst will:
79
+ The architect will:
80
80
 
81
81
  - **Ask about your focus** if no PRD was provided
82
82
  - **Offer options**: Create PRD, provide requirements, or describe the enhancement
@@ -85,11 +85,11 @@ The analyst will:
85
85
  - **Skip unrelated areas** to keep docs lean
86
86
  - **Generate ONE architecture document** for all environments
87
87
 
88
- The analyst creates:
88
+ The architect creates:
89
89
 
90
90
  - **One comprehensive architecture document** following fullstack-architecture template
91
91
  - **Covers all system aspects** in a single file
92
- - **Easy to copy and save** as `docs/project-architecture.md`
92
+ - **Easy to copy and save** as `docs/architecture.md`
93
93
  - **Can be sharded later** in IDE if desired
94
94
 
95
95
  For example, if you say "Add payment processing to user service":
@@ -108,10 +108,10 @@ For example, if you say "Add payment processing to user service":
108
108
  2. **Upload your project**:
109
109
  - **Option A**: Paste your GitHub repository URL directly
110
110
  - **Option B**: Upload your flattened-codebase.xml file
111
- 3. **Load the analyst agent**: Upload `dist/agents/architect.txt`
111
+ 3. **Load the architect agent**: Upload `dist/agents/architect.txt`
112
112
  4. **Run documentation**: Type `*document-project`
113
113
 
114
- The analyst will generate comprehensive documentation of everything.
114
+ The architect will generate comprehensive documentation of everything.
115
115
 
116
116
  #### Phase 2: Plan Your Enhancement
117
117
 
@@ -206,19 +206,20 @@ The PO ensures:
206
206
  ### Phase 4: Save and Shard Documents
207
207
 
208
208
  1. Save your PRD and Architecture as:
209
- docs/brownfield-prd.md
210
- docs/brownfield-architecture.md
209
+ docs/prd.md
210
+ docs/architecture.md
211
+ (Note: You can optionally prefix with 'brownfield-' if managing multiple versions)
211
212
  2. Shard your docs:
212
213
  In your IDE
213
214
 
214
215
  ```bash
215
216
  @po
216
- shard docs/brownfield-prd.md
217
+ shard docs/prd.md
217
218
  ```
218
219
 
219
220
  ```bash
220
221
  @po
221
- shard docs/brownfield-architecture.md
222
+ shard docs/architecture.md
222
223
  ```
223
224
 
224
225
  ### Phase 5: Transition to Development
@@ -255,12 +256,172 @@ Brownfield changes should:
255
256
 
256
257
  ### 4. Test Integration Thoroughly
257
258
 
258
- Focus testing on:
259
+ #### Why the Test Architect is Critical for Brownfield
260
+
261
+ In brownfield projects, the Test Architect (Quinn) becomes your safety net against breaking existing functionality. Unlike greenfield where you're building fresh, brownfield requires careful validation that new changes don't destabilize what already works.
262
+
263
+ #### Brownfield-Specific Testing Challenges
264
+
265
+ The Test Architect addresses unique brownfield complexities:
266
+
267
+ | **Challenge** | **How Test Architect Helps** | **Command** |
268
+ | --------------------------- | ------------------------------------------------- | ------------------- |
269
+ | **Regression Risks** | Identifies which existing features might break | `*risk` |
270
+ | **Legacy Dependencies** | Maps integration points and hidden dependencies | `*trace` |
271
+ | **Performance Degradation** | Validates no slowdown in existing flows | `*nfr` |
272
+ | **Coverage Gaps** | Finds untested legacy code that new changes touch | `*design` |
273
+ | **Breaking Changes** | Detects API/contract violations | `*review` |
274
+ | **Migration Safety** | Validates data transformations and rollback plans | `*risk` + `*review` |
275
+
276
+ #### Complete Test Architect Workflow for Brownfield
277
+
278
+ ##### Stage 1: Before Development (Risk & Strategy)
259
279
 
260
- - Integration points
261
- - Existing functionality (regression)
262
- - Performance impact
263
- - Data migrations
280
+ **CRITICAL FOR BROWNFIELD - Run These First:**
281
+
282
+ ```bash
283
+ # 1. RISK ASSESSMENT (Run IMMEDIATELY after story creation)
284
+ @qa *risk {brownfield-story}
285
+ # Identifies: Legacy dependencies, breaking changes, integration points
286
+ # Output: docs/qa/assessments/{epic}.{story}-risk-{YYYYMMDD}.md
287
+ # Brownfield Focus:
288
+ # - Regression probability scoring
289
+ # - Affected downstream systems
290
+ # - Data migration risks
291
+ # - Rollback complexity
292
+
293
+ # 2. TEST DESIGN (After risk assessment)
294
+ @qa *design {brownfield-story}
295
+ # Creates: Regression test strategy + new feature tests
296
+ # Output: docs/qa/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md
297
+ # Brownfield Focus:
298
+ # - Existing functionality that needs regression tests
299
+ # - Integration test requirements
300
+ # - Performance benchmarks to maintain
301
+ # - Feature flag test scenarios
302
+ ```
303
+
304
+ ##### Stage 2: During Development (Continuous Validation)
305
+
306
+ **Monitor Integration Health While Coding:**
307
+
308
+ ```bash
309
+ # 3. REQUIREMENTS TRACING (Mid-development checkpoint)
310
+ @qa *trace {brownfield-story}
311
+ # Maps: New requirements + existing functionality preservation
312
+ # Output: docs/qa/assessments/{epic}.{story}-trace-{YYYYMMDD}.md
313
+ # Brownfield Focus:
314
+ # - Existing features that must still work
315
+ # - New/old feature interactions
316
+ # - API contract preservation
317
+ # - Missing regression test coverage
318
+
319
+ # 4. NFR VALIDATION (Before considering "done")
320
+ @qa *nfr {brownfield-story}
321
+ # Validates: Performance, security, reliability unchanged
322
+ # Output: docs/qa/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md
323
+ # Brownfield Focus:
324
+ # - Performance regression detection
325
+ # - Security implications of integrations
326
+ # - Backward compatibility validation
327
+ # - Load/stress on legacy components
328
+ ```
329
+
330
+ ##### Stage 3: Code Review (Deep Integration Analysis)
331
+
332
+ **Comprehensive Brownfield Review:**
333
+
334
+ ```bash
335
+ # 5. FULL REVIEW (When development complete)
336
+ @qa *review {brownfield-story}
337
+ # Performs: Deep analysis + active refactoring
338
+ # Outputs:
339
+ # - QA Results in story file
340
+ # - Gate file: docs/qa/gates/{epic}.{story}-{slug}.yml
341
+ ```
342
+
343
+ The review specifically analyzes:
344
+
345
+ - **API Breaking Changes**: Validates all existing contracts maintained
346
+ - **Data Migration Safety**: Checks transformation logic and rollback procedures
347
+ - **Performance Regression**: Compares against baseline metrics
348
+ - **Integration Points**: Validates all touchpoints with legacy code
349
+ - **Feature Flag Logic**: Ensures proper toggle behavior
350
+ - **Dependency Impacts**: Maps affected downstream systems
351
+
352
+ ##### Stage 4: Post-Review (Gate Updates)
353
+
354
+ ```bash
355
+ # 6. GATE STATUS UPDATE (After addressing issues)
356
+ @qa *gate {brownfield-story}
357
+ # Updates: Quality gate decision after fixes
358
+ # Output: docs/qa/gates/{epic}.{story}-{slug}.yml
359
+ # Brownfield Considerations:
360
+ # - May WAIVE certain legacy code issues
361
+ # - Documents technical debt acceptance
362
+ # - Tracks migration progress
363
+ ```
364
+
365
+ #### Brownfield-Specific Risk Scoring
366
+
367
+ The Test Architect uses enhanced risk scoring for brownfield:
368
+
369
+ | **Risk Category** | **Brownfield Factors** | **Impact on Gate** |
370
+ | ---------------------- | ------------------------------------------ | ------------------- |
371
+ | **Regression Risk** | Number of integration points × Age of code | Score ≥9 = FAIL |
372
+ | **Data Risk** | Migration complexity × Data volume | Score ≥6 = CONCERNS |
373
+ | **Performance Risk** | Current load × Added complexity | Score ≥6 = CONCERNS |
374
+ | **Compatibility Risk** | API consumers × Contract changes | Score ≥9 = FAIL |
375
+
376
+ #### Brownfield Testing Standards
377
+
378
+ Quinn enforces additional standards for brownfield:
379
+
380
+ - **Regression Test Coverage**: Every touched legacy module needs tests
381
+ - **Performance Baselines**: Must maintain or improve current metrics
382
+ - **Rollback Procedures**: Every change needs a rollback plan
383
+ - **Feature Flags**: All risky changes behind toggles
384
+ - **Integration Tests**: Cover all legacy touchpoints
385
+ - **Contract Tests**: Validate API compatibility
386
+ - **Data Validation**: Migration correctness checks
387
+
388
+ #### Quick Reference: Brownfield Test Commands
389
+
390
+ | **Scenario** | **Commands to Run** | **Order** | **Why Critical** |
391
+ | --------------------------------- | ---------------------------------------------------- | ---------- | ----------------------------- |
392
+ | **Adding Feature to Legacy Code** | `*risk` → `*design` → `*trace` → `*review` | Sequential | Map all dependencies first |
393
+ | **API Modification** | `*risk` → `*design` → `*nfr` → `*review` | Sequential | Prevent breaking consumers |
394
+ | **Performance-Critical Change** | `*nfr` early and often → `*review` | Continuous | Catch degradation immediately |
395
+ | **Data Migration** | `*risk` → `*design` → `*trace` → `*review` → `*gate` | Full cycle | Ensure data integrity |
396
+ | **Bug Fix in Complex System** | `*risk` → `*trace` → `*review` | Focused | Prevent side effects |
397
+
398
+ #### Integration with Brownfield Scenarios
399
+
400
+ **Scenario-Specific Guidance:**
401
+
402
+ 1. **Legacy Code Modernization**
403
+ - Start with `*risk` to map all dependencies
404
+ - Use `*design` to plan strangler fig approach
405
+ - Run `*trace` frequently to ensure nothing breaks
406
+ - `*review` with focus on gradual migration
407
+
408
+ 2. **Adding Features to Monolith**
409
+ - `*risk` identifies integration complexity
410
+ - `*design` plans isolation strategies
411
+ - `*nfr` monitors performance impact
412
+ - `*review` validates no monolith degradation
413
+
414
+ 3. **Microservice Extraction**
415
+ - `*risk` maps service boundaries
416
+ - `*trace` ensures functionality preservation
417
+ - `*nfr` validates network overhead acceptable
418
+ - `*gate` documents accepted trade-offs
419
+
420
+ 4. **Database Schema Changes**
421
+ - `*risk` assesses migration complexity
422
+ - `*design` plans backward-compatible approach
423
+ - `*trace` maps all affected queries
424
+ - `*review` validates migration safety
264
425
 
265
426
  ### 5. Communicate Changes
266
427
 
@@ -277,29 +438,63 @@ Document:
277
438
 
278
439
  1. Document existing system
279
440
  2. Create brownfield PRD focusing on integration
280
- 3. Architecture emphasizes compatibility
281
- 4. Stories include integration tasks
441
+ 3. **Test Architect Early Involvement**:
442
+ - Run `@qa *risk` on draft stories to identify integration risks
443
+ - Use `@qa *design` to plan regression test strategy
444
+ 4. Architecture emphasizes compatibility
445
+ 5. Stories include integration tasks with test requirements
446
+ 6. **During Development**:
447
+ - Developer runs `@qa *trace` to verify coverage
448
+ - Use `@qa *nfr` to monitor performance impact
449
+ 7. **Review Stage**: `@qa *review` validates integration safety
282
450
 
283
451
  ### Scenario 2: Modernizing Legacy Code
284
452
 
285
453
  1. Extensive documentation phase
286
454
  2. PRD includes migration strategy
287
- 3. Architecture plans gradual transition
288
- 4. Stories follow strangler fig pattern
455
+ 3. **Test Architect Strategy Planning**:
456
+ - `@qa *risk` assesses modernization complexity
457
+ - `@qa *design` plans parallel testing approach
458
+ 4. Architecture plans gradual transition (strangler fig pattern)
459
+ 5. Stories follow incremental modernization with:
460
+ - Regression tests for untouched legacy code
461
+ - Integration tests for new/old boundaries
462
+ - Performance benchmarks at each stage
463
+ 6. **Continuous Validation**: Run `@qa *trace` after each increment
464
+ 7. **Gate Management**: Use `@qa *gate` to track technical debt acceptance
289
465
 
290
466
  ### Scenario 3: Bug Fix in Complex System
291
467
 
292
468
  1. Document relevant subsystems
293
469
  2. Use `create-brownfield-story` for focused fix
294
- 3. Include regression test requirements
295
- 4. QA validates no side effects
470
+ 3. **Test Architect Risk Assessment**: Run `@qa *risk` to identify side effect potential
471
+ 4. Include regression test requirements from `@qa *design` output
472
+ 5. **During Fix**: Use `@qa *trace` to map affected functionality
473
+ 6. **Before Commit**: Run `@qa *review` for comprehensive validation
474
+ 7. Test Architect validates no side effects using:
475
+ - Risk profiling for side effect analysis (probability × impact scoring)
476
+ - Trace matrix to ensure fix doesn't break related features
477
+ - NFR assessment to verify performance/security unchanged
478
+ - Gate decision documents fix safety
296
479
 
297
480
  ### Scenario 4: API Integration
298
481
 
299
482
  1. Document existing API patterns
300
483
  2. PRD defines integration requirements
301
- 3. Architecture ensures consistent patterns
302
- 4. Stories include API documentation updates
484
+ 3. **Test Architect Contract Analysis**:
485
+ - `@qa *risk` identifies breaking change potential
486
+ - `@qa *design` creates contract test strategy
487
+ 4. Architecture ensures consistent patterns
488
+ 5. **API Testing Focus**:
489
+ - Contract tests for backward compatibility
490
+ - Integration tests for new endpoints
491
+ - Performance tests for added load
492
+ 6. Stories include API documentation updates
493
+ 7. **Validation Checkpoints**:
494
+ - `@qa *trace` maps all API consumers
495
+ - `@qa *nfr` validates response times
496
+ - `@qa *review` ensures no breaking changes
497
+ 8. **Gate Decision**: Document any accepted breaking changes with migration path
303
498
 
304
499
  ## Troubleshooting
305
500
 
@@ -325,19 +520,37 @@ Document:
325
520
 
326
521
  ```bash
327
522
  # Document existing project
328
- @architect → *document-project
523
+ @architect *document-project
329
524
 
330
525
  # Create enhancement PRD
331
- @pm → *create-brownfield-prd
526
+ @pm *create-brownfield-prd
332
527
 
333
528
  # Create architecture with integration focus
334
- @architect → *create-brownfield-architecture
529
+ @architect *create-brownfield-architecture
335
530
 
336
531
  # Quick epic creation
337
- @pm → *create-brownfield-epic
532
+ @pm *create-brownfield-epic
338
533
 
339
534
  # Single story creation
340
- @pm → *create-brownfield-story
535
+ @pm *create-brownfield-story
536
+ ```
537
+
538
+ ### Test Architect Commands for Brownfield
539
+
540
+ Note: Short forms shown below. Full commands: `*risk-profile`, `*test-design`, `*nfr-assess`, `*trace-requirements`
541
+
542
+ ```bash
543
+ # BEFORE DEVELOPMENT (Planning)
544
+ @qa *risk {story} # Assess regression & integration risks
545
+ @qa *design {story} # Plan regression + new feature tests
546
+
547
+ # DURING DEVELOPMENT (Validation)
548
+ @qa *trace {story} # Verify coverage of old + new
549
+ @qa *nfr {story} # Check performance degradation
550
+
551
+ # AFTER DEVELOPMENT (Review)
552
+ @qa *review {story} # Deep integration analysis
553
+ @qa *gate {story} # Update quality decision
341
554
  ```
342
555
 
343
556
  ### Decision Tree
@@ -352,13 +565,33 @@ Do you have a large codebase or monorepo?
352
565
 
353
566
  Is this a major enhancement affecting multiple systems?
354
567
  ├─ Yes → Full Brownfield Workflow
568
+ │ └─ ALWAYS run Test Architect *risk + *design first
355
569
  └─ No → Is this more than a simple bug fix?
356
- ├─ Yes → brownfield-create-epic
357
- └─ No → brownfield-create-story
570
+ ├─ Yes → *create-brownfield-epic
571
+ │ └─ Run Test Architect *risk for integration points
572
+ └─ No → *create-brownfield-story
573
+ └─ Still run *risk if touching critical paths
574
+
575
+ Does the change touch legacy code?
576
+ ├─ Yes → Test Architect is MANDATORY
577
+ │ ├─ *risk → Identify regression potential
578
+ │ ├─ *design → Plan test coverage
579
+ │ └─ *review → Validate no breakage
580
+ └─ No → Test Architect is RECOMMENDED
581
+ └─ *review → Ensure quality standards
358
582
  ```
359
583
 
360
584
  ## Conclusion
361
585
 
362
- Brownfield development with BMad-Method provides structure and safety when modifying existing systems. The key is providing comprehensive context through documentation, using specialized templates that consider integration requirements, and following workflows that respect existing constraints while enabling progress.
586
+ Brownfield development with BMad Method provides structure and safety when modifying existing systems. The Test Architect becomes your critical safety net, using risk assessment, regression testing, and continuous validation to ensure new changes don't destabilize existing functionality.
587
+
588
+ **The Brownfield Success Formula:**
589
+
590
+ 1. **Document First** - Understand what exists
591
+ 2. **Assess Risk Early** - Use Test Architect `*risk` before coding
592
+ 3. **Plan Test Strategy** - Design regression + new feature tests
593
+ 4. **Validate Continuously** - Check integration health during development
594
+ 5. **Review Comprehensively** - Deep analysis before committing
595
+ 6. **Gate Decisively** - Document quality decisions
363
596
 
364
- Remember: **Document First, Plan Carefully, Integrate Safely**
597
+ Remember: **In brownfield, the Test Architect isn't optional - it's your insurance policy against breaking production.**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bmad-method",
3
- "version": "4.37.0",
3
+ "version": "5.0.0-beta.1",
4
4
  "description": "Breakthrough Method of Agile AI-driven Development",
5
5
  "main": "tools/cli.js",
6
6
  "bin": {
@@ -4,8 +4,8 @@ const { program } = require('commander');
4
4
  const path = require('path');
5
5
  const fs = require('fs').promises;
6
6
  const yaml = require('js-yaml');
7
- const chalk = require('chalk');
8
- const inquirer = require('inquirer');
7
+ const chalk = require('chalk').default || require('chalk');
8
+ const inquirer = require('inquirer').default || require('inquirer');
9
9
  const semver = require('semver');
10
10
  const https = require('https');
11
11
 
@@ -45,7 +45,7 @@ program
45
45
  .option('-f, --full', 'Install complete BMad Method')
46
46
  .option('-x, --expansion-only', 'Install only expansion packs (no bmad-core)')
47
47
  .option('-d, --directory <path>', 'Installation directory')
48
- .option('-i, --ide <ide...>', 'Configure for specific IDE(s) - can specify multiple (cursor, claude-code, windsurf, trae, roo, kilo, cline, gemini, qwen-code, github-copilot, other)')
48
+ .option('-i, --ide <ide...>', 'Configure for specific IDE(s) - can specify multiple (cursor, claude-code, windsurf, trae, roo, kilo, cline, gemini, qwen-code, github-copilot, crush, other)')
49
49
  .option('-e, --expansion-packs <packs...>', 'Install specific expansion packs (can specify multiple)')
50
50
  .action(async (options) => {
51
51
  try {
@@ -183,17 +183,17 @@ program
183
183
  });
184
184
 
185
185
  async function promptInstallation() {
186
-
186
+
187
187
  // Display ASCII logo
188
188
  console.log(chalk.bold.cyan(`
189
- ██████╗ ███╗ ███╗ █████╗ ██████╗ ███╗ ███╗███████╗████████╗██╗ ██╗ ██████╗ ██████╗
189
+ ██████╗ ███╗ ███╗ █████╗ ██████╗ ███╗ ███╗███████╗████████╗██╗ ██╗ ██████╗ ██████╗
190
190
  ██╔══██╗████╗ ████║██╔══██╗██╔══██╗ ████╗ ████║██╔════╝╚══██╔══╝██║ ██║██╔═══██╗██╔══██╗
191
191
  ██████╔╝██╔████╔██║███████║██║ ██║█████╗██╔████╔██║█████╗ ██║ ███████║██║ ██║██║ ██║
192
192
  ██╔══██╗██║╚██╔╝██║██╔══██║██║ ██║╚════╝██║╚██╔╝██║██╔══╝ ██║ ██╔══██║██║ ██║██║ ██║
193
193
  ██████╔╝██║ ╚═╝ ██║██║ ██║██████╔╝ ██║ ╚═╝ ██║███████╗ ██║ ██║ ██║╚██████╔╝██████╔╝
194
- ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝
194
+ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝
195
195
  `));
196
-
196
+
197
197
  console.log(chalk.bold.magenta('🚀 Universal AI Agent Framework for Any Domain'));
198
198
  console.log(chalk.bold.blue(`✨ Installer v${version}\n`));
199
199
 
@@ -218,63 +218,63 @@ async function promptInstallation() {
218
218
  // Detect existing installations
219
219
  const installDir = path.resolve(directory);
220
220
  const state = await installer.detectInstallationState(installDir);
221
-
221
+
222
222
  // Check for existing expansion packs
223
223
  const existingExpansionPacks = state.expansionPacks || {};
224
-
224
+
225
225
  // Get available expansion packs
226
226
  const availableExpansionPacks = await installer.getAvailableExpansionPacks();
227
-
227
+
228
228
  // Build choices list
229
229
  const choices = [];
230
-
230
+
231
231
  // Load core config to get short-title
232
232
  const coreConfigPath = path.join(__dirname, '..', '..', '..', 'bmad-core', 'core-config.yaml');
233
233
  const coreConfig = yaml.load(await fs.readFile(coreConfigPath, 'utf8'));
234
234
  const coreShortTitle = coreConfig['short-title'] || 'BMad Agile Core System';
235
-
235
+
236
236
  // Add BMad core option
237
237
  let bmadOptionText;
238
238
  if (state.type === 'v4_existing') {
239
239
  const currentVersion = state.manifest?.version || 'unknown';
240
240
  const newVersion = version; // Always use package.json version
241
- const versionInfo = currentVersion === newVersion
241
+ const versionInfo = currentVersion === newVersion
242
242
  ? `(v${currentVersion} - reinstall)`
243
243
  : `(v${currentVersion} → v${newVersion})`;
244
244
  bmadOptionText = `Update ${coreShortTitle} ${versionInfo} .bmad-core`;
245
245
  } else {
246
246
  bmadOptionText = `${coreShortTitle} (v${version}) .bmad-core`;
247
247
  }
248
-
248
+
249
249
  choices.push({
250
250
  name: bmadOptionText,
251
251
  value: 'bmad-core',
252
252
  checked: true
253
253
  });
254
-
254
+
255
255
  // Add expansion pack options
256
256
  for (const pack of availableExpansionPacks) {
257
257
  const existing = existingExpansionPacks[pack.id];
258
258
  let packOptionText;
259
-
259
+
260
260
  if (existing) {
261
261
  const currentVersion = existing.manifest?.version || 'unknown';
262
262
  const newVersion = pack.version;
263
- const versionInfo = currentVersion === newVersion
263
+ const versionInfo = currentVersion === newVersion
264
264
  ? `(v${currentVersion} - reinstall)`
265
265
  : `(v${currentVersion} → v${newVersion})`;
266
266
  packOptionText = `Update ${pack.shortTitle} ${versionInfo} .${pack.id}`;
267
267
  } else {
268
268
  packOptionText = `${pack.shortTitle} (v${pack.version}) .${pack.id}`;
269
269
  }
270
-
270
+
271
271
  choices.push({
272
272
  name: packOptionText,
273
273
  value: pack.id,
274
274
  checked: false
275
275
  });
276
276
  }
277
-
277
+
278
278
  // Ask what to install
279
279
  const { selectedItems } = await inquirer.prompt([
280
280
  {
@@ -290,7 +290,7 @@ async function promptInstallation() {
290
290
  }
291
291
  }
292
292
  ]);
293
-
293
+
294
294
  // Process selections
295
295
  answers.installType = selectedItems.includes('bmad-core') ? 'full' : 'expansion-only';
296
296
  answers.expansionPacks = selectedItems.filter(item => item !== 'bmad-core');
@@ -299,7 +299,7 @@ async function promptInstallation() {
299
299
  if (selectedItems.includes('bmad-core')) {
300
300
  console.log(chalk.cyan('\n📋 Document Organization Settings'));
301
301
  console.log(chalk.dim('Configure how your project documentation should be organized.\n'));
302
-
302
+
303
303
  // Ask about PRD sharding
304
304
  const { prdSharded } = await inquirer.prompt([
305
305
  {
@@ -310,7 +310,7 @@ async function promptInstallation() {
310
310
  }
311
311
  ]);
312
312
  answers.prdSharded = prdSharded;
313
-
313
+
314
314
  // Ask about architecture sharding
315
315
  const { architectureSharded } = await inquirer.prompt([
316
316
  {
@@ -321,7 +321,7 @@ async function promptInstallation() {
321
321
  }
322
322
  ]);
323
323
  answers.architectureSharded = architectureSharded;
324
-
324
+
325
325
  // Show warning if architecture sharding is disabled
326
326
  if (!architectureSharded) {
327
327
  console.log(chalk.yellow.bold('\n⚠️ IMPORTANT: Architecture Sharding Disabled'));
@@ -330,7 +330,7 @@ async function promptInstallation() {
330
330
  console.log(chalk.yellow('as these are used by the dev agent at runtime.'));
331
331
  console.log(chalk.yellow('\nAlternatively, you can remove these files from the devLoadAlwaysFiles list'));
332
332
  console.log(chalk.yellow('in your core-config.yaml after installation.'));
333
-
333
+
334
334
  const { acknowledge } = await inquirer.prompt([
335
335
  {
336
336
  type: 'confirm',
@@ -339,7 +339,7 @@ async function promptInstallation() {
339
339
  default: false
340
340
  }
341
341
  ]);
342
-
342
+
343
343
  if (!acknowledge) {
344
344
  console.log(chalk.red('Installation cancelled.'));
345
345
  process.exit(0);
@@ -350,14 +350,14 @@ async function promptInstallation() {
350
350
  // Ask for IDE configuration
351
351
  let ides = [];
352
352
  let ideSelectionComplete = false;
353
-
353
+
354
354
  while (!ideSelectionComplete) {
355
355
  console.log(chalk.cyan('\n🛠️ IDE Configuration'));
356
356
  console.log(chalk.bold.yellow.bgRed(' ⚠️ IMPORTANT: This is a MULTISELECT! Use SPACEBAR to toggle each IDE! '));
357
357
  console.log(chalk.bold.magenta('🔸 Use arrow keys to navigate'));
358
358
  console.log(chalk.bold.magenta('🔸 Use SPACEBAR to select/deselect IDEs'));
359
359
  console.log(chalk.bold.magenta('🔸 Press ENTER when finished selecting\n'));
360
-
360
+
361
361
  const ideResponse = await inquirer.prompt([
362
362
  {
363
363
  type: 'checkbox',
@@ -373,11 +373,12 @@ async function promptInstallation() {
373
373
  { name: 'Cline', value: 'cline' },
374
374
  { name: 'Gemini CLI', value: 'gemini' },
375
375
  { name: 'Qwen Code', value: 'qwen-code' },
376
+ { name: 'Crush', value: 'crush' },
376
377
  { name: 'Github Copilot', value: 'github-copilot' }
377
378
  ]
378
379
  }
379
380
  ]);
380
-
381
+
381
382
  ides = ideResponse.ides;
382
383
 
383
384
  // Confirm no IDE selection if none selected
@@ -390,13 +391,13 @@ async function promptInstallation() {
390
391
  default: false
391
392
  }
392
393
  ]);
393
-
394
+
394
395
  if (!confirmNoIde) {
395
396
  console.log(chalk.bold.red('\n🔄 Returning to IDE selection. Remember to use SPACEBAR to select IDEs!\n'));
396
397
  continue; // Go back to IDE selection only
397
398
  }
398
399
  }
399
-
400
+
400
401
  ideSelectionComplete = true;
401
402
  }
402
403
 
@@ -407,7 +408,7 @@ async function promptInstallation() {
407
408
  if (ides.includes('github-copilot')) {
408
409
  console.log(chalk.cyan('\n🔧 GitHub Copilot Configuration'));
409
410
  console.log(chalk.dim('BMad works best with specific VS Code settings for optimal agent experience.\n'));
410
-
411
+
411
412
  const { configChoice } = await inquirer.prompt([
412
413
  {
413
414
  type: 'list',
@@ -430,7 +431,7 @@ async function promptInstallation() {
430
431
  default: 'defaults'
431
432
  }
432
433
  ]);
433
-
434
+
434
435
  answers.githubCopilotConfig = { configChoice };
435
436
  }
436
437
 
@@ -28,6 +28,16 @@ ide-configurations:
28
28
  # To use BMad agents in Claude Code:
29
29
  # 1. Type /agent-name (e.g., "/dev", "/pm", "/architect")
30
30
  # 2. Claude will switch to that agent's persona
31
+ crush:
32
+ name: Crush
33
+ rule-dir: .crush/commands/BMad/
34
+ format: multi-file
35
+ command-suffix: .md
36
+ instructions: |
37
+ # To use BMad agents in Crush:
38
+ # 1. Press CTRL + P and press TAB
39
+ # 2. Select agent or task
40
+ # 3. Crush will switch to that agent's persona / task
31
41
  windsurf:
32
42
  name: Windsurf
33
43
  rule-dir: .windsurf/rules/
@@ -110,4 +120,4 @@ ide-configurations:
110
120
  # 1. The installer creates a .qwen/bmad-method/ directory in your project.
111
121
  # 2. It concatenates all agent files into a single QWEN.md file.
112
122
  # 3. Simply mention the agent in your prompt (e.g., "As *dev, ...").
113
- # 4. The Qwen Code CLI will automatically have the context for that agent.
123
+ # 4. The Qwen Code CLI will automatically have the context for that agent.
@@ -2,7 +2,7 @@ const fs = require("fs-extra");
2
2
  const path = require("path");
3
3
  const crypto = require("crypto");
4
4
  const yaml = require("js-yaml");
5
- const chalk = require("chalk");
5
+ const chalk = require("chalk").default || require("chalk");
6
6
  const { createReadStream, createWriteStream, promises: fsPromises } = require('fs');
7
7
  const { pipeline } = require('stream/promises');
8
8
  const resourceLocator = require('./resource-locator');
@@ -6,7 +6,7 @@
6
6
  const path = require("path");
7
7
  const fs = require("fs-extra");
8
8
  const yaml = require("js-yaml");
9
- const chalk = require("chalk");
9
+ const chalk = require("chalk").default || require("chalk");
10
10
  const fileManager = require("./file-manager");
11
11
  const resourceLocator = require("./resource-locator");
12
12
  const { extractYamlFromAgent } = require("../../lib/yaml-utils");