mirror of
https://github.com/bmad-code-org/BMAD-METHOD.git
synced 2026-01-30 04:32:02 +00:00
Compare commits
6 Commits
e99a02f409
...
6.0.0-Beta
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
98b97cf4fd | ||
|
|
bb29d5067b | ||
|
|
4f0285a2e8 | ||
|
|
cf80e9b127 | ||
|
|
f01c5cef4d | ||
|
|
98bce75905 |
36
CHANGELOG.md
36
CHANGELOG.md
@@ -1,5 +1,41 @@
|
||||
# Changelog
|
||||
|
||||
## [6.0.0-Beta.4]
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- **Activation steps formatting fix**: Fixed missing opening quote that caused infrequent menu rendering issues
|
||||
- **Custom module installation fix**: Added missing yaml require in manifest.js to fix custom module installation
|
||||
|
||||
---
|
||||
|
||||
## [6.0.0-Beta.3]
|
||||
|
||||
### 🌟 Key Highlights
|
||||
|
||||
1. **SDET Module Replaces TEA**: TEA module removed from core, SDET module added with "automate" workflow for test automation
|
||||
2. **Gemini CLI TOML Support**: IDE integration now supports the TOML config format used by Gemini CLI
|
||||
3. **File System Sprint Status**: Default project_key support for file-system based sprint status tracking
|
||||
|
||||
### 🔧 Features & Improvements
|
||||
|
||||
**Module Changes:**
|
||||
- **TEA Module Moved to External** (#1430, #1443): The TEA module is now external. SDET module added with a single "automate" workflow focused on test automation
|
||||
- **SDET Module**: New module with streamlined test automation capabilities
|
||||
|
||||
**IDE Integration:**
|
||||
- **Gemini CLI TOML Format** (#1431): Previous update accidentally switched Gemini to md instead of toml.
|
||||
|
||||
**Sprint Status:**
|
||||
- **Default project_key** (#1446): File-system based sprint status now uses a default project_key so certain LLMs do not complain
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- **Quick-flow workflow path fix** (#1368): Fixed incorrect workflow_path in bmad-quick-flow/quick-spec steps (step-01, step-02, step-03) - changed from non-existent 'create-tech-spec' to correct 'quick-spec'
|
||||
- **PRD edit flow paths**: Fixed path references in PRD editing workflow
|
||||
- **Agent file handling**: Changes to prevent double agent files and use .agent.md file extensions
|
||||
- **README link fix**: Corrected broken documentation links
|
||||
|
||||
## [6.0.0-Beta.2]
|
||||
|
||||
- Fix installer so commands match what is installed, centralize most ide into a central file instead of separate files for each ide.
|
||||
|
||||
@@ -79,12 +79,12 @@ BMad Method extends with official modules for specialized domains. Modules are a
|
||||
|
||||
BMad provides two testing options to fit your needs:
|
||||
|
||||
### Quinn (SDET) - Built-in
|
||||
### Quinn (QA) - Built-in
|
||||
|
||||
**Quick test automation for rapid coverage**
|
||||
|
||||
- ✅ **Always available** in BMM module (no separate install)
|
||||
- ✅ **Simple**: One workflow (`QA` - Quick Automate)
|
||||
- ✅ **Simple**: One workflow (`QA` - Automate)
|
||||
- ✅ **Beginner-friendly**: Standard test framework patterns
|
||||
- ✅ **Fast**: Generate tests and ship
|
||||
|
||||
|
||||
@@ -53,10 +53,13 @@ Build it, one story at a time.
|
||||
| `sprint-planning` | Initialize tracking (once per project) | `sprint-status.yaml` |
|
||||
| `create-story` | Prepare next story for implementation | `story-[slug].md` |
|
||||
| `dev-story` | Implement the story | Working code + tests |
|
||||
| `automate` (QA) | Generate tests for existing features | Test suite |
|
||||
| `code-review` | Validate implementation quality | Approved or changes requested |
|
||||
| `correct-course` | Handle significant mid-sprint changes | Updated plan or re-routing |
|
||||
| `retrospective` | Review after epic completion | Lessons learned |
|
||||
|
||||
**Quinn (QA Agent):** Built-in QA agent for test automation. Trigger with `QA` or `bmad-bmm-automate`. Generates standard API and E2E tests using your project's test framework. Beginner-friendly, no configuration needed. For advanced test strategy, install [Test Architect (TEA)](https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/) module.
|
||||
|
||||
## Quick Flow (Parallel Track)
|
||||
|
||||
Skip phases 1-3 for small, well-understood work.
|
||||
|
||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "bmad-method",
|
||||
"version": "6.0.0-Beta.2",
|
||||
"version": "6.0.0-Beta.4",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "bmad-method",
|
||||
"version": "6.0.0-Beta.2",
|
||||
"version": "6.0.0-Beta.4",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@clack/prompts": "^0.11.0",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/package.json",
|
||||
"name": "bmad-method",
|
||||
"version": "6.0.0-Beta.2",
|
||||
"version": "6.0.0-Beta.4",
|
||||
"description": "Breakthrough Method of Agile AI-driven Development",
|
||||
"keywords": [
|
||||
"agile",
|
||||
|
||||
@@ -2,13 +2,13 @@ agent:
|
||||
metadata:
|
||||
id: "_bmad/bmm/agents/quinn"
|
||||
name: Quinn
|
||||
title: Software Development Engineer in Test (SDET)
|
||||
title: QA Engineer
|
||||
icon: 🧪
|
||||
module: bmm
|
||||
hasSidecar: false
|
||||
|
||||
persona:
|
||||
role: Software Development Engineer in Test (SDET)
|
||||
role: QA Engineer
|
||||
identity: |
|
||||
Pragmatic test automation engineer focused on rapid test coverage.
|
||||
Specializes in generating tests quickly for existing features using standard test framework patterns.
|
||||
@@ -17,12 +17,7 @@ agent:
|
||||
Practical and straightforward. Gets tests written fast without overthinking.
|
||||
'Ship it and iterate' mentality. Focuses on coverage first, optimization later.
|
||||
principles:
|
||||
- Fast test generation over perfect architecture
|
||||
- Coverage first, optimization later
|
||||
- Standard test framework patterns (no advanced utilities required)
|
||||
- Works well for beginners and small teams
|
||||
- Simpler decision-making than full test architecture
|
||||
- Happy path + critical edge cases = good enough
|
||||
- Generate API and E2E tests for implemented code
|
||||
- Tests should pass on first run
|
||||
|
||||
critical_actions:
|
||||
@@ -33,13 +28,13 @@ agent:
|
||||
|
||||
menu:
|
||||
- trigger: QA
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/sdet/automate/workflow.yaml"
|
||||
description: "[QA] Quick Automate - Generate tests for existing features (simplified)"
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/qa/automate/workflow.yaml"
|
||||
description: "[QA] Automate - Generate tests for existing features (simplified)"
|
||||
|
||||
prompts:
|
||||
- id: welcome
|
||||
content: |
|
||||
👋 Hi, I'm Quinn - your Software Development Engineer in Test (SDET).
|
||||
👋 Hi, I'm Quinn - your QA Engineer.
|
||||
|
||||
I help you generate tests quickly using standard test framework patterns.
|
||||
|
||||
@@ -59,4 +54,4 @@ agent:
|
||||
For comprehensive test strategy, risk-based planning, quality gates, and enterprise features,
|
||||
install the Test Architect (TEA) module: https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/
|
||||
|
||||
Ready to generate some tests? Just say `QA` or `bmad-bmm-quick-automate`!
|
||||
Ready to generate some tests? Just say `QA` or `bmad-bmm-automate`!
|
||||
|
||||
@@ -29,4 +29,4 @@ bmm,4-implementation,Validate Story,VS,35,_bmad/bmm/workflows/4-implementation/c
|
||||
bmm,4-implementation,Dev Story,DS,40,_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml,bmad-bmm-dev-story,true,dev,Create Mode,"Story cycle: Execute story implementation tasks and tests then CR then back to DS if fixes needed",,,
|
||||
bmm,4-implementation,Code Review,CR,50,_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml,bmad-bmm-code-review,false,dev,Create Mode,"Story cycle: If issues back to DS if approved then next CS or ER if epic complete",,,
|
||||
bmm,4-implementation,Retrospective,ER,60,_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml,bmad-bmm-retrospective,false,sm,Create Mode,"Optional at epic end: Review completed work lessons learned and next epic or if major issues consider CC",implementation_artifacts,retrospective,
|
||||
bmm,4-implementation,Quick Automate,QA,45,_bmad/bmm/workflows/sdet/automate/workflow.yaml,bmad-bmm-quick-automate,false,quinn,Create Mode,"Generate tests quickly for existing features (not code review) using standard test patterns",implementation_artifacts,"test suite",
|
||||
bmm,4-implementation,Automate,QA,45,_bmad/bmm/workflows/qa/automate/workflow.yaml,bmad-bmm-automate,false,quinn,Create Mode,"Generate automated API and E2E tests for implemented code using the project's existing test framework (detects Playwright, Jest, Vitest, etc). Use after implementation to add test coverage. NOT for code review or story validation - use CR for that.",implementation_artifacts,"test suite",
|
||||
|
||||
|
Can't render this file because it has a wrong number of fields in line 7.
|
@@ -18,4 +18,3 @@ name,displayName,title,icon,role,identity,communicationStyle,principles,module,p
|
||||
"lateral-thinker","Edward de Bono","Lateral Thinking Pioneer","🧩","Creator of Creative Thinking Tools","Inventor of lateral thinking and Six Thinking Hats methodology. Master of deliberate creativity through systematic pattern-breaking techniques.","You stand at a crossroads. Choose wisely, adventurer! Presents choices with dice-roll energy, proposes deliberate provocations, breaks patterns methodically.","Logic gets you from A to B. Creativity gets you everywhere else. Use tools to escape habitual thinking patterns.","cis",""
|
||||
"mythic-storyteller","Joseph Campbell","Mythic Storyteller","🌟","Master of the Hero's Journey + Archetypal Wisdom","Scholar who decoded the universal story patterns across all cultures. Expert in mythology, comparative religion, and archetypal narratives.","I sense challenge and reward on the path ahead. Speaks in prophetic mythological metaphors - EVERY story is a hero's journey, references ancient wisdom.","Follow your bliss. All stories share the monomyth. Myths reveal universal human truths. The call to adventure is irresistible.","cis",""
|
||||
"combinatorial-genius","Steve Jobs","Combinatorial Genius","🍎","Master of Intersection Thinking + Taste Curator","Legendary innovator who connected technology with liberal arts. Master at seeing patterns across disciplines and combining them into elegant products.","I'll be back... with results! Talks in reality distortion field mode - insanely great, magical, revolutionary, makes impossible seem inevitable.","Innovation happens at intersections. Taste is about saying NO to 1000 things. Stay hungry stay foolish. Simplicity is sophistication.","cis",""
|
||||
"quinn","Quinn","SDET","🧪","Software Development Engineer in Test","Pragmatic test automation engineer focused on rapid test coverage. Specializes in generating tests quickly for existing features using standard test patterns.","Practical and straightforward. Gets tests written fast without overthinking.","Fast test generation over perfect architecture. Coverage first, optimization later. Standard test patterns. Works well for beginners and small teams.","bmm","_bmad/bmm/agents/quinn.agent.yaml"
|
||||
|
||||
|
@@ -36,7 +36,7 @@
|
||||
|
||||
generated: 05-06-2-2025 21:30
|
||||
project: My Awesome Project
|
||||
project_key: jira-1234
|
||||
project_key: NOKEY
|
||||
tracking_system: file-system
|
||||
story_location: "{story_location}"
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ variables:
|
||||
|
||||
# Tracking system configuration
|
||||
tracking_system: "file-system" # Options: file-system, Future will support other options from config of mcp such as jira, linear, trello
|
||||
project_key: "NOKEY" # Placeholder for tracker integrations; file-system uses a no-op key
|
||||
story_location: "{config_source}:implementation_artifacts" # Relative path for file-system, Future will support URL for Jira/Linear/Trello
|
||||
story_location_absolute: "{config_source}:implementation_artifacts" # Absolute path for file operations
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Quinn Quick Automate - Validation Checklist
|
||||
# Quinn Automate - Validation Checklist
|
||||
|
||||
## Test Generation
|
||||
|
||||
@@ -1,11 +1,23 @@
|
||||
# Quinn SDET - Quick Automate
|
||||
# Quinn QA - Automate
|
||||
|
||||
**Goal**: Generate tests quickly for existing features using standard test patterns.
|
||||
**Goal**: Generate automated API and E2E tests for implemented code.
|
||||
|
||||
**Scope**: This workflow only generates tests. It does **not** perform code review or story validation (use Code Review `CR` for that).
|
||||
**Scope**: This workflow generates tests ONLY. It does **not** perform code review or story validation (use Code Review `CR` for that).
|
||||
|
||||
## Instructions
|
||||
|
||||
### Step 0: Detect Test Framework
|
||||
|
||||
Check project for existing test framework:
|
||||
|
||||
- Look for `package.json` dependencies (playwright, jest, vitest, cypress, etc.)
|
||||
- Check for existing test files to understand patterns
|
||||
- Use whatever test framework the project already has
|
||||
- If no framework exists:
|
||||
- Analyze source code to determine project type (React, Vue, Node API, etc.)
|
||||
- Search online for current recommended test framework for that stack
|
||||
- Suggest the meta framework and use it (or ask user to confirm)
|
||||
|
||||
### Step 1: Identify Features
|
||||
|
||||
Ask user what to test:
|
||||
@@ -1,5 +1,5 @@
|
||||
# Quinn SDET workflow: Quick Automate
|
||||
name: sdet-quick-automate
|
||||
# Quinn QA workflow: Automate
|
||||
name: qa-automate
|
||||
description: "Generate tests quickly for existing features using standard test patterns"
|
||||
author: "BMad"
|
||||
|
||||
@@ -13,7 +13,7 @@ document_output_language: "{config_source}:document_output_language"
|
||||
date: system-generated
|
||||
|
||||
# Workflow components
|
||||
installed_path: "{project-root}/_bmad/bmm/workflows/sdet/automate"
|
||||
installed_path: "{project-root}/_bmad/bmm/workflows/qa/automate"
|
||||
instructions: "{installed_path}/instructions.md"
|
||||
validation: "{installed_path}/checklist.md"
|
||||
template: false
|
||||
@@ -38,10 +38,8 @@ required_tools:
|
||||
|
||||
tags:
|
||||
- qa
|
||||
- sdet
|
||||
- automation
|
||||
- testing
|
||||
- coverage
|
||||
|
||||
execution_hints:
|
||||
interactive: false
|
||||
@@ -8,7 +8,7 @@
|
||||
<step n="3">Remember: user's name is {user_name}</step>
|
||||
{AGENT_SPECIFIC_STEPS}
|
||||
<step n="{MENU_STEP}">Show greeting using {user_name} from config, communicate in {communication_language}, then display numbered list of ALL menu items from menu section</step>
|
||||
<step n={HELP_STEP}">-Let {user_name} know they can type command `/bmad-help` at any time to get advice on what to do next, and that they can combine that with what they need help with <example>`/bmad-help where should I start with an idea I have that does XYZ`</example></step>
|
||||
<step n="{HELP_STEP}">Let {user_name} know they can type command `/bmad-help` at any time to get advice on what to do next, and that they can combine that with what they need help with <example>`/bmad-help where should I start with an idea I have that does XYZ`</example></step>
|
||||
<step n="{HALT_STEP}">STOP and WAIT for user input - do NOT execute menu items automatically - accept number or cmd trigger or fuzzy command match</step>
|
||||
<step n="{INPUT_STEP}">On user input: Number → process menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user to clarify | No match → show "Not recognized"</step>
|
||||
<step n="{EXECUTE_STEP}">When processing a menu item: Check menu-handlers section below - extract any attributes from the selected menu item (workflow, exec, tmpl, data, action, validate-workflow) and follow the corresponding handler instructions</step>
|
||||
@@ -158,30 +158,30 @@ async function runTests() {
|
||||
console.log('');
|
||||
|
||||
// ============================================================
|
||||
// Test 5: SDET Agent Compilation
|
||||
// Test 5: QA Agent Compilation
|
||||
// ============================================================
|
||||
console.log(`${colors.yellow}Test Suite 5: SDET Agent Compilation${colors.reset}\n`);
|
||||
console.log(`${colors.yellow}Test Suite 5: QA Agent Compilation${colors.reset}\n`);
|
||||
|
||||
try {
|
||||
const builder = new YamlXmlBuilder();
|
||||
const sdetAgentPath = path.join(projectRoot, 'src/bmm/agents/quinn.agent.yaml');
|
||||
const tempOutput = path.join(__dirname, 'temp-sdet-agent.md');
|
||||
const qaAgentPath = path.join(projectRoot, 'src/bmm/agents/quinn.agent.yaml');
|
||||
const tempOutput = path.join(__dirname, 'temp-qa-agent.md');
|
||||
|
||||
try {
|
||||
const result = await builder.buildAgent(sdetAgentPath, null, tempOutput, { includeMetadata: true });
|
||||
const result = await builder.buildAgent(qaAgentPath, null, tempOutput, { includeMetadata: true });
|
||||
const compiled = await fs.readFile(tempOutput, 'utf8');
|
||||
|
||||
assert(compiled.includes('Software Development Engineer in Test'), 'SDET agent compilation includes agent title');
|
||||
assert(compiled.includes('QA Engineer'), 'QA agent compilation includes agent title');
|
||||
|
||||
assert(compiled.includes('sdet/automate'), 'SDET agent menu includes automate workflow');
|
||||
assert(compiled.includes('qa/automate'), 'QA agent menu includes automate workflow');
|
||||
|
||||
// Cleanup
|
||||
await fs.remove(tempOutput);
|
||||
} catch (error) {
|
||||
assert(false, 'SDET agent compiles successfully', error.message);
|
||||
assert(false, 'QA agent compiles successfully', error.message);
|
||||
}
|
||||
} catch (error) {
|
||||
assert(false, 'SDET compilation test setup', error.message);
|
||||
assert(false, 'QA compilation test setup', error.message);
|
||||
}
|
||||
|
||||
console.log('');
|
||||
|
||||
@@ -835,6 +835,7 @@ class Manifest {
|
||||
*/
|
||||
async getModuleVersionInfo(moduleName, bmadDir, moduleSourcePath = null) {
|
||||
const os = require('node:os');
|
||||
const yaml = require('yaml');
|
||||
|
||||
// Built-in modules use BMad version (only core and bmm are in BMAD-METHOD repo)
|
||||
if (['core', 'bmm'].includes(moduleName)) {
|
||||
|
||||
Reference in New Issue
Block a user