bmad-method-test-architecture-enterprise 1.7.1 → 1.7.2

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.
package/README.md CHANGED
@@ -147,8 +147,8 @@ TEA variables are defined in `src/module.yaml` and prompted during install:
147
147
 
148
148
  - `test_artifacts` — base output folder for test artifacts
149
149
  - `tea_use_playwright_utils` — enable Playwright Utils integration (boolean)
150
- - `tea_use_pactjs_utils` — enable Pact.js Utils integration for contract testing (boolean)
151
- - `tea_pact_mcp` — SmartBear MCP for PactFlow/Broker interaction: mcp, none (string)
150
+ - `tea_use_pactjs_utils` — enable Pact.js Utils integration for contract testing when your project explicitly uses Pact (boolean)
151
+ - `tea_pact_mcp` — SmartBear MCP for PactFlow/Broker interaction when broker integration is needed: mcp, none (string)
152
152
  - `tea_browser_automation` — browser automation mode: auto, cli, mcp, none (string)
153
153
  - `test_framework` — detected or configured test framework (Playwright, Cypress, Jest, Vitest, pytest, JUnit, Go test, dotnet test, RSpec)
154
154
  - `test_stack_type` — detected or configured stack type (frontend, backend, fullstack)
@@ -188,6 +188,16 @@ src/
188
188
  └── knowledge/
189
189
  ```
190
190
 
191
+ ## Extending TEA
192
+
193
+ Custom workflows are still compatible with TEA, but they are no longer implicitly absorbed into TEA core. The supported path is:
194
+
195
+ 1. Package the workflow as custom content or a custom module.
196
+ 2. Attach it to `bmad-tea` using the agent customization flow.
197
+ 3. Reinstall/update BMAD so the new menu item and workflow are registered.
198
+
199
+ See [Extend TEA with Custom Workflows](docs/how-to/customization/extend-tea-with-custom-workflows.md) and the BMAD customization guide at [`BMAD-METHOD/docs/how-to/customize-bmad.md`](https://github.com/bmad-code-org/BMAD-METHOD/blob/main/docs/how-to/customize-bmad.md).
200
+
191
201
  ## Contributing
192
202
 
193
203
  See `CONTRIBUTING.md` for guidelines.
@@ -343,7 +343,7 @@ Production-ready fixtures and utilities that enhance TEA workflows.
343
343
  Production-ready contract testing utilities that reduce raw Pact.js boilerplate and standardize provider verification patterns.
344
344
 
345
345
  - Install: `npm install -D @seontechnologies/pactjs-utils @pact-foundation/pact`
346
- - Config: `tea_use_pactjs_utils: true` (default is `true`)
346
+ - Config: `tea_use_pactjs_utils: true` (default is `false`, opt in only when you want Pact-aware workflows)
347
347
  - Impacts: `framework`, `atdd`, `automate`, `test-design`, `test-review`, `ci`
348
348
  - Utilities include: createProviderState, toJsonMap, setJsonBody, setJsonContent, buildVerifierOptions, buildMessageVerifierOptions, createRequestFilter, noOpRequestFilter, handlePactBrokerUrlAndSelectors, getProviderVersionTags
349
349
  - Supports local monorepo flow (`pactUrls`) and remote broker flow (`PACT_BROKER_BASE_URL`, `PACT_BROKER_TOKEN`)
@@ -386,12 +386,12 @@ Optional MCP integration for design-time broker interaction in contract testing
386
386
 
387
387
  **Configuration** (`_bmad/tea/config.yaml`):
388
388
 
389
- tea_pact_mcp: "mcp" # mcp | none
389
+ tea_pact_mcp: "none" # none | mcp
390
390
 
391
391
  | Mode | What happens |
392
392
  | ------ | ------------------------------------------------------------------------------------------------------------------- |
393
393
  | `mcp` | TEA can use SmartBear MCP tools for provider-state discovery, test review support, can-i-deploy, and matrix checks. |
394
- | `none` | TEA uses CLI/script guidance only for broker interactions. |
394
+ | `none` | Default. TEA skips broker/MCP integration entirely unless you explicitly enable it. |
395
395
 
396
396
  **Setup:**
397
397
 
@@ -0,0 +1,73 @@
1
+ ---
2
+ title: 'Extend TEA with Custom Workflows'
3
+ description: Add your own workflows to bmad-tea without patching TEA core
4
+ ---
5
+
6
+ # Extend TEA with Custom Workflows
7
+
8
+ TEA is a standalone module now. That means custom workflows are still supported, but they are not automatically folded into TEA core during updates.
9
+
10
+ ## The Supported Model
11
+
12
+ Use one of these approaches:
13
+
14
+ 1. Package the workflow as custom content or a custom module.
15
+ 2. Add a menu entry to `bmad-tea` through BMAD agent customization.
16
+ 3. Reinstall or quick-update BMAD so the workflow and menu entry are registered.
17
+
18
+ This keeps your TEA extensions compatible with upstream updates.
19
+
20
+ ## Recommended Approach
21
+
22
+ ### 1. Create the workflow as custom content
23
+
24
+ Use BMad Builder or your own custom module structure to create a workflow that lives outside TEA core.
25
+
26
+ - BMAD supports custom modules during install/update.
27
+ - BMad Builder is the recommended path for creating reusable custom agents and workflows.
28
+
29
+ See:
30
+
31
+ - [How to Customize BMad](https://github.com/bmad-code-org/BMAD-METHOD/blob/main/docs/how-to/customize-bmad.md)
32
+ - [BMad Builder (BMB)](https://github.com/bmad-code-org/bmad-builder)
33
+
34
+ ### 2. Attach the workflow to `bmad-tea`
35
+
36
+ After TEA is installed, use the generated agent customization file for `bmad-tea` under `_bmad/_config/agents/` and append a menu item:
37
+
38
+ ```yaml
39
+ menu:
40
+ - trigger: my-custom-workflow
41
+ workflow: 'my-custom/workflows/my-custom-workflow.yaml'
42
+ description: My custom TEA extension workflow
43
+ ```
44
+
45
+ This keeps the `bmad-tea` chat/menu experience intact while routing to your custom workflow.
46
+
47
+ ### 3. Reinstall or quick-update BMAD
48
+
49
+ Run:
50
+
51
+ ```bash
52
+ npx bmad-method install
53
+ ```
54
+
55
+ Then choose a normal update path so BMAD re-applies the customization and refreshes the workflow registration.
56
+
57
+ ## What Not to Do
58
+
59
+ - Do not patch TEA core files directly if the workflow is project-specific.
60
+ - Do not rely on old embedded-TEA behavior where local workflows appeared to be attached automatically.
61
+ - Do not keep custom workflow logic only in chat instructions. Put it in a real workflow or module so it survives updates.
62
+
63
+ ## When to Use Which Approach
64
+
65
+ - **Project-specific workflow**: add custom content and attach it to `bmad-tea`
66
+ - **Reusable internal workflow**: package it as a custom module
67
+ - **Reusable public workflow**: consider publishing a standalone BMAD module
68
+
69
+ ## Related Docs
70
+
71
+ - [TEA Command Reference](/docs/reference/commands.md)
72
+ - [TEA Configuration Reference](/docs/reference/configuration.md)
73
+ - [How to Customize BMad](https://github.com/bmad-code-org/BMAD-METHOD/blob/main/docs/how-to/customize-bmad.md)
package/docs/index.md CHANGED
@@ -34,7 +34,7 @@ npx bmad-method install
34
34
  Then trigger workflows via chat:
35
35
 
36
36
  ```
37
- tea # Load TEA agent
37
+ bmad-tea # Load TEA agent/menu
38
38
  test-design # Run Test Design workflow
39
39
  ```
40
40
 
@@ -46,6 +46,7 @@ Pick a path:
46
46
  - **TEA Lite**: Start with [Test Automation](/how-to/workflows/run-automate) only (30 minutes)
47
47
  - **Full TEA**: Start with the [TEA Overview](/explanation/tea-overview) for the complete workflow map
48
48
  - **Enterprise**: Choose [Greenfield](/how-to/brownfield/use-tea-for-enterprise) or [Brownfield](/how-to/brownfield/use-tea-with-existing-tests)
49
+ - **Custom Extensions**: See [Extend TEA with Custom Workflows](/how-to/customization/extend-tea-with-custom-workflows)
49
50
 
50
51
  ## Core Workflows
51
52
 
@@ -7,10 +7,13 @@ description: Quick reference for all 9 TEA workflows - inputs, outputs, and link
7
7
 
8
8
  Quick reference for all 9 TEA (Test Engineering Architect) workflows. For detailed step-by-step guides, see the how-to documentation.
9
9
 
10
+ All workflows listed here are current and supported in TEA, including `nfr-assess`.
11
+
10
12
  **Invocation by tool:**
11
13
 
12
14
  - Claude Code / Cursor / Windsurf: use slash commands (for example, `/bmad:tea:automate`)
13
15
  - Codex: use `$` skills from `.agents/skills` (for example, `$bmad-tea-testarch-automate`)
16
+ - Custom TEA extensions: package the workflow as custom content/module and attach it to `bmad-tea` via customization. See [Extend TEA with Custom Workflows](../how-to/customization/extend-tea-with-custom-workflows.md)
14
17
 
15
18
  ## Quick Index
16
19
 
@@ -30,8 +30,8 @@ user_skill_level: intermediate
30
30
  output_folder: _bmad-output
31
31
  test_artifacts: _bmad-output/test-artifacts
32
32
  tea_use_playwright_utils: true
33
- tea_use_pactjs_utils: true
34
- tea_pact_mcp: 'mcp'
33
+ tea_use_pactjs_utils: false
34
+ tea_pact_mcp: 'none'
35
35
  tea_browser_automation: 'auto'
36
36
  tea_execution_mode: 'auto'
37
37
  tea_capability_probe: true
@@ -135,7 +135,7 @@ npm install -D @seontechnologies/playwright-utils
135
135
 
136
136
  ### tea_use_pactjs_utils
137
137
 
138
- Enable Pact.js Utils integration for production-ready contract testing utilities.
138
+ Enable Pact.js Utils integration for production-ready consumer-driven contract testing utilities.
139
139
 
140
140
  **Schema Location:** `src/module.yaml` (TEA module config)
141
141
 
@@ -143,12 +143,12 @@ Enable Pact.js Utils integration for production-ready contract testing utilities
143
143
 
144
144
  **Type:** `boolean`
145
145
 
146
- **Default:** `true`
146
+ **Default:** `false`
147
147
 
148
148
  **Installer Prompt:**
149
149
 
150
150
  ```
151
- Enable Pact.js Utils integration for contract testing?
151
+ Enable Pact.js Utils for consumer-driven contract testing?
152
152
  ```
153
153
 
154
154
  **Purpose:** Enables TEA to:
@@ -168,6 +168,8 @@ Enable Pact.js Utils integration for contract testing?
168
168
  - `test-review` - Uses pactjs-utils provider/review patterns
169
169
  - `ci` - Adds contract-test stage and quality gates
170
170
 
171
+ **Use this when:** your team already practices consumer-driven contract testing or wants TEA to scaffold Pact-aware patterns on purpose. Leave it off for projects that do not use Pact.
172
+
171
173
  **Example (Enable):**
172
174
 
173
175
  ```yaml
@@ -203,14 +205,14 @@ Pact MCP strategy for broker interaction during contract testing workflows.
203
205
 
204
206
  **Type:** `string`
205
207
 
206
- **Default:** `"mcp"`
208
+ **Default:** `"none"`
207
209
 
208
210
  **Options:** `"mcp"` | `"none"`
209
211
 
210
212
  **Installer Prompt:**
211
213
 
212
214
  ```
213
- Enable SmartBear MCP for PactFlow/Pact Broker interaction?
215
+ Enable SmartBear MCP for PactFlow/Pact Broker? Only needed if you already use a broker.
214
216
  ```
215
217
 
216
218
  **Purpose:** Controls whether TEA can use SmartBear MCP tools for:
@@ -226,6 +228,8 @@ Enable SmartBear MCP for PactFlow/Pact Broker interaction?
226
228
  - `test-review` - MCP-assisted pact review context
227
229
  - `ci` - MCP can-i-deploy/matrix guidance references
228
230
 
231
+ **Use this when:** your project already uses PactFlow or Pact Broker and you want TEA to query broker state during review, generation, or gate guidance. Otherwise leave it set to `none`.
232
+
229
233
  **Prerequisites:**
230
234
 
231
235
  ```bash
@@ -960,8 +964,8 @@ project_name: my-project
960
964
  user_skill_level: beginner # or intermediate/expert
961
965
  output_folder: _bmad-output
962
966
  tea_use_playwright_utils: true # Recommended
963
- tea_use_pactjs_utils: true # Recommended - production-ready contract testing utilities
964
- tea_pact_mcp: 'mcp' # Recommended - SmartBear MCP for PactFlow/Broker interaction
967
+ tea_use_pactjs_utils: false # Recommended unless you actively use contract testing
968
+ tea_pact_mcp: 'none' # Recommended unless you already use PactFlow/Broker
965
969
  tea_browser_automation: 'auto' # Recommended
966
970
  tea_execution_mode: 'auto' # Recommended - capability-aware mode selection
967
971
  tea_capability_probe: true # Recommended - fallback safely if mode unsupported
@@ -970,7 +974,7 @@ tea_capability_probe: true # Recommended - fallback safely if mode unsupported
970
974
  **Why recommended:**
971
975
 
972
976
  - Playwright Utils: Production-ready fixtures and utilities
973
- - Pact.js Utils: Optional contract-testing acceleration for backend/fullstack services
977
+ - Pact.js Utils: Leave disabled until the project explicitly needs contract testing
974
978
  - Browser automation (auto): Smart CLI/MCP selection with fallback
975
979
  - Together: The three-part stack (see [Testing as Engineering](/docs/explanation/testing-as-engineering.md))
976
980
 
@@ -1022,8 +1026,8 @@ tea_capability_probe: true
1022
1026
  project_name: monorepo
1023
1027
  output_folder: _bmad-output
1024
1028
  tea_use_playwright_utils: true
1025
- tea_use_pactjs_utils: true
1026
- tea_pact_mcp: 'mcp'
1029
+ tea_use_pactjs_utils: false
1030
+ tea_pact_mcp: 'none'
1027
1031
  tea_execution_mode: 'auto'
1028
1032
  ```
1029
1033
 
@@ -1061,10 +1065,10 @@ planning_artifacts: _bmad-output/planning-artifacts
1061
1065
  implementation_artifacts: _bmad-output/implementation-artifacts
1062
1066
  project_knowledge: docs
1063
1067
 
1064
- # TEA Configuration (Recommended: Enable both for full stack)
1068
+ # TEA Configuration (Recommended baseline)
1065
1069
  tea_use_playwright_utils: true # Recommended - production-ready utilities
1066
- tea_use_pactjs_utils: true # Recommended - production-ready contract testing utilities
1067
- tea_pact_mcp: 'mcp' # Recommended - SmartBear MCP for broker integration
1070
+ tea_use_pactjs_utils: false # Opt in only if your service uses contract testing
1071
+ tea_pact_mcp: 'none' # Opt in only if your service uses PactFlow/Broker
1068
1072
  tea_browser_automation: 'auto' # Recommended - smart CLI/MCP selection
1069
1073
  tea_execution_mode: 'auto' # Recommended - capability-aware team/subagent fallback
1070
1074
  tea_capability_probe: true # Recommended - safe fallback
@@ -1098,6 +1102,24 @@ document_output_language: english
1098
1102
 
1099
1103
  ---
1100
1104
 
1105
+ ### Contract Testing Setup (Opt-In)
1106
+
1107
+ Use this profile only for services that already use Pact or want TEA to scaffold contract-testing patterns on purpose.
1108
+
1109
+ ```yaml
1110
+ tea_use_pactjs_utils: true
1111
+ tea_pact_mcp: 'none' # Use 'mcp' only if you already use PactFlow/Broker
1112
+ ```
1113
+
1114
+ If you also use PactFlow or Pact Broker:
1115
+
1116
+ ```yaml
1117
+ tea_use_pactjs_utils: true
1118
+ tea_pact_mcp: 'mcp'
1119
+ ```
1120
+
1121
+ ---
1122
+
1101
1123
  ## See Also
1102
1124
 
1103
1125
  ### How-To Guides
@@ -204,6 +204,20 @@ If the BMAD installer can run but cannot fetch the Test Architect module from Gi
204
204
  $bmad-tea-testarch-test-design
205
205
  ```
206
206
 
207
+ ### Custom TEA Workflow Does Not Appear
208
+
209
+ **Symptom**: A custom workflow used to be available from TEA, but it no longer appears in the `bmad-tea` menu after updates.
210
+
211
+ **Cause**: TEA is now a standalone module. Custom workflows are not merged into TEA core automatically.
212
+
213
+ **Solution**:
214
+
215
+ 1. Package the workflow as custom content or a custom module instead of editing TEA directly.
216
+ 2. Attach it to `bmad-tea` using the generated agent customization file under `_bmad/_config/agents/`.
217
+ 3. Re-run `npx bmad-method install` so the customization and workflow registration are refreshed.
218
+
219
+ See [Extend TEA with Custom Workflows](../how-to/customization/extend-tea-with-custom-workflows.md).
220
+
207
221
  ---
208
222
 
209
223
  ## Workflow Execution Issues
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "bmad-method-test-architecture-enterprise",
4
- "version": "1.7.1",
4
+ "version": "1.7.2",
5
5
  "description": "Master Test Architect for quality strategy, test automation, and release gates",
6
6
  "keywords": [
7
7
  "bmad",
package/release_notes.md CHANGED
@@ -1,16 +1,11 @@
1
- ## 🚀 What's New in v1.7.1
2
-
3
- ### ✨ New Features
4
- - feat: convert agent to native skill format
1
+ ## 🚀 What's New in v1.7.2
5
2
 
6
3
  ### 🐛 Bug Fixes
7
- - fix: PR comments
8
- - fix: tea agent start
4
+ - fix: tighten framework loading
5
+ - fix: addressed Augment code comment
9
6
 
10
7
  ### 📦 Other Changes
11
- - Merge pull request #56 from bmad-code-org/feature/convert-agents-to-skills
12
- - docs: remove migration
13
- - Merge pull request #57 from bmad-code-org/fix/tea-agent-start
8
+ - Merge pull request #58 from bmad-code-org/fix/tighten-framework-loading
14
9
 
15
10
 
16
11
  ## 📦 Installation
@@ -20,4 +15,4 @@ npx bmad-method install
20
15
  # Select "Test Architect" from module menu
21
16
  ```
22
17
 
23
- **Full Changelog**: https://github.com/bmad-code-org/bmad-method-test-architecture-enterprise/compare/v1.7.0...v1.7.1
18
+ **Full Changelog**: https://github.com/bmad-code-org/bmad-method-test-architecture-enterprise/compare/v1.7.1...v1.7.2
package/src/module.yaml CHANGED
@@ -38,27 +38,27 @@ tea_use_playwright_utils:
38
38
  # ✅ ACTIVELY USED - Pact.js Utils integration for contract testing (referenced in workflows: automate, atdd, framework, test-design, test-review, ci)
39
39
  # CRITICAL: Must be boolean (true/false) not string - workflows check "if config.tea_use_pactjs_utils: true"
40
40
  tea_use_pactjs_utils:
41
- prompt: "Enable Pact.js Utils integration for contract testing?"
42
- default: true
41
+ prompt: "Enable Pact.js Utils for consumer-driven contract testing?"
42
+ default: false
43
43
  result: "{value}"
44
44
  single-select:
45
45
  - value: true
46
- label: "Yes - Use production contract testing utilities"
46
+ label: "Yes - Enable optional contract-testing utilities"
47
47
  - value: false
48
- label: "No - Use raw @pact-foundation/pact patterns"
48
+ label: "No - Skip Pact integration"
49
49
 
50
50
  # ✅ ACTIVELY USED - Pact MCP integration for broker interaction during contract testing
51
51
  # Controls how TEA interacts with PactFlow/Pact Broker during test generation and review
52
52
  # CRITICAL: Must be a string value: "mcp" | "none"
53
53
  tea_pact_mcp:
54
- prompt: "Enable SmartBear MCP for PactFlow/Pact Broker interaction?"
55
- default: "mcp"
54
+ prompt: "Enable SmartBear MCP for PactFlow/Pact Broker? Only needed if you already use a broker."
55
+ default: "none"
56
56
  result: "{value}"
57
57
  single-select:
58
58
  - value: "mcp"
59
- label: "Yes - Use SmartBear MCP for broker queries"
59
+ label: "Yes - Enable optional broker integration"
60
60
  - value: "none"
61
- label: "No - Use CLI scripts only"
61
+ label: "No - No broker/MCP integration"
62
62
 
63
63
  # ✅ ACTIVELY USED - Browser automation strategy for TEA workflows
64
64
  # Controls how TEA interacts with live browsers during test generation
@@ -202,7 +202,8 @@ Read `{config_source}` and use `{knowledgeIndex}` to load fragments based on `co
202
202
 
203
203
  **If Playwright Utils enabled:**
204
204
 
205
- - `overview.md`, `fixtures-composition.md`, `auth-session.md`, `api-request.md`, `burn-in.md`, `network-error-monitor.md`, `data-factories.md`
205
+ - `overview.md`, `fixtures-composition.md`, `auth-session.md`, `api-request.md`, `recurse.md`, `log.md`, `burn-in.md`, `network-error-monitor.md`, `data-factories.md`
206
+ - If `{detected_stack}` is `frontend` or `fullstack`, also load `intercept-network-call.md`
206
207
  - Recommend installing `@seontechnologies/playwright-utils`
207
208
 
208
209
  **If disabled:**
@@ -75,6 +75,16 @@ async function runTests() {
75
75
  assert(moduleYaml.name === 'Test Architect', 'module.yaml has correct name');
76
76
  assert(typeof moduleYaml.description === 'string' && moduleYaml.description.length > 0, 'module.yaml has description');
77
77
  assert(typeof moduleYaml.default_selected === 'boolean', 'module.yaml has boolean default_selected');
78
+ assert(moduleYaml.tea_use_pactjs_utils.default === false, 'module.yaml defaults Pact.js Utils to false');
79
+ assert(moduleYaml.tea_pact_mcp.default === 'none', 'module.yaml defaults Pact MCP to none');
80
+ assert(
81
+ moduleYaml.tea_use_pactjs_utils.prompt.includes('consumer-driven contract testing'),
82
+ 'module.yaml Pact.js Utils prompt explains CDC intent',
83
+ );
84
+ assert(
85
+ moduleYaml.tea_pact_mcp.prompt.includes('Only needed if you already use a broker'),
86
+ 'module.yaml Pact MCP prompt explains broker prerequisite',
87
+ );
78
88
  } catch (error) {
79
89
  assert(false, 'module.yaml loads and validates', error.message);
80
90
  }
@@ -224,6 +234,22 @@ async function runTests() {
224
234
  }
225
235
  }
226
236
 
237
+ const frameworkScaffoldStepPath = path.join(
238
+ projectRoot,
239
+ 'src/workflows/testarch/bmad-testarch-framework/steps-c/step-03-scaffold-framework.md',
240
+ );
241
+ try {
242
+ const frameworkScaffoldStep = await fs.readFile(frameworkScaffoldStepPath, 'utf8');
243
+ assert(frameworkScaffoldStep.includes('recurse.md'), 'framework scaffold step loads recurse.md when Playwright Utils is enabled');
244
+ assert(frameworkScaffoldStep.includes('log.md'), 'framework scaffold step loads log.md when Playwright Utils is enabled');
245
+ assert(
246
+ frameworkScaffoldStep.includes('intercept-network-call.md'),
247
+ 'framework scaffold step conditionally loads intercept-network-call.md',
248
+ );
249
+ } catch (error) {
250
+ assert(false, 'framework scaffold fragment list validates', error.message);
251
+ }
252
+
227
253
  console.log('');
228
254
 
229
255
  // ============================================================