ma-agents 3.5.3 → 3.5.5

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 (82) hide show
  1. package/_bmad-output/implementation-artifacts/21-1-install-time-profile-prompt.md +181 -0
  2. package/_bmad-output/implementation-artifacts/21-10-profile-reconfigure.md +137 -0
  3. package/_bmad-output/implementation-artifacts/21-11-profile-uninstall.md +149 -0
  4. package/_bmad-output/implementation-artifacts/21-2-universal-instruction-block-expansion.md +98 -0
  5. package/_bmad-output/implementation-artifacts/21-3-roomodes-template-bmad-modes.md +106 -0
  6. package/_bmad-output/implementation-artifacts/21-4-agents-md-template-opencode.md +86 -0
  7. package/_bmad-output/implementation-artifacts/21-5-clinerules-template-extension.md +82 -0
  8. package/_bmad-output/implementation-artifacts/21-6-onprem-layered-guardrails.md +112 -0
  9. package/_bmad-output/implementation-artifacts/21-7-bmad-persona-phase-prefix.md +126 -0
  10. package/_bmad-output/implementation-artifacts/21-8-vllm-reference-doc-readme.md +100 -0
  11. package/_bmad-output/implementation-artifacts/21-9-tests-validation.md +97 -0
  12. package/_bmad-output/implementation-artifacts/bug-experimentalwarning-about-commonjs-loading-es-module-during-install.md +57 -0
  13. package/_bmad-output/implementation-artifacts/sprint-status.yaml +43 -1
  14. package/_bmad-output/methodology/BMAD_AI_Development_Training.pptx +0 -0
  15. package/_bmad-output/methodology/version.json +1 -1
  16. package/_bmad-output/planning-artifacts/architecture.md +52 -0
  17. package/_bmad-output/planning-artifacts/epics.md +397 -0
  18. package/_bmad-output/planning-artifacts/prd.md +46 -1
  19. package/bin/cli.js +109 -1
  20. package/docs/BMAD_AI_Development_Training.pptx +0 -0
  21. package/lib/bmad-cache/bmb/_git_preserved/index +0 -0
  22. package/lib/bmad-cache/bmb/_git_preserved/logs/HEAD +1 -1
  23. package/lib/bmad-cache/bmb/_git_preserved/logs/refs/heads/main +1 -1
  24. package/lib/bmad-cache/bmb/_git_preserved/logs/refs/remotes/origin/HEAD +1 -1
  25. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-554778ad4e7254827618ebd2497c3f4bce9054a4.idx +0 -0
  26. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/{pack-4b395d030ca386fc5748f1b670dcf8c0ef41c94c.pack → pack-554778ad4e7254827618ebd2497c3f4bce9054a4.pack} +0 -0
  27. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-554778ad4e7254827618ebd2497c3f4bce9054a4.rev +0 -0
  28. package/lib/bmad-cache/bmb/_git_preserved/packed-refs +1 -1
  29. package/lib/bmad-cache/bmb/_git_preserved/refs/heads/main +1 -1
  30. package/lib/bmad-cache/bmb/_git_preserved/shallow +1 -1
  31. package/lib/bmad-cache/bmb/skills/bmad-module-builder/scripts/tests/test-scaffold-setup-skill.py +7 -0
  32. package/lib/bmad-cache/cache-manifest.json +5 -5
  33. package/lib/bmad-cache/tea/_git_preserved/index +0 -0
  34. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-e75385cd52b693dbb8a3b2afb50058952543b3a2.idx +0 -0
  35. package/lib/bmad-cache/tea/_git_preserved/objects/pack/{pack-c79805bb3fee27fa6d8c612a971af7fc86fc80e1.pack → pack-e75385cd52b693dbb8a3b2afb50058952543b3a2.pack} +0 -0
  36. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-e75385cd52b693dbb8a3b2afb50058952543b3a2.rev +0 -0
  37. package/lib/bmad-cache/tea/_git_preserved/packed-refs +1 -1
  38. package/lib/bmad-cache/tea/_git_preserved/refs/heads/main +1 -1
  39. package/lib/bmad-cache/tea/_git_preserved/refs/tags/v1.10.0 +1 -0
  40. package/lib/bmad-cache/tea/_git_preserved/shallow +1 -1
  41. package/lib/bmad-cache/tea/docs/explanation/tea-overview.md +2 -2
  42. package/lib/bmad-cache/tea/docs/how-to/workflows/run-atdd.md +28 -30
  43. package/lib/bmad-cache/tea/docs/reference/commands.md +4 -4
  44. package/lib/bmad-cache/tea/docs/reference/configuration.md +1 -1
  45. package/lib/bmad-cache/tea/package-lock.json +2 -2
  46. package/lib/bmad-cache/tea/package.json +1 -1
  47. package/lib/bmad-cache/tea/src/module-help.csv +1 -1
  48. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/SKILL.md +1 -1
  49. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/atdd-checklist-template.md +50 -27
  50. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/checklist.md +18 -17
  51. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/instructions.md +1 -1
  52. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-01-preflight-and-context.md +21 -3
  53. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-01b-resume.md +1 -1
  54. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-02-generation-mode.md +1 -1
  55. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-03-test-strategy.md +1 -1
  56. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-04-generate-tests.md +20 -19
  57. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-04a-subagent-api-failing.md +13 -13
  58. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-04b-subagent-e2e-failing.md +13 -13
  59. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-04c-aggregate.md +42 -18
  60. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-05-validate-and-complete.md +12 -3
  61. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/workflow-plan.md +2 -2
  62. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/workflow.md +2 -2
  63. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/workflow.yaml +2 -2
  64. package/lib/bmad.js +25 -4
  65. package/lib/installer.js +2 -1
  66. package/lib/methodology/BMAD_AI_Development_Training.pptx +0 -0
  67. package/lib/methodology/version.json +1 -1
  68. package/lib/profile.js +107 -0
  69. package/lib/warning-filter.js +245 -0
  70. package/package.json +2 -2
  71. package/test/experimental-warning.test.js +314 -0
  72. package/test/fixtures/README.md +74 -0
  73. package/test/fixtures/empty-project/README.md +5 -0
  74. package/test/fixtures/empty-project/package.json +5 -0
  75. package/test/fixtures/onprem-profile-baseline/.gitkeep +2 -0
  76. package/test/fixtures/standard-profile-baseline/.gitkeep +2 -0
  77. package/test/onprem-injection.test.js +48 -0
  78. package/test/profile.test.js +301 -0
  79. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-4b395d030ca386fc5748f1b670dcf8c0ef41c94c.idx +0 -0
  80. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-4b395d030ca386fc5748f1b670dcf8c0ef41c94c.rev +0 -0
  81. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-c79805bb3fee27fa6d8c612a971af7fc86fc80e1.idx +0 -0
  82. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-c79805bb3fee27fa6d8c612a971af7fc86fc80e1.rev +0 -0
@@ -3,6 +3,14 @@ stepsCompleted: []
3
3
  lastStep: ''
4
4
  lastSaved: ''
5
5
  workflowType: 'testarch-atdd'
6
+ storyId: '{story_id}'
7
+ storyKey: '{story_key}'
8
+ storyFile: '{story_file}'
9
+ atddChecklistPath: '{test_artifacts}/atdd-checklist-{story_key}.md'
10
+ generatedTestFiles:
11
+ - '{api_test_file_path}'
12
+ - '{e2e_test_file_path}'
13
+ - '{component_test_file_path}'
6
14
  inputDocuments: []
7
15
  ---
8
16
 
@@ -34,7 +42,19 @@ inputDocuments: []
34
42
 
35
43
  ---
36
44
 
37
- ## Failing Tests Created (RED Phase)
45
+ ## Story Integration Metadata
46
+
47
+ - **Story ID:** `{story_id}`
48
+ - **Story Key:** `{story_key}`
49
+ - **Story File:** `{story_file}`
50
+ - **Checklist Path:** `{test_artifacts}/atdd-checklist-{story_key}.md`
51
+ - **Generated Test Files:** `{e2e_test_file_path}`, `{api_test_file_path}`, `{component_test_file_path}`
52
+
53
+ If this story came from BMM `create-story`, mirror these artifact paths into the story's `Dev Notes` so `dev-story` can discover and activate the red-phase scaffolds.
54
+
55
+ ---
56
+
57
+ ## Red-Phase Test Scaffolds Created
38
58
 
39
59
  ### E2E Tests ({e2e_test_count} tests)
40
60
 
@@ -166,7 +186,7 @@ test('should do something', async ({ {fixtureName} }) => {
166
186
 
167
187
  ## Implementation Checklist
168
188
 
169
- {Map each failing test to concrete implementation tasks that will make it pass}
189
+ {Map each scaffolded test to concrete implementation tasks that will make it pass}
170
190
 
171
191
  ### Test: {test_name_1}
172
192
 
@@ -205,7 +225,7 @@ test('should do something', async ({ {fixtureName} }) => {
205
225
  ## Running Tests
206
226
 
207
227
  ```bash
208
- # Run all failing tests for this story
228
+ # Run all activated tests for this story
209
229
  {test_command_all}
210
230
 
211
231
  # Run specific test file
@@ -229,7 +249,7 @@ test('should do something', async ({ {fixtureName} }) => {
229
249
 
230
250
  **TEA Agent Responsibilities:**
231
251
 
232
- - ✅ All tests written and failing
252
+ - ✅ All tests written as red-phase scaffolds with `test.skip()`
233
253
  - ✅ Fixtures and factories created with auto-cleanup
234
254
  - ✅ Mock requirements documented
235
255
  - ✅ data-testid requirements listed
@@ -237,9 +257,9 @@ test('should do something', async ({ {fixtureName} }) => {
237
257
 
238
258
  **Verification:**
239
259
 
240
- - All tests run and fail as expected
241
- - Failure messages are clear and actionable
242
- - Tests fail due to missing implementation, not test bugs
260
+ - All generated tests are present and marked with `test.skip()`
261
+ - Activation guidance is clear and actionable
262
+ - Any activated test fails due to missing implementation, not test bugs
243
263
 
244
264
  ---
245
265
 
@@ -247,12 +267,13 @@ test('should do something', async ({ {fixtureName} }) => {
247
267
 
248
268
  **DEV Agent Responsibilities:**
249
269
 
250
- 1. **Pick one failing test** from implementation checklist (start with highest priority)
251
- 2. **Read the test** to understand expected behavior
252
- 3. **Implement minimal code** to make that specific test pass
253
- 4. **Run the test** to verify it now passes (green)
254
- 5. **Check off the task** in implementation checklist
255
- 6. **Move to next test** and repeat
270
+ 1. **Pick one scaffolded test** from implementation checklist (start with highest priority)
271
+ 2. **Remove `test.skip()`** for that test and confirm it fails first
272
+ 3. **Read the test** to understand expected behavior
273
+ 4. **Implement minimal code** to make that specific test pass
274
+ 5. **Run the test** to verify it now passes (green)
275
+ 6. **Check off the task** in implementation checklist
276
+ 7. **Move to next test** and repeat
256
277
 
257
278
  **Key Principles:**
258
279
 
@@ -297,14 +318,15 @@ test('should do something', async ({ {fixtureName} }) => {
297
318
 
298
319
  ## Next Steps
299
320
 
300
- 1. **Share this checklist and failing tests** with the dev workflow (manual handoff)
301
- 2. **Review this checklist** with team in standup or planning
302
- 3. **Run failing tests** to confirm RED phase: `{test_command_all}`
321
+ 1. **Link this checklist and generated tests** into the story file `Dev Notes` / `ATDD Artifacts` section when a writable story file is available
322
+ 2. **If the story file cannot be updated automatically**, share this checklist and generated tests with the dev workflow as a manual handoff
323
+ 3. **Review this checklist** with team in standup or planning
303
324
  4. **Begin implementation** using implementation checklist as guide
304
- 5. **Work one test at a time** (red green for each)
305
- 6. **Share progress** in daily standup
306
- 7. **When all tests pass**, refactor code for quality
307
- 8. **When refactoring complete**, manually update story status to 'done' in sprint-status.yaml
325
+ 5. **Activate one scaffold at a time** by removing `test.skip()` for the current task, then confirm it fails before implementing
326
+ 6. **Work one activated test at a time** (red green for each)
327
+ 7. **Share progress** in daily standup
328
+ 8. **When all activated tests pass**, refactor code for quality
329
+ 9. **When refactoring complete**, manually update story status to 'done' in sprint-status.yaml
308
330
 
309
331
  ---
310
332
 
@@ -325,25 +347,26 @@ See `tea-index.csv` for complete knowledge fragment mapping.
325
347
 
326
348
  ## Test Execution Evidence
327
349
 
328
- ### Initial Test Run (RED Phase Verification)
350
+ ### Initial Scaffold Review / RED Verification
329
351
 
330
- **Command:** `{test_command_all}`
352
+ **Command:** `{test_command_all}` (or a narrower command after removing `test.skip()` for the current task)
331
353
 
332
354
  **Results:**
333
355
 
334
356
  ```
335
- {paste_test_run_output_showing_all_tests_failing}
357
+ {paste_test_run_output_showing_scaffolds_skipped_or_activated_tests_failing}
336
358
  ```
337
359
 
338
360
  **Summary:**
339
361
 
340
362
  - Total tests: {total_test_count}
341
- - Passing: 0 (expected)
342
- - Failing: {total_test_count} (expected)
343
- - Status: RED phase verified
363
+ - Skipped: {total_test_count} (expected before activation)
364
+ - Activated RED tests: {activated_test_count} (expected after activation, before implementation)
365
+ - Passing: 0 before implementation (expected for activated tests)
366
+ - Status: ✅ Red-phase scaffolds verified
344
367
 
345
368
  **Expected Failure Messages:**
346
- {list_expected_failure_messages_for_each_test}
369
+ {list_expected_skip_or_failure_states_for_each_test}
347
370
 
348
371
  ---
349
372
 
@@ -50,7 +50,7 @@ Before starting this workflow, verify:
50
50
 
51
51
  ---
52
52
 
53
- ## Step 3: Failing Tests Generated
53
+ ## Step 3: Red-Phase Test Scaffolds Generated
54
54
 
55
55
  ### Test File Structure Created
56
56
 
@@ -68,8 +68,8 @@ Before starting this workflow, verify:
68
68
  - [ ] One assertion per test (atomic test design)
69
69
  - [ ] No hard waits or sleeps (explicit waits only)
70
70
  - [ ] Network-first pattern applied (route interception BEFORE navigation)
71
- - [ ] Tests fail initially (RED phase verified by local test run)
72
- - [ ] Failure messages are clear and actionable
71
+ - [ ] Tests are generated as `test.skip()` scaffolds
72
+ - [ ] Activation guidance is documented for the current task
73
73
 
74
74
  ### API Tests (If Applicable)
75
75
 
@@ -79,7 +79,7 @@ Before starting this workflow, verify:
79
79
  - [ ] HTTP status codes verified
80
80
  - [ ] Response body validation includes all required fields
81
81
  - [ ] Error cases tested (400, 401, 403, 404, 500)
82
- - [ ] Tests fail initially (RED phase verified)
82
+ - [ ] Tests are generated as `test.skip()` scaffolds
83
83
 
84
84
  ### Component Tests (If Applicable)
85
85
 
@@ -89,7 +89,7 @@ Before starting this workflow, verify:
89
89
  - [ ] Interaction testing covers user actions (click, hover, keyboard)
90
90
  - [ ] State management within component validated
91
91
  - [ ] Props and events tested
92
- - [ ] Tests fail initially (RED phase verified)
92
+ - [ ] Tests are generated as `test.skip()` scaffolds
93
93
 
94
94
  ### Test Quality Validation
95
95
 
@@ -144,7 +144,7 @@ Before starting this workflow, verify:
144
144
  ## Step 5: Implementation Checklist Created
145
145
 
146
146
  - [ ] Implementation checklist created with clear structure
147
- - [ ] Each failing test mapped to concrete implementation tasks
147
+ - [ ] Each scaffolded test mapped to concrete implementation tasks
148
148
  - [ ] Tasks include:
149
149
  - [ ] Route/component creation
150
150
  - [ ] Business logic implementation
@@ -170,12 +170,12 @@ Before starting this workflow, verify:
170
170
 
171
171
  ### ATDD Checklist Document Created
172
172
 
173
- - [ ] Output file created at `{test_artifacts}/atdd-checklist-{story_id}.md`
173
+ - [ ] Output file created at `{test_artifacts}/atdd-checklist-{story_key}.md`
174
174
  - [ ] Document follows template structure from `atdd-checklist-template.md`
175
175
  - [ ] Document includes all required sections:
176
176
  - [ ] Story summary
177
177
  - [ ] Acceptance criteria breakdown
178
- - [ ] Failing tests created (paths and line counts)
178
+ - [ ] Red-phase test scaffolds created (paths and line counts)
179
179
  - [ ] Data factories created
180
180
  - [ ] Fixtures created
181
181
  - [ ] Mock requirements
@@ -184,15 +184,16 @@ Before starting this workflow, verify:
184
184
  - [ ] Red-green-refactor workflow
185
185
  - [ ] Execution commands
186
186
  - [ ] Next steps for DEV team
187
- - [ ] Output shared with DEV workflow (manual handoff; not auto-consumed)
187
+ - [ ] Checklist frontmatter includes `storyId`, `storyKey`, `storyFile`, `atddChecklistPath`, and generated test file paths
188
+ - [ ] If a writable story file was provided, ATDD artifacts were linked back into story context
189
+ - [ ] If a story file could not be updated, manual handoff instructions are present
188
190
 
189
- ### All Tests Verified to Fail (RED Phase)
191
+ ### Red-Phase Scaffolds Verified
190
192
 
191
- - [ ] Full test suite run locally before finalizing
192
- - [ ] All tests fail as expected (RED phase confirmed)
193
- - [ ] No tests passing before implementation (if passing, test is invalid)
194
- - [ ] Failure messages documented in ATDD checklist
195
- - [ ] Failures are due to missing implementation, not test bugs
193
+ - [ ] All generated acceptance test scaffolds are marked with `test.skip()`
194
+ - [ ] No scaffold was emitted as an active passing test before implementation
195
+ - [ ] Activation guidance is documented: remove `test.skip()` for the current task, then confirm RED before implementing
196
+ - [ ] Any assumptions or expected failure reasons are documented in ATDD checklist
196
197
  - [ ] Test run output captured for reference
197
198
 
198
199
  ### Summary Provided
@@ -279,9 +280,9 @@ Before starting this workflow, verify:
279
280
  All of the following must be true before marking this workflow as complete:
280
281
 
281
282
  - [ ] **Story acceptance criteria analyzed** and mapped to appropriate test levels
282
- - [ ] **Failing tests created** at all appropriate levels (E2E, API, Component)
283
+ - [ ] **Red-phase test scaffolds created** at all appropriate levels (E2E, API, Component)
283
284
  - [ ] **Given-When-Then format** used consistently across all tests
284
- - [ ] **RED phase verified** by local test run (all tests failing as expected)
285
+ - [ ] **RED phase verified** by scaffold generation plus task-by-task activation guidance
285
286
  - [ ] **Network-first pattern** applied to E2E tests with network requests
286
287
  - [ ] **Data factories created** using faker (no hardcoded test data)
287
288
  - [ ] **Fixtures created** with auto-cleanup in teardown
@@ -8,7 +8,7 @@
8
8
 
9
9
  ## Overview
10
10
 
11
- Generates **failing acceptance tests** before implementation (TDD red phase), plus an implementation checklist. Produces tests at appropriate levels (E2E/API/Component) with supporting fixtures and helpers.
11
+ Generates **red-phase acceptance test scaffolds** before implementation (TDD red phase), plus an implementation checklist. Produces tests at appropriate levels (E2E/API/Component) with supporting fixtures and helpers.
12
12
 
13
13
  ---
14
14
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: 'step-01-preflight-and-context'
3
3
  description: 'Verify prerequisites and load story, framework, and knowledge base'
4
- outputFile: '{test_artifacts}/atdd-checklist-{story_id}.md'
4
+ outputFile: '{test_artifacts}/atdd-checklist-{story_key}.md'
5
5
  nextStepFile: './step-02-generation-mode.md'
6
6
  knowledgeIndex: './resources/tea-index.csv'
7
7
  ---
@@ -10,7 +10,7 @@ knowledgeIndex: './resources/tea-index.csv'
10
10
 
11
11
  ## STEP GOAL
12
12
 
13
- Verify prerequisites and load all required inputs before generating failing tests.
13
+ Verify prerequisites and load all required inputs before generating red-phase acceptance test scaffolds.
14
14
 
15
15
  ## MANDATORY EXECUTION RULES
16
16
 
@@ -71,6 +71,17 @@ If any are missing: **HALT** and notify the user.
71
71
  - Read story markdown from `{story_file}` (or ask user if not provided)
72
72
  - Extract acceptance criteria and constraints
73
73
  - Identify affected components and integrations
74
+ - Derive and store `story_key` from the story filename when available (for BMM stories, this is the filename without `.md`, e.g. `1-2-user-authentication`)
75
+ - Derive and store `story_id` from story metadata, the H1 heading, or the filename when available (for BMM stories, this is typically `{epic_num}.{story_num}`)
76
+ - If a filename-based `story_key` is not available, create and persist a stable slug from the story title:
77
+ - lowercase the title
78
+ - collapse runs of whitespace to single `-`
79
+ - strip all non-alphanumeric and non-hyphen characters
80
+ - trim leading/trailing hyphens
81
+ - truncate to a safe max length (64 chars)
82
+ - Use that slug as `story_key` and for `{outputFile}` basename so all checklist and handoff paths stay consistent
83
+ - If `story_id` is still unavailable after metadata/H1/filename parsing, set it to the final `story_key` so `story_id` is never empty
84
+ - Preserve `{story_file}` as a tracked artifact path for later handoff into BMM `dev-story`
74
85
 
75
86
  ---
76
87
 
@@ -210,7 +221,14 @@ Summarize loaded inputs and confirm with the user. Then proceed.
210
221
  - Set `lastSaved: '{date}'`
211
222
  - Append this step's output to the appropriate section.
212
223
 
213
- **Update `inputDocuments`**: Set `inputDocuments` in the output template frontmatter to the list of artifact paths loaded in this step (e.g., knowledge fragments, test design documents, configuration files).
224
+ **Update frontmatter fields**:
225
+
226
+ - Set `storyId` to `{story_id}`
227
+ - Set `storyKey` to `{story_key}`
228
+ - Set `storyFile` to `{story_file}`
229
+ - Set `atddChecklistPath` to `{outputFile}`
230
+ - Initialize `generatedTestFiles` to `[]`
231
+ - Set `inputDocuments` to the list of artifact paths loaded in this step (e.g., knowledge fragments, test design documents, configuration files)
214
232
 
215
233
  Load next step: `{nextStepFile}`
216
234
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: 'step-01b-resume'
3
3
  description: 'Resume interrupted workflow from last completed step'
4
- outputFile: '{test_artifacts}/atdd-checklist-{story_id}.md'
4
+ outputFile: '{test_artifacts}/atdd-checklist-{story_key}.md'
5
5
  ---
6
6
 
7
7
  # Step 1b: Resume Workflow
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: 'step-02-generation-mode'
3
3
  description: 'Choose AI generation or recording mode'
4
- outputFile: '{test_artifacts}/atdd-checklist-{story_id}.md'
4
+ outputFile: '{test_artifacts}/atdd-checklist-{story_key}.md'
5
5
  nextStepFile: './step-03-test-strategy.md'
6
6
  ---
7
7
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: 'step-03-test-strategy'
3
3
  description: 'Map acceptance criteria to test levels and priorities'
4
- outputFile: '{test_artifacts}/atdd-checklist-{story_id}.md'
4
+ outputFile: '{test_artifacts}/atdd-checklist-{story_key}.md'
5
5
  nextStepFile: './step-04-generate-tests.md'
6
6
  ---
7
7
 
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  name: 'step-04-generate-tests'
3
- description: 'Orchestrate adaptive FAILING test generation (TDD red phase)'
3
+ description: 'Orchestrate adaptive red-phase test scaffold generation (TDD red phase)'
4
4
  nextStepFile: './step-04c-aggregate.md'
5
5
  ---
6
6
 
7
- # Step 4: Orchestrate Adaptive FAILING Test Generation
7
+ # Step 4: Orchestrate Adaptive Red-Phase Test Scaffold Generation
8
8
 
9
9
  ## STEP GOAL
10
10
 
11
- Select execution mode deterministically, then generate FAILING API and E2E tests (TDD RED PHASE) with consistent output contracts across agent-team, subagent, or sequential execution.
11
+ Select execution mode deterministically, then generate red-phase API and E2E test scaffolds (TDD RED PHASE) with consistent output contracts across agent-team, subagent, or sequential execution.
12
12
 
13
13
  ## MANDATORY EXECUTION RULES
14
14
 
@@ -16,10 +16,10 @@ Select execution mode deterministically, then generate FAILING API and E2E tests
16
16
  - ✅ Speak in `{communication_language}`
17
17
  - ✅ Resolve execution mode from config (`tea_execution_mode`, `tea_capability_probe`)
18
18
  - ✅ Apply fallback rules deterministically when requested mode is unsupported
19
- - ✅ Generate FAILING tests only (TDD red phase)
19
+ - ✅ Generate red-phase test scaffolds only (TDD red phase)
20
20
  - ✅ Wait for required worker steps to complete
21
21
  - ❌ Do NOT skip capability checks when probing is enabled
22
- - ❌ Do NOT generate passing tests (this is red phase)
22
+ - ❌ Do NOT generate active passing tests (this is red phase)
23
23
  - ❌ Do NOT proceed until required worker steps finish
24
24
 
25
25
  ---
@@ -162,7 +162,7 @@ If probing is disabled, honor the requested mode strictly. If that mode cannot b
162
162
 
163
163
  ---
164
164
 
165
- ### 3. Dispatch Worker A: Failing API Test Generation
165
+ ### 3. Dispatch Worker A: Red-Phase API Test Generation
166
166
 
167
167
  **Dispatch worker:**
168
168
 
@@ -172,21 +172,21 @@ If probing is disabled, honor the requested mode strictly. If that mode cannot b
172
172
  - **Execution:**
173
173
  - `agent-team` or `subagent`: launch non-blocking
174
174
  - `sequential`: run blocking and wait before next dispatch
175
- - **TDD Phase:** RED (failing tests)
175
+ - **TDD Phase:** RED (scaffold tests with `test.skip()`)
176
176
 
177
177
  **System Action:**
178
178
 
179
179
  ```
180
- 🚀 Launching Subagent A: FAILING API Test Generation (RED PHASE)
180
+ 🚀 Launching Subagent A: RED-PHASE API Test Generation
181
181
  📝 Output: /tmp/tea-atdd-api-tests-${timestamp}.json
182
182
  ⚙️ Mode: ${resolvedMode}
183
- 🔴 TDD Phase: RED (tests will fail until feature implemented)
183
+ 🔴 TDD Phase: RED (tests emitted as `test.skip()` scaffolds)
184
184
  ⏳ Status: Running...
185
185
  ```
186
186
 
187
187
  ---
188
188
 
189
- ### 4. Dispatch Worker B: Failing E2E Test Generation
189
+ ### 4. Dispatch Worker B: Red-Phase E2E Test Generation
190
190
 
191
191
  **Dispatch worker:**
192
192
 
@@ -196,15 +196,15 @@ If probing is disabled, honor the requested mode strictly. If that mode cannot b
196
196
  - **Execution:**
197
197
  - `agent-team` or `subagent`: launch non-blocking
198
198
  - `sequential`: run blocking and wait before next dispatch
199
- - **TDD Phase:** RED (failing tests)
199
+ - **TDD Phase:** RED (scaffold tests with `test.skip()`)
200
200
 
201
201
  **System Action:**
202
202
 
203
203
  ```
204
- 🚀 Launching Subagent B: FAILING E2E Test Generation (RED PHASE)
204
+ 🚀 Launching Subagent B: RED-PHASE E2E Test Generation
205
205
  📝 Output: /tmp/tea-atdd-e2e-tests-${timestamp}.json
206
206
  ⚙️ Mode: ${resolvedMode}
207
- 🔴 TDD Phase: RED (tests will fail until feature implemented)
207
+ 🔴 TDD Phase: RED (tests emitted as `test.skip()` scaffolds)
208
208
  ⏳ Status: Running...
209
209
  ```
210
210
 
@@ -251,14 +251,15 @@ if (!apiOutputExists || !e2eOutputExists) {
251
251
  **Display TDD status:**
252
252
 
253
253
  ```
254
- 🔴 TDD RED PHASE: Failing Tests Generated
254
+ 🔴 TDD RED PHASE: Test Scaffolds Generated
255
255
 
256
256
  ✅ Both subagents completed:
257
257
  - API Tests: Generated with test.skip()
258
258
  - E2E Tests: Generated with test.skip()
259
259
 
260
260
  📋 All tests assert EXPECTED behavior
261
- 📋 All tests will FAIL until feature implemented
261
+ 📋 Activated tests will FAIL until feature is implemented
262
+ 📋 Scaffolds stay skipped until a developer activates the current task
262
263
  📋 This is INTENTIONAL (TDD red phase)
263
264
 
264
265
  Next: Aggregation will verify TDD compliance
@@ -300,8 +301,8 @@ The aggregation step (4C) will:
300
301
 
301
302
  Proceed to Step 4C (Aggregation) when:
302
303
 
303
- - ✅ Subagent A (API failing tests) completed successfully
304
- - ✅ Subagent B (E2E failing tests) completed successfully
304
+ - ✅ Subagent A (API red-phase tests) completed successfully
305
+ - ✅ Subagent B (E2E red-phase tests) completed successfully
305
306
  - ✅ Both output files exist and are valid JSON
306
307
  - ✅ TDD red phase status reported
307
308
 
@@ -309,7 +310,7 @@ Proceed to Step 4C (Aggregation) when:
309
310
 
310
311
  - ❌ One or both subagents failed
311
312
  - ❌ Output files missing or corrupted
312
- - ❌ Subagent generated passing tests (wrong - must be failing)
313
+ - ❌ Subagent generated active passing tests (wrong - must be red-phase scaffolds)
313
314
 
314
315
  ---
315
316
 
@@ -331,4 +332,4 @@ Proceed to Step 4C (Aggregation) when:
331
332
  - Tests generated without test.skip() (wrong phase)
332
333
  - Unsupported requested mode with probing disabled
333
334
 
334
- **Master Rule:** TDD RED PHASE requires FAILING tests (with test.skip()). Mode selection changes orchestration, never red-phase requirements.
335
+ **Master Rule:** TDD RED PHASE requires acceptance test scaffolds marked with `test.skip()`. Mode selection changes orchestration, never red-phase requirements.
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  name: 'step-04a-subagent-api-failing'
3
- description: 'Subagent: Generate FAILING API tests (TDD red phase)'
3
+ description: 'Subagent: Generate red-phase API test scaffolds (TDD red phase)'
4
4
  subagent: true
5
5
  outputFile: '/tmp/tea-atdd-api-tests-{{timestamp}}.json'
6
6
  ---
7
7
 
8
- # Subagent 4A: Generate Failing API Tests (TDD Red Phase)
8
+ # Subagent 4A: Generate Red-Phase API Test Scaffolds (TDD Red Phase)
9
9
 
10
10
  ## SUBAGENT CONTEXT
11
11
 
12
- This is an **isolated subagent** running in parallel with E2E failing test generation.
12
+ This is an **isolated subagent** running in parallel with E2E red-phase test generation.
13
13
 
14
14
  **What you have from parent workflow:**
15
15
 
@@ -21,19 +21,19 @@ This is an **isolated subagent** running in parallel with E2E failing test gener
21
21
 
22
22
  **If `use_pactjs_utils` is enabled:** Also generate consumer contract tests alongside API tests. Use the loaded pactjs-utils fragments (`pactjs-utils-overview`, `pactjs-utils-consumer-helpers`, `pactjs-utils-provider-verifier`, `pactjs-utils-request-filter`, `pact-consumer-di`) for patterns. If `pact_mcp` is `"mcp"`, use SmartBear MCP tools (Fetch Provider States, Generate Pact Tests) to inform test generation.
23
23
 
24
- **Your task:** Generate API tests that will FAIL because the feature is not implemented yet (TDD RED PHASE).
24
+ **Your task:** Generate API test scaffolds for the feature's expected behavior. They stay in `test.skip()` until the developer activates them for the current task (TDD RED PHASE).
25
25
 
26
26
  ---
27
27
 
28
28
  ## MANDATORY EXECUTION RULES
29
29
 
30
30
  - 📖 Read this entire subagent file before acting
31
- - ✅ Generate FAILING API tests ONLY
32
- - ✅ Tests MUST fail when run (feature not implemented yet)
31
+ - ✅ Generate red-phase API test scaffolds ONLY
32
+ - ✅ Tests MUST be emitted with `test.skip()` until the developer activates them
33
33
  - ✅ Output structured JSON to temp file
34
34
  - ✅ Follow knowledge fragment patterns
35
35
  - ❌ Do NOT generate E2E tests (that's subagent 4B)
36
- - ❌ Do NOT generate passing tests (this is TDD red phase)
36
+ - ❌ Do NOT generate active passing tests (this is TDD red phase)
37
37
  - ❌ Do NOT run tests (that's step 5)
38
38
 
39
39
  ---
@@ -59,7 +59,7 @@ Story: User Registration
59
59
  - System returns 422 Unprocessable Entity if validation fails
60
60
  ```
61
61
 
62
- ### 2. Generate FAILING API Test Files
62
+ ### 2. Generate Red-Phase API Test Files
63
63
 
64
64
  For each API endpoint, create test file in `tests/api/[feature].spec.ts`:
65
65
 
@@ -108,7 +108,7 @@ test.describe('[Story Name] API Tests (ATDD)', () => {
108
108
 
109
109
  **CRITICAL ATDD Requirements:**
110
110
 
111
- - ✅ Use `test.skip()` to mark tests as intentionally failing (red phase)
111
+ - ✅ Use `test.skip()` to mark tests as red-phase scaffolds
112
112
  - ✅ Write assertions for EXPECTED behavior (even though not implemented)
113
113
  - ✅ Use realistic test data (not placeholder data)
114
114
  - ✅ Test both happy path and error scenarios from acceptance criteria
@@ -213,7 +213,7 @@ Write JSON to temp file: `/tmp/tea-atdd-api-tests-{{timestamp}}.json`
213
213
  {
214
214
  "file": "tests/api/user-registration.spec.ts",
215
215
  "content": "[full TypeScript test file content with test.skip()]",
216
- "description": "ATDD API tests for user registration (RED PHASE)",
216
+ "description": "ATDD API test scaffolds for user registration (RED PHASE)",
217
217
  "expected_to_fail": true,
218
218
  "acceptance_criteria_covered": [
219
219
  "User can register with email/password",
@@ -239,7 +239,7 @@ Write JSON to temp file: `/tmp/tea-atdd-api-tests-{{timestamp}}.json`
239
239
  "test_count": 3,
240
240
  "tdd_phase": "RED",
241
241
  "provider_scrutiny": "completed",
242
- "summary": "Generated 3 FAILING API tests for user registration story"
242
+ "summary": "Generated 3 red-phase API test scaffolds for user registration story"
243
243
  }
244
244
  ```
245
245
 
@@ -263,7 +263,7 @@ Write JSON to temp file: `/tmp/tea-atdd-api-tests-{{timestamp}}.json`
263
263
  Subagent completes when:
264
264
 
265
265
  - ✅ All API endpoints from acceptance criteria have test files
266
- - ✅ All tests use `test.skip()` (documented failing tests)
266
+ - ✅ All tests use `test.skip()` (documented red-phase scaffolds)
267
267
  - ✅ All tests assert EXPECTED behavior (not placeholder assertions)
268
268
  - ✅ JSON output written to temp file
269
269
  - ✅ Fixture needs to be tracked
@@ -286,7 +286,7 @@ Subagent completes when:
286
286
 
287
287
  ### ❌ FAILURE:
288
288
 
289
- - Generated passing tests (wrong - this is RED phase)
289
+ - Generated active passing tests (wrong - this is RED phase)
290
290
  - Tests without test.skip() (will break CI)
291
291
  - Placeholder assertions (expect(true).toBe(true))
292
292
  - Did not follow knowledge fragment patterns
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  name: 'step-04b-subagent-e2e-failing'
3
- description: 'Subagent: Generate FAILING E2E tests (TDD red phase)'
3
+ description: 'Subagent: Generate red-phase E2E test scaffolds (TDD red phase)'
4
4
  subagent: true
5
5
  outputFile: '/tmp/tea-atdd-e2e-tests-{{timestamp}}.json'
6
6
  ---
7
7
 
8
- # Subagent 4B: Generate Failing E2E Tests (TDD Red Phase)
8
+ # Subagent 4B: Generate Red-Phase E2E Test Scaffolds (TDD Red Phase)
9
9
 
10
10
  ## SUBAGENT CONTEXT
11
11
 
12
- This is an **isolated subagent** running in parallel with API failing test generation.
12
+ This is an **isolated subagent** running in parallel with API red-phase test generation.
13
13
 
14
14
  **What you have from parent workflow:**
15
15
 
@@ -18,19 +18,19 @@ This is an **isolated subagent** running in parallel with API failing test gener
18
18
  - Knowledge fragments loaded: fixture-architecture, network-first, selector-resilience
19
19
  - Config: test framework, Playwright Utils enabled/disabled
20
20
 
21
- **Your task:** Generate E2E tests that will FAIL because the feature UI is not implemented yet (TDD RED PHASE).
21
+ **Your task:** Generate E2E test scaffolds for the feature's expected UI behavior. They stay in `test.skip()` until the developer activates them for the current task (TDD RED PHASE).
22
22
 
23
23
  ---
24
24
 
25
25
  ## MANDATORY EXECUTION RULES
26
26
 
27
27
  - 📖 Read this entire subagent file before acting
28
- - ✅ Generate FAILING E2E tests ONLY
29
- - ✅ Tests MUST fail when run (UI not implemented yet)
28
+ - ✅ Generate red-phase E2E test scaffolds ONLY
29
+ - ✅ Tests MUST be emitted with `test.skip()` until the developer activates them
30
30
  - ✅ Output structured JSON to temp file
31
31
  - ✅ Follow knowledge fragment patterns
32
32
  - ❌ Do NOT generate API tests (that's subagent 4A)
33
- - ❌ Do NOT generate passing tests (this is TDD red phase)
33
+ - ❌ Do NOT generate active passing tests (this is TDD red phase)
34
34
  - ❌ Do NOT run tests (that's step 5)
35
35
 
36
36
  ---
@@ -89,7 +89,7 @@ If `none`:
89
89
 
90
90
  - Generate selectors from best practices without browser verification
91
91
 
92
- ### 3. Generate FAILING E2E Test Files
92
+ ### 3. Generate Red-Phase E2E Test Files
93
93
 
94
94
  For each user journey, create test file in `tests/e2e/[feature].spec.ts`:
95
95
 
@@ -129,7 +129,7 @@ test.describe('[Story Name] E2E User Journey (ATDD)', () => {
129
129
 
130
130
  **CRITICAL ATDD Requirements:**
131
131
 
132
- - ✅ Use `test.skip()` to mark tests as intentionally failing (red phase)
132
+ - ✅ Use `test.skip()` to mark tests as red-phase scaffolds
133
133
  - ✅ Write assertions for EXPECTED UI behavior (even though not implemented)
134
134
  - ✅ Use resilient selectors: getByRole, getByText, getByLabel (from selector-resilience)
135
135
  - ✅ Follow network-first patterns if API calls involved (from network-first)
@@ -169,7 +169,7 @@ Write JSON to temp file: `/tmp/tea-atdd-e2e-tests-{{timestamp}}.json`
169
169
  {
170
170
  "file": "tests/e2e/user-registration.spec.ts",
171
171
  "content": "[full TypeScript test file content with test.skip()]",
172
- "description": "ATDD E2E tests for user registration journey (RED PHASE)",
172
+ "description": "ATDD E2E test scaffolds for user registration journey (RED PHASE)",
173
173
  "expected_to_fail": true,
174
174
  "acceptance_criteria_covered": [
175
175
  "User can navigate to /register",
@@ -189,7 +189,7 @@ Write JSON to temp file: `/tmp/tea-atdd-e2e-tests-{{timestamp}}.json`
189
189
  "knowledge_fragments_used": ["fixture-architecture", "network-first", "selector-resilience"],
190
190
  "test_count": 2,
191
191
  "tdd_phase": "RED",
192
- "summary": "Generated 2 FAILING E2E tests for user registration story"
192
+ "summary": "Generated 2 red-phase E2E test scaffolds for user registration story"
193
193
  }
194
194
  ```
195
195
 
@@ -213,7 +213,7 @@ Write JSON to temp file: `/tmp/tea-atdd-e2e-tests-{{timestamp}}.json`
213
213
  Subagent completes when:
214
214
 
215
215
  - ✅ All user journeys from acceptance criteria have test files
216
- - ✅ All tests use `test.skip()` (documented failing tests)
216
+ - ✅ All tests use `test.skip()` (documented red-phase scaffolds)
217
217
  - ✅ All tests assert EXPECTED UI behavior (not placeholder assertions)
218
218
  - ✅ Resilient selectors used (getByRole, getByText)
219
219
  - ✅ JSON output written to temp file
@@ -236,7 +236,7 @@ Subagent completes when:
236
236
 
237
237
  ### ❌ FAILURE:
238
238
 
239
- - Generated passing tests (wrong - this is RED phase)
239
+ - Generated active passing tests (wrong - this is RED phase)
240
240
  - Tests without test.skip() (will break CI)
241
241
  - Placeholder assertions (expect(true).toBe(true))
242
242
  - Brittle selectors used (CSS classes, XPath)