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.
- package/docs/explanation/tea-overview.md +1 -1
- package/docs/how-to/customization/configure-browser-automation.md +1 -1
- package/eslint.config.mjs +0 -11
- package/package.json +1 -3
- package/release_notes.md +13 -2
- package/src/module-help.csv +3 -3
- package/src/module.yaml +29 -0
- package/src/testarch/knowledge/playwright-cli.md +1 -1
- package/src/workflows/testarch/atdd/atdd-checklist-template.md +6 -0
- package/src/workflows/testarch/atdd/instructions.md +7 -0
- package/src/workflows/testarch/atdd/steps-c/step-01-preflight-and-context.md +25 -0
- package/src/workflows/testarch/atdd/steps-c/step-01b-resume.md +96 -0
- package/src/workflows/testarch/atdd/steps-c/step-02-generation-mode.md +25 -0
- package/src/workflows/testarch/atdd/steps-c/step-03-test-strategy.md +25 -0
- package/src/workflows/testarch/atdd/steps-c/step-04c-aggregate.md +25 -0
- package/src/workflows/testarch/atdd/steps-c/step-05-validate-and-complete.md +25 -0
- package/src/workflows/testarch/atdd/workflow.md +2 -0
- package/src/workflows/testarch/automate/instructions.md +7 -0
- package/src/workflows/testarch/automate/steps-c/step-01-preflight-and-context.md +25 -0
- package/src/workflows/testarch/automate/steps-c/step-01b-resume.md +94 -0
- package/src/workflows/testarch/automate/steps-c/step-02-identify-targets.md +25 -0
- package/src/workflows/testarch/automate/steps-c/step-03c-aggregate.md +25 -0
- package/src/workflows/testarch/automate/steps-c/step-04-validate-and-summarize.md +24 -0
- package/src/workflows/testarch/automate/workflow.md +2 -0
- package/src/workflows/testarch/ci/instructions.md +7 -0
- package/src/workflows/testarch/ci/steps-c/step-01-preflight.md +25 -0
- package/src/workflows/testarch/ci/steps-c/step-01b-resume.md +110 -0
- package/src/workflows/testarch/ci/steps-c/step-02-generate-pipeline.md +27 -2
- package/src/workflows/testarch/ci/steps-c/step-03-configure-quality-gates.md +25 -0
- package/src/workflows/testarch/ci/steps-c/step-04-validate-and-summary.md +25 -0
- package/src/workflows/testarch/ci/workflow.md +2 -0
- package/src/workflows/testarch/framework/instructions.md +7 -0
- package/src/workflows/testarch/framework/steps-c/step-01-preflight.md +25 -0
- package/src/workflows/testarch/framework/steps-c/step-01b-resume.md +116 -0
- package/src/workflows/testarch/framework/steps-c/step-02-select-framework.md +25 -0
- package/src/workflows/testarch/framework/steps-c/step-03-scaffold-framework.md +25 -0
- package/src/workflows/testarch/framework/steps-c/step-04-docs-and-scripts.md +23 -0
- package/src/workflows/testarch/framework/steps-c/step-05-validate-and-summary.md +25 -0
- package/src/workflows/testarch/framework/workflow.md +2 -0
- package/src/workflows/testarch/nfr-assess/instructions.md +7 -0
- package/src/workflows/testarch/nfr-assess/nfr-report-template.md +6 -0
- package/src/workflows/testarch/nfr-assess/steps-c/step-01-load-context.md +25 -0
- package/src/workflows/testarch/nfr-assess/steps-c/step-01b-resume.md +106 -0
- package/src/workflows/testarch/nfr-assess/steps-c/step-02-define-thresholds.md +25 -0
- package/src/workflows/testarch/nfr-assess/steps-c/step-03-gather-evidence.md +25 -0
- package/src/workflows/testarch/nfr-assess/steps-c/step-04e-aggregate-nfr.md +28 -0
- package/src/workflows/testarch/nfr-assess/steps-c/step-05-generate-report.md +25 -1
- package/src/workflows/testarch/nfr-assess/workflow.md +2 -0
- package/src/workflows/testarch/test-design/instructions.md +7 -0
- package/src/workflows/testarch/test-design/steps-c/step-01-detect-mode.md +25 -0
- package/src/workflows/testarch/test-design/steps-c/step-01b-resume.md +102 -0
- package/src/workflows/testarch/test-design/steps-c/step-02-load-context.md +25 -0
- package/src/workflows/testarch/test-design/steps-c/step-03-risk-and-testability.md +25 -0
- package/src/workflows/testarch/test-design/steps-c/step-04-coverage-plan.md +25 -0
- package/src/workflows/testarch/test-design/steps-c/step-05-generate-output.md +25 -0
- package/src/workflows/testarch/test-design/test-design-architecture-template.md +6 -0
- package/src/workflows/testarch/test-design/test-design-qa-template.md +6 -0
- package/src/workflows/testarch/test-design/test-design-template.md +6 -0
- package/src/workflows/testarch/test-design/workflow.md +2 -0
- package/src/workflows/testarch/test-review/instructions.md +7 -0
- package/src/workflows/testarch/test-review/steps-c/step-01-load-context.md +25 -0
- package/src/workflows/testarch/test-review/steps-c/step-01b-resume.md +104 -0
- package/src/workflows/testarch/test-review/steps-c/step-02-discover-tests.md +25 -0
- package/src/workflows/testarch/test-review/steps-c/step-03f-aggregate-scores.md +28 -0
- package/src/workflows/testarch/test-review/steps-c/step-04-generate-report.md +25 -1
- package/src/workflows/testarch/test-review/test-review-template.md +6 -0
- package/src/workflows/testarch/test-review/workflow.md +2 -0
- package/src/workflows/testarch/trace/instructions.md +7 -0
- package/src/workflows/testarch/trace/steps-c/step-01-load-context.md +25 -0
- package/src/workflows/testarch/trace/steps-c/step-01b-resume.md +102 -0
- package/src/workflows/testarch/trace/steps-c/step-02-discover-tests.md +25 -0
- package/src/workflows/testarch/trace/steps-c/step-03-map-criteria.md +25 -0
- package/src/workflows/testarch/trace/steps-c/step-04-analyze-gaps.md +27 -2
- package/src/workflows/testarch/trace/steps-c/step-05-gate-decision.md +14 -0
- package/src/workflows/testarch/trace/trace-template.md +6 -0
- package/src/workflows/testarch/trace/workflow.md +2 -0
- package/test/test-installation-components.js +14 -5
- package/tools/build-docs.js +1 -1
- 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
|
-
|
|
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.
|
|
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.
|
|
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/
|
|
22
|
+
**Full Changelog**: https://github.com/bmad-code-org/bmad-method-test-architecture-enterprise/compare/v1.0.1...v1.1.0
|
package/src/module-help.csv
CHANGED
|
@@ -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
|
|
4
|
-
tea,3-solutioning,
|
|
5
|
-
tea,3-solutioning,
|
|
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
|
-
|
|
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
|
|
|
@@ -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:
|