bmad-method-test-architecture-enterprise 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/docs/explanation/tea-overview.md +1 -1
  2. package/docs/how-to/customization/configure-browser-automation.md +1 -1
  3. package/eslint.config.mjs +0 -11
  4. package/package.json +1 -3
  5. package/release_notes.md +13 -2
  6. package/src/module-help.csv +3 -3
  7. package/src/module.yaml +29 -0
  8. package/src/testarch/knowledge/playwright-cli.md +1 -1
  9. package/src/workflows/testarch/atdd/atdd-checklist-template.md +6 -0
  10. package/src/workflows/testarch/atdd/instructions.md +7 -0
  11. package/src/workflows/testarch/atdd/steps-c/step-01-preflight-and-context.md +25 -0
  12. package/src/workflows/testarch/atdd/steps-c/step-01b-resume.md +96 -0
  13. package/src/workflows/testarch/atdd/steps-c/step-02-generation-mode.md +25 -0
  14. package/src/workflows/testarch/atdd/steps-c/step-03-test-strategy.md +25 -0
  15. package/src/workflows/testarch/atdd/steps-c/step-04c-aggregate.md +25 -0
  16. package/src/workflows/testarch/atdd/steps-c/step-05-validate-and-complete.md +25 -0
  17. package/src/workflows/testarch/atdd/workflow.md +2 -0
  18. package/src/workflows/testarch/automate/instructions.md +7 -0
  19. package/src/workflows/testarch/automate/steps-c/step-01-preflight-and-context.md +25 -0
  20. package/src/workflows/testarch/automate/steps-c/step-01b-resume.md +94 -0
  21. package/src/workflows/testarch/automate/steps-c/step-02-identify-targets.md +25 -0
  22. package/src/workflows/testarch/automate/steps-c/step-03c-aggregate.md +25 -0
  23. package/src/workflows/testarch/automate/steps-c/step-04-validate-and-summarize.md +24 -0
  24. package/src/workflows/testarch/automate/workflow.md +2 -0
  25. package/src/workflows/testarch/ci/instructions.md +7 -0
  26. package/src/workflows/testarch/ci/steps-c/step-01-preflight.md +25 -0
  27. package/src/workflows/testarch/ci/steps-c/step-01b-resume.md +110 -0
  28. package/src/workflows/testarch/ci/steps-c/step-02-generate-pipeline.md +27 -2
  29. package/src/workflows/testarch/ci/steps-c/step-03-configure-quality-gates.md +25 -0
  30. package/src/workflows/testarch/ci/steps-c/step-04-validate-and-summary.md +25 -0
  31. package/src/workflows/testarch/ci/workflow.md +2 -0
  32. package/src/workflows/testarch/framework/instructions.md +7 -0
  33. package/src/workflows/testarch/framework/steps-c/step-01-preflight.md +25 -0
  34. package/src/workflows/testarch/framework/steps-c/step-01b-resume.md +116 -0
  35. package/src/workflows/testarch/framework/steps-c/step-02-select-framework.md +25 -0
  36. package/src/workflows/testarch/framework/steps-c/step-03-scaffold-framework.md +25 -0
  37. package/src/workflows/testarch/framework/steps-c/step-04-docs-and-scripts.md +23 -0
  38. package/src/workflows/testarch/framework/steps-c/step-05-validate-and-summary.md +25 -0
  39. package/src/workflows/testarch/framework/workflow.md +2 -0
  40. package/src/workflows/testarch/nfr-assess/instructions.md +7 -0
  41. package/src/workflows/testarch/nfr-assess/nfr-report-template.md +6 -0
  42. package/src/workflows/testarch/nfr-assess/steps-c/step-01-load-context.md +25 -0
  43. package/src/workflows/testarch/nfr-assess/steps-c/step-01b-resume.md +106 -0
  44. package/src/workflows/testarch/nfr-assess/steps-c/step-02-define-thresholds.md +25 -0
  45. package/src/workflows/testarch/nfr-assess/steps-c/step-03-gather-evidence.md +25 -0
  46. package/src/workflows/testarch/nfr-assess/steps-c/step-04e-aggregate-nfr.md +28 -0
  47. package/src/workflows/testarch/nfr-assess/steps-c/step-05-generate-report.md +25 -1
  48. package/src/workflows/testarch/nfr-assess/workflow.md +2 -0
  49. package/src/workflows/testarch/test-design/instructions.md +7 -0
  50. package/src/workflows/testarch/test-design/steps-c/step-01-detect-mode.md +25 -0
  51. package/src/workflows/testarch/test-design/steps-c/step-01b-resume.md +102 -0
  52. package/src/workflows/testarch/test-design/steps-c/step-02-load-context.md +25 -0
  53. package/src/workflows/testarch/test-design/steps-c/step-03-risk-and-testability.md +25 -0
  54. package/src/workflows/testarch/test-design/steps-c/step-04-coverage-plan.md +25 -0
  55. package/src/workflows/testarch/test-design/steps-c/step-05-generate-output.md +25 -0
  56. package/src/workflows/testarch/test-design/test-design-architecture-template.md +6 -0
  57. package/src/workflows/testarch/test-design/test-design-qa-template.md +6 -0
  58. package/src/workflows/testarch/test-design/test-design-template.md +6 -0
  59. package/src/workflows/testarch/test-design/workflow.md +2 -0
  60. package/src/workflows/testarch/test-review/instructions.md +7 -0
  61. package/src/workflows/testarch/test-review/steps-c/step-01-load-context.md +25 -0
  62. package/src/workflows/testarch/test-review/steps-c/step-01b-resume.md +104 -0
  63. package/src/workflows/testarch/test-review/steps-c/step-02-discover-tests.md +25 -0
  64. package/src/workflows/testarch/test-review/steps-c/step-03f-aggregate-scores.md +28 -0
  65. package/src/workflows/testarch/test-review/steps-c/step-04-generate-report.md +25 -1
  66. package/src/workflows/testarch/test-review/test-review-template.md +6 -0
  67. package/src/workflows/testarch/test-review/workflow.md +2 -0
  68. package/src/workflows/testarch/trace/instructions.md +7 -0
  69. package/src/workflows/testarch/trace/steps-c/step-01-load-context.md +25 -0
  70. package/src/workflows/testarch/trace/steps-c/step-01b-resume.md +102 -0
  71. package/src/workflows/testarch/trace/steps-c/step-02-discover-tests.md +25 -0
  72. package/src/workflows/testarch/trace/steps-c/step-03-map-criteria.md +25 -0
  73. package/src/workflows/testarch/trace/steps-c/step-04-analyze-gaps.md +27 -2
  74. package/src/workflows/testarch/trace/steps-c/step-05-gate-decision.md +14 -0
  75. package/src/workflows/testarch/trace/trace-template.md +6 -0
  76. package/src/workflows/testarch/trace/workflow.md +2 -0
  77. package/test/test-installation-components.js +14 -5
  78. package/tools/build-docs.js +1 -1
  79. package/src/_module-installer/installer.js +0 -92
@@ -359,7 +359,7 @@ Production-ready fixtures and utilities that enhance TEA workflows.
359
359
 
360
360
  **Setup:**
361
361
 
362
- - CLI: `npm install -g @playwright/cli@latest` then `playwright-cli install --skills`
362
+ - CLI: `npm install -g @playwright/cli@latest` (global, one-time) then `playwright-cli install --skills` (from project root)
363
363
  - MCP: Configure MCP servers in your IDE (see [Configure Browser Automation](/docs/how-to/customization/configure-browser-automation.md))
364
364
 
365
365
  **Which workflows benefit:**
@@ -33,7 +33,7 @@ npm install -g @playwright/cli@latest # Install globally (Node.js 18+)
33
33
  playwright-cli install --skills # Register as an agent skill
34
34
  ```
35
35
 
36
- This is a one-time global setup. TEA documents it during installation but does not run it for you.
36
+ The global npm install is one-time. The skills install (`playwright-cli install --skills`) should be run from your project root — it registers skills in your project's `.claude/skills/` directory (Claude Code, GitHub Copilot, and other coding agents that support the skills convention). Agents without skills support can still use the CLI directly via `playwright-cli --help`.
37
37
 
38
38
  ### For MCP (`mcp` or `auto` mode)
39
39
 
package/eslint.config.mjs CHANGED
@@ -114,17 +114,6 @@ export default [
114
114
  },
115
115
  },
116
116
 
117
- // Module installer scripts use CommonJS for compatibility
118
- {
119
- files: ['**/_module-installer/**/*.js'],
120
- rules: {
121
- // Allow CommonJS patterns for installer scripts
122
- 'unicorn/prefer-module': 'off',
123
- 'n/no-missing-require': 'off',
124
- 'n/no-unpublished-require': 'off',
125
- },
126
- },
127
-
128
117
  // ESLint config file should not be checked for publish-related Node rules
129
118
  {
130
119
  files: ['eslint.config.mjs'],
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.0.0",
4
+ "version": "1.1.0",
5
5
  "description": "Master Test Architect for quality strategy, test automation, and release gates",
6
6
  "keywords": [
7
7
  "bmad",
@@ -73,11 +73,9 @@
73
73
  "dependencies": {
74
74
  "@clack/prompts": "^0.11.0",
75
75
  "boxen": "^5.1.2",
76
- "chalk": "^4.1.2",
77
76
  "cli-table3": "^0.6.5",
78
77
  "commander": "^14.0.0",
79
78
  "csv-parse": "^6.1.0",
80
- "fs-extra": "^11.3.0",
81
79
  "glob": "^11.0.3",
82
80
  "ignore": "^7.0.5",
83
81
  "js-yaml": "^4.1.0",
package/release_notes.md CHANGED
@@ -1,4 +1,15 @@
1
- ## 🚀 What's New in v1.0.0
1
+ ## 🚀 What's New in v1.1.0
2
+
3
+ ### ✨ New Features
4
+ - feat: prereq prompts part2
5
+
6
+ ### 🐛 Bug Fixes
7
+ - fix: issues 22 23
8
+
9
+ ### 📦 Other Changes
10
+ - Merge pull request #25 from bmad-code-org/feat/prereq-prompts-part2
11
+ - addressed PR comments
12
+ - Merge pull request #26 from bmad-code-org/fix/issue-22-23
2
13
 
3
14
 
4
15
  ## 📦 Installation
@@ -8,4 +19,4 @@ npx bmad-method install
8
19
  # Select "Test Architect" from module menu
9
20
  ```
10
21
 
11
- **Full Changelog**: https://github.com/bmad-code-org/bmad-method-test-architecture-enterprise/compare/v0.1.1-beta.5...v1.0.0
22
+ **Full Changelog**: https://github.com/bmad-code-org/bmad-method-test-architecture-enterprise/compare/v1.0.1...v1.1.0
@@ -1,8 +1,8 @@
1
1
  module,phase,name,code,sequence,workflow-file,command,required,agent,options,description,output-location,outputs,
2
2
  tea,0-learning,Teach Me Testing,TMT,10,_bmad/tea/workflows/testarch/teach-me-testing/workflow.md,bmad_tea_teach-me-testing,false,tea,Create Mode,"Teach testing fundamentals through 7 sessions (TEA Academy)",test_artifacts,"progress file|session notes|certificate",
3
- tea,3-solutioning,Test Framework,TF,10,_bmad/tea/workflows/testarch/framework/workflow.yaml,bmad_tea_framework,false,tea,Create Mode,"Initialize production-ready test framework",test_artifacts,"framework scaffold",
4
- tea,3-solutioning,CI Setup,CI,20,_bmad/tea/workflows/testarch/ci/workflow.yaml,bmad_tea_ci,false,tea,Create Mode,"Configure CI/CD quality pipeline",test_artifacts,"ci config",
5
- tea,3-solutioning,Test Design,TD,30,_bmad/tea/workflows/testarch/test-design/workflow.yaml,bmad_tea_test-design,false,tea,Create Mode,"Risk-based test planning",test_artifacts,"test design document",
3
+ tea,3-solutioning,Test Design,TD,10,_bmad/tea/workflows/testarch/test-design/workflow.yaml,bmad_tea_test-design,false,tea,Create Mode,"Risk-based test planning",test_artifacts,"test design document",
4
+ tea,3-solutioning,Test Framework,TF,20,_bmad/tea/workflows/testarch/framework/workflow.yaml,bmad_tea_framework,false,tea,Create Mode,"Initialize production-ready test framework",test_artifacts,"framework scaffold",
5
+ tea,3-solutioning,CI Setup,CI,30,_bmad/tea/workflows/testarch/ci/workflow.yaml,bmad_tea_ci,false,tea,Create Mode,"Configure CI/CD quality pipeline",test_artifacts,"ci config",
6
6
  tea,4-implementation,ATDD,AT,10,_bmad/tea/workflows/testarch/atdd/workflow.yaml,bmad_tea_atdd,false,tea,Create Mode,"Generate failing tests (TDD red phase)",test_artifacts,"atdd tests",
7
7
  tea,4-implementation,Test Automation,TA,20,_bmad/tea/workflows/testarch/automate/workflow.yaml,bmad_tea_automate,false,tea,Create Mode,"Expand test coverage",test_artifacts,"test suite",
8
8
  tea,4-implementation,Test Review,RV,30,_bmad/tea/workflows/testarch/test-review/workflow.yaml,bmad_tea_test-review,false,tea,Validate Mode,"Quality audit (0-100 scoring)",test_artifacts,"review report",
package/src/module.yaml CHANGED
@@ -94,3 +94,32 @@ trace_output:
94
94
  prompt: "Where should traceability reports be stored?"
95
95
  default: "traceability"
96
96
  result: "{test_artifacts}/{value}"
97
+
98
+ post-install-notes:
99
+ tea_browser_automation:
100
+ cli: |
101
+ Playwright CLI Setup:
102
+ npm install -g @playwright/cli@latest
103
+ playwright-cli install --skills # Run from project root
104
+ Node.js 18+ required.
105
+ mcp: |
106
+ Playwright MCP Setup (two servers):
107
+ 1. playwright — npx @playwright/mcp@latest
108
+ 2. playwright-test — npx playwright run-test-mcp-server
109
+ Configure both MCP servers in your IDE settings.
110
+ See: https://github.com/microsoft/playwright-mcp
111
+ auto: |
112
+ Playwright CLI Setup:
113
+ npm install -g @playwright/cli@latest
114
+ playwright-cli install --skills # Run from project root
115
+ Node.js 18+ required.
116
+
117
+ Playwright MCP Setup (two servers):
118
+ 1. playwright — npx @playwright/mcp@latest
119
+ 2. playwright-test — npx playwright run-test-mcp-server
120
+ Configure both MCP servers in your IDE settings.
121
+ See: https://github.com/microsoft/playwright-mcp
122
+
123
+ # Directories to create during installation (declarative, no code execution)
124
+ directories:
125
+ - "{test_artifacts}"
@@ -24,7 +24,7 @@ npm install -g @playwright/cli@latest # Install globally (Node.js 18+)
24
24
  playwright-cli install --skills # Register as an agent skill
25
25
  ```
26
26
 
27
- This is a one-time setup, like configuring MCP servers. TEA documents it during installation but does not run it for you.
27
+ The global npm install is one-time. Run `playwright-cli install --skills` from your project root to register skills in `.claude/skills/` (works with Claude Code, GitHub Copilot, and other coding agents). Agents without skills support can use the CLI directly via `playwright-cli --help`. TEA documents this during installation but does not run it for you.
28
28
 
29
29
  ## How It Works
30
30
 
@@ -1,3 +1,9 @@
1
+ ---
2
+ stepsCompleted: []
3
+ lastStep: ''
4
+ lastSaved: ''
5
+ ---
6
+
1
7
  # ATDD Checklist - Epic {epic_num}, Story {story_num}: {story_title}
2
8
 
3
9
  **Date:** {date}
@@ -36,3 +36,10 @@ From `workflow.yaml`, resolve:
36
36
 
37
37
  Load, read completely, and execute:
38
38
  `{project-root}/_bmad/tea/workflows/testarch/atdd/steps-c/step-01-preflight-and-context.md`
39
+
40
+ ### 3. Resume Support
41
+
42
+ If the user selects **Resume** mode, load, read completely, and execute:
43
+ `{project-root}/_bmad/tea/workflows/testarch/atdd/steps-c/step-01b-resume.md`
44
+
45
+ This checks the output document for progress tracking frontmatter and routes to the next incomplete step.
@@ -1,6 +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
5
  nextStepFile: './step-02-generation-mode.md'
5
6
  knowledgeIndex: '{project-root}/_bmad/tea/testarch/tea-index.csv'
6
7
  ---
@@ -104,6 +105,30 @@ Use `{knowledgeIndex}` to load:
104
105
 
105
106
  Summarize loaded inputs and confirm with the user. Then proceed.
106
107
 
108
+ ---
109
+
110
+ ## 6. Save Progress
111
+
112
+ **Save this step's accumulated work to `{outputFile}`.**
113
+
114
+ - **If `{outputFile}` does not exist** (first save), create it with YAML frontmatter:
115
+
116
+ ```yaml
117
+ ---
118
+ stepsCompleted: ['step-01-preflight-and-context']
119
+ lastStep: 'step-01-preflight-and-context'
120
+ lastSaved: '{date}'
121
+ ---
122
+ ```
123
+
124
+ Then write this step's output below the frontmatter.
125
+
126
+ - **If `{outputFile}` already exists**, update:
127
+ - Add `'step-01-preflight-and-context'` to `stepsCompleted` array (only if not already present)
128
+ - Set `lastStep: 'step-01-preflight-and-context'`
129
+ - Set `lastSaved: '{date}'`
130
+ - Append this step's output to the appropriate section.
131
+
107
132
  Load next step: `{nextStepFile}`
108
133
 
109
134
  ## 🚨 SYSTEM SUCCESS/FAILURE METRICS:
@@ -0,0 +1,96 @@
1
+ ---
2
+ name: 'step-01b-resume'
3
+ description: 'Resume interrupted workflow from last completed step'
4
+ outputFile: '{test_artifacts}/atdd-checklist-{story_id}.md'
5
+ ---
6
+
7
+ # Step 1b: Resume Workflow
8
+
9
+ ## STEP GOAL
10
+
11
+ Resume an interrupted workflow by loading the existing output document, displaying progress, and routing to the next incomplete step.
12
+
13
+ ## MANDATORY EXECUTION RULES
14
+
15
+ - 📖 Read the entire step file before acting
16
+ - ✅ Speak in `{communication_language}`
17
+
18
+ ---
19
+
20
+ ## EXECUTION PROTOCOLS:
21
+
22
+ - 🎯 Follow the MANDATORY SEQUENCE exactly
23
+ - 📖 Load the next step only when instructed
24
+
25
+ ## CONTEXT BOUNDARIES:
26
+
27
+ - Available context: Output document with progress frontmatter
28
+ - Focus: Load progress and route to next step
29
+ - Limits: Do not re-execute completed steps
30
+ - Dependencies: Output document must exist from a previous run
31
+
32
+ ## MANDATORY SEQUENCE
33
+
34
+ **CRITICAL:** Follow this sequence exactly.
35
+
36
+ ### 1. Load Output Document
37
+
38
+ Read `{outputFile}` and parse YAML frontmatter for:
39
+
40
+ - `stepsCompleted` — array of completed step names
41
+ - `lastStep` — last completed step name
42
+ - `lastSaved` — timestamp of last save
43
+
44
+ **If `{outputFile}` does not exist**, display:
45
+
46
+ "⚠️ **No previous progress found.** There is no output document to resume from. Please use **[C] Create** to start a fresh workflow run."
47
+
48
+ **THEN:** Halt. Do not proceed.
49
+
50
+ ---
51
+
52
+ ### 2. Display Progress Dashboard
53
+
54
+ Display progress with ✅/⬜ indicators:
55
+
56
+ 1. ✅/⬜ Preflight & Context (step-01-preflight-and-context)
57
+ 2. ✅/⬜ Generation Mode (step-02-generation-mode)
58
+ 3. ✅/⬜ Test Strategy (step-03-test-strategy)
59
+ 4. ✅/⬜ Generate Tests + Aggregate (step-04c-aggregate)
60
+ 5. ✅/⬜ Validate & Complete (step-05-validate-and-complete)
61
+
62
+ ---
63
+
64
+ ### 3. Route to Next Step
65
+
66
+ Based on `lastStep`, load the next incomplete step:
67
+
68
+ - `'step-01-preflight-and-context'` → load `./step-02-generation-mode.md`
69
+ - `'step-02-generation-mode'` → load `./step-03-test-strategy.md`
70
+ - `'step-03-test-strategy'` → load `./step-04-generate-tests.md`
71
+ - `'step-04c-aggregate'` → load `./step-05-validate-and-complete.md`
72
+ - `'step-05-validate-and-complete'` → **Workflow already complete.** Display: "✅ **All steps completed.** Use **[V] Validate** to review outputs or **[E] Edit** to make revisions." Then halt.
73
+
74
+ **If `lastStep` does not match any value above**, display: "⚠️ **Unknown progress state** (`lastStep`: {lastStep}). Please use **[C] Create** to start fresh." Then halt.
75
+
76
+ **Otherwise**, load the identified step file, read completely, and execute.
77
+
78
+ The existing content in `{outputFile}` provides context from previously completed steps.
79
+
80
+ ---
81
+
82
+ ## 🚨 SYSTEM SUCCESS/FAILURE METRICS
83
+
84
+ ### ✅ SUCCESS:
85
+
86
+ - Output document loaded and parsed correctly
87
+ - Progress dashboard displayed accurately
88
+ - Routed to correct next step
89
+
90
+ ### ❌ SYSTEM FAILURE:
91
+
92
+ - Not loading output document
93
+ - Incorrect progress display
94
+ - Routing to wrong step
95
+
96
+ **Master Rule:** Resume MUST route to the exact next incomplete step. Never re-execute completed steps.
@@ -1,6 +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
5
  nextStepFile: './step-03-test-strategy.md'
5
6
  ---
6
7
 
@@ -81,6 +82,30 @@ If `none`:
81
82
 
82
83
  State the chosen mode and why. Then proceed.
83
84
 
85
+ ---
86
+
87
+ ## 4. Save Progress
88
+
89
+ **Save this step's accumulated work to `{outputFile}`.**
90
+
91
+ - **If `{outputFile}` does not exist** (first save), create it with YAML frontmatter:
92
+
93
+ ```yaml
94
+ ---
95
+ stepsCompleted: ['step-02-generation-mode']
96
+ lastStep: 'step-02-generation-mode'
97
+ lastSaved: '{date}'
98
+ ---
99
+ ```
100
+
101
+ Then write this step's output below the frontmatter.
102
+
103
+ - **If `{outputFile}` already exists**, update:
104
+ - Add `'step-02-generation-mode'` to `stepsCompleted` array (only if not already present)
105
+ - Set `lastStep: 'step-02-generation-mode'`
106
+ - Set `lastSaved: '{date}'`
107
+ - Append this step's output to the appropriate section.
108
+
84
109
  Load next step: `{nextStepFile}`
85
110
 
86
111
  ## 🚨 SYSTEM SUCCESS/FAILURE METRICS:
@@ -1,6 +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
5
  nextStepFile: './step-04-generate-tests.md'
5
6
  ---
6
7
 
@@ -62,6 +63,30 @@ Assign P0–P3 priorities using risk and business impact.
62
63
 
63
64
  Ensure all tests are designed to **fail before implementation** (TDD red phase).
64
65
 
66
+ ---
67
+
68
+ ## 5. Save Progress
69
+
70
+ **Save this step's accumulated work to `{outputFile}`.**
71
+
72
+ - **If `{outputFile}` does not exist** (first save), create it with YAML frontmatter:
73
+
74
+ ```yaml
75
+ ---
76
+ stepsCompleted: ['step-03-test-strategy']
77
+ lastStep: 'step-03-test-strategy'
78
+ lastSaved: '{date}'
79
+ ---
80
+ ```
81
+
82
+ Then write this step's output below the frontmatter.
83
+
84
+ - **If `{outputFile}` already exists**, update:
85
+ - Add `'step-03-test-strategy'` to `stepsCompleted` array (only if not already present)
86
+ - Set `lastStep: 'step-03-test-strategy'`
87
+ - Set `lastSaved: '{date}'`
88
+ - Append this step's output to the appropriate section.
89
+
65
90
  Load next step: `{nextStepFile}`
66
91
 
67
92
  ## 🚨 SYSTEM SUCCESS/FAILURE METRICS:
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: 'step-04c-aggregate'
3
3
  description: 'Aggregate subprocess outputs and complete ATDD test infrastructure'
4
+ outputFile: '{test_artifacts}/atdd-checklist-{story_id}.md'
4
5
  nextStepFile: './step-05-validate-and-complete.md'
5
6
  ---
6
7
 
@@ -304,6 +305,30 @@ Proceed to Step 5 when:
304
305
  - ✅ Summary statistics calculated and saved
305
306
  - ✅ Output displayed to user
306
307
 
308
+ ---
309
+
310
+ ### 8. Save Progress
311
+
312
+ **Save this step's accumulated work to `{outputFile}`.**
313
+
314
+ - **If `{outputFile}` does not exist** (first save), create it with YAML frontmatter:
315
+
316
+ ```yaml
317
+ ---
318
+ stepsCompleted: ['step-04c-aggregate']
319
+ lastStep: 'step-04c-aggregate'
320
+ lastSaved: '{date}'
321
+ ---
322
+ ```
323
+
324
+ Then write this step's output below the frontmatter.
325
+
326
+ - **If `{outputFile}` already exists**, update:
327
+ - Add `'step-04c-aggregate'` to `stepsCompleted` array (only if not already present)
328
+ - Set `lastStep: 'step-04c-aggregate'`
329
+ - Set `lastSaved: '{date}'`
330
+ - Append this step's output to the appropriate section.
331
+
307
332
  Load next step: `{nextStepFile}`
308
333
 
309
334
  ---
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: 'step-05-validate-and-complete'
3
3
  description: 'Validate ATDD outputs and summarize'
4
+ outputFile: '{test_artifacts}/atdd-checklist-{story_id}.md'
4
5
  ---
5
6
 
6
7
  # Step 5: Validate & Complete
@@ -58,6 +59,30 @@ Report:
58
59
  - Key risks or assumptions
59
60
  - Next recommended workflow (e.g., implementation or `automate`)
60
61
 
62
+ ---
63
+
64
+ ## 3. Save Progress
65
+
66
+ **Save this step's accumulated work to `{outputFile}`.**
67
+
68
+ - **If `{outputFile}` does not exist** (first save), create it with YAML frontmatter:
69
+
70
+ ```yaml
71
+ ---
72
+ stepsCompleted: ['step-05-validate-and-complete']
73
+ lastStep: 'step-05-validate-and-complete'
74
+ lastSaved: '{date}'
75
+ ---
76
+ ```
77
+
78
+ Then write this step's output below the frontmatter.
79
+
80
+ - **If `{outputFile}` already exists**, update:
81
+ - Add `'step-05-validate-and-complete'` to `stepsCompleted` array (only if not already present)
82
+ - Set `lastStep: 'step-05-validate-and-complete'`
83
+ - Set `lastSaved: '{date}'`
84
+ - Append this step's output to the appropriate section.
85
+
61
86
  ## 🚨 SYSTEM SUCCESS/FAILURE METRICS:
62
87
 
63
88
  ### ✅ SUCCESS:
@@ -29,11 +29,13 @@ This workflow uses **tri-modal step-file architecture**:
29
29
  "Welcome to the workflow. What would you like to do?"
30
30
 
31
31
  - **[C] Create** — Run the workflow
32
+ - **[R] Resume** — Resume an interrupted workflow
32
33
  - **[V] Validate** — Validate existing outputs
33
34
  - **[E] Edit** — Edit existing outputs
34
35
 
35
36
  ### 2. Route to First Step
36
37
 
37
38
  - **If C:** Load `steps-c/step-01-preflight-and-context.md`
39
+ - **If R:** Load `steps-c/step-01b-resume.md`
38
40
  - **If V:** Load `steps-v/step-01-validate.md`
39
41
  - **If E:** Load `steps-e/step-01-assess.md`
@@ -41,3 +41,10 @@ From `workflow.yaml`, resolve:
41
41
 
42
42
  Load, read completely, and execute:
43
43
  `{project-root}/_bmad/tea/workflows/testarch/automate/steps-c/step-01-preflight-and-context.md`
44
+
45
+ ### 3. Resume Support
46
+
47
+ If the user selects **Resume** mode, load, read completely, and execute:
48
+ `{project-root}/_bmad/tea/workflows/testarch/automate/steps-c/step-01b-resume.md`
49
+
50
+ This checks the output document for progress tracking frontmatter and routes to the next incomplete step.
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: 'step-01-preflight-and-context'
3
3
  description: 'Determine mode, verify framework, and load context and knowledge'
4
+ outputFile: '{test_artifacts}/automation-summary.md'
4
5
  nextStepFile: './step-02-identify-targets.md'
5
6
  knowledgeIndex: '{project-root}/_bmad/tea/testarch/tea-index.csv'
6
7
  ---
@@ -122,6 +123,30 @@ Use `{knowledgeIndex}` and load only what is required.
122
123
 
123
124
  Summarize loaded artifacts, framework, and knowledge fragments, then proceed.
124
125
 
126
+ ---
127
+
128
+ ## 6. Save Progress
129
+
130
+ **Save this step's accumulated work to `{outputFile}`.**
131
+
132
+ - **If `{outputFile}` does not exist** (first save), create it with YAML frontmatter:
133
+
134
+ ```yaml
135
+ ---
136
+ stepsCompleted: ['step-01-preflight-and-context']
137
+ lastStep: 'step-01-preflight-and-context'
138
+ lastSaved: '{date}'
139
+ ---
140
+ ```
141
+
142
+ Then write this step's output below the frontmatter.
143
+
144
+ - **If `{outputFile}` already exists**, update:
145
+ - Add `'step-01-preflight-and-context'` to `stepsCompleted` array (only if not already present)
146
+ - Set `lastStep: 'step-01-preflight-and-context'`
147
+ - Set `lastSaved: '{date}'`
148
+ - Append this step's output to the appropriate section.
149
+
125
150
  Load next step: `{nextStepFile}`
126
151
 
127
152
  ## 🚨 SYSTEM SUCCESS/FAILURE METRICS:
@@ -0,0 +1,94 @@
1
+ ---
2
+ name: 'step-01b-resume'
3
+ description: 'Resume interrupted workflow from last completed step'
4
+ outputFile: '{test_artifacts}/automation-summary.md'
5
+ ---
6
+
7
+ # Step 1b: Resume Workflow
8
+
9
+ ## STEP GOAL
10
+
11
+ Resume an interrupted workflow by loading the existing output document, displaying progress, and routing to the next incomplete step.
12
+
13
+ ## MANDATORY EXECUTION RULES
14
+
15
+ - 📖 Read the entire step file before acting
16
+ - ✅ Speak in `{communication_language}`
17
+
18
+ ---
19
+
20
+ ## EXECUTION PROTOCOLS:
21
+
22
+ - 🎯 Follow the MANDATORY SEQUENCE exactly
23
+ - 📖 Load the next step only when instructed
24
+
25
+ ## CONTEXT BOUNDARIES:
26
+
27
+ - Available context: Output document with progress frontmatter
28
+ - Focus: Load progress and route to next step
29
+ - Limits: Do not re-execute completed steps
30
+ - Dependencies: Output document must exist from a previous run
31
+
32
+ ## MANDATORY SEQUENCE
33
+
34
+ **CRITICAL:** Follow this sequence exactly.
35
+
36
+ ### 1. Load Output Document
37
+
38
+ Read `{outputFile}` and parse YAML frontmatter for:
39
+
40
+ - `stepsCompleted` — array of completed step names
41
+ - `lastStep` — last completed step name
42
+ - `lastSaved` — timestamp of last save
43
+
44
+ **If `{outputFile}` does not exist**, display:
45
+
46
+ "⚠️ **No previous progress found.** There is no output document to resume from. Please use **[C] Create** to start a fresh workflow run."
47
+
48
+ **THEN:** Halt. Do not proceed.
49
+
50
+ ---
51
+
52
+ ### 2. Display Progress Dashboard
53
+
54
+ Display progress with ✅/⬜ indicators:
55
+
56
+ 1. ✅/⬜ Preflight & Context (step-01-preflight-and-context)
57
+ 2. ✅/⬜ Identify Targets (step-02-identify-targets)
58
+ 3. ✅/⬜ Generate Tests + Aggregate (step-03c-aggregate)
59
+ 4. ✅/⬜ Validate & Summarize (step-04-validate-and-summarize)
60
+
61
+ ---
62
+
63
+ ### 3. Route to Next Step
64
+
65
+ Based on `lastStep`, load the next incomplete step:
66
+
67
+ - `'step-01-preflight-and-context'` → load `./step-02-identify-targets.md`
68
+ - `'step-02-identify-targets'` → load `./step-03-generate-tests.md`
69
+ - `'step-03c-aggregate'` → load `./step-04-validate-and-summarize.md`
70
+ - `'step-04-validate-and-summarize'` → **Workflow already complete.** Display: "✅ **All steps completed.** Use **[V] Validate** to review outputs or **[E] Edit** to make revisions." Then halt.
71
+
72
+ **If `lastStep` does not match any value above**, display: "⚠️ **Unknown progress state** (`lastStep`: {lastStep}). Please use **[C] Create** to start fresh." Then halt.
73
+
74
+ **Otherwise**, load the identified step file, read completely, and execute.
75
+
76
+ The existing content in `{outputFile}` provides context from previously completed steps.
77
+
78
+ ---
79
+
80
+ ## 🚨 SYSTEM SUCCESS/FAILURE METRICS
81
+
82
+ ### ✅ SUCCESS:
83
+
84
+ - Output document loaded and parsed correctly
85
+ - Progress dashboard displayed accurately
86
+ - Routed to correct next step
87
+
88
+ ### ❌ SYSTEM FAILURE:
89
+
90
+ - Not loading output document
91
+ - Incorrect progress display
92
+ - Routing to wrong step
93
+
94
+ **Master Rule:** Resume MUST route to the exact next incomplete step. Never re-execute completed steps.
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: 'step-02-identify-targets'
3
3
  description: 'Identify automation targets and create coverage plan'
4
+ outputFile: '{test_artifacts}/automation-summary.md'
4
5
  nextStepFile: './step-03-generate-tests.md'
5
6
  ---
6
7
 
@@ -94,6 +95,30 @@ Produce a concise coverage plan:
94
95
  - Priority assignments
95
96
  - Justification for coverage scope (critical-paths/comprehensive/selective)
96
97
 
98
+ ---
99
+
100
+ ## 5. Save Progress
101
+
102
+ **Save this step's accumulated work to `{outputFile}`.**
103
+
104
+ - **If `{outputFile}` does not exist** (first save), create it with YAML frontmatter:
105
+
106
+ ```yaml
107
+ ---
108
+ stepsCompleted: ['step-02-identify-targets']
109
+ lastStep: 'step-02-identify-targets'
110
+ lastSaved: '{date}'
111
+ ---
112
+ ```
113
+
114
+ Then write this step's output below the frontmatter.
115
+
116
+ - **If `{outputFile}` already exists**, update:
117
+ - Add `'step-02-identify-targets'` to `stepsCompleted` array (only if not already present)
118
+ - Set `lastStep: 'step-02-identify-targets'`
119
+ - Set `lastSaved: '{date}'`
120
+ - Append this step's output to the appropriate section.
121
+
97
122
  Load next step: `{nextStepFile}`
98
123
 
99
124
  ## 🚨 SYSTEM SUCCESS/FAILURE METRICS: