bmad-method-test-architecture-enterprise 2.0.1-next.2 → 2.0.1-next.3
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/.claude-plugin/marketplace.json +2 -2
- package/README.md +6 -1
- package/package.json +1 -1
- package/skills/bmad-tea/SKILL.md +4 -0
- package/skills/bmad-tea/customize.toml +2 -2
- package/skills/bmad-teach-me-testing/data/session-content-map.yaml +2 -1
- package/skills/bmad-teach-me-testing/data/tea-resources-index.yaml +2 -0
- package/skills/bmad-teach-me-testing/resources/tea-completion-summary.example.md +1 -1
- package/skills/bmad-teach-me-testing/steps-c/step-04-session-01.md +2 -1
- package/skills/bmad-teach-me-testing/steps-c/step-04-session-03.md +10 -0
- package/skills/bmad-teach-me-testing/steps-c/step-05-completion.md +2 -2
- package/skills/bmad-teach-me-testing/templates/completion-summary-template.md +1 -1
- package/skills/bmad-testarch-ci/SKILL.md +6 -81
- package/skills/bmad-testarch-ci/bmod.toml +1 -0
- package/skills/bmad-testarch-ci/workflow.yaml +6 -3
- package/skills/bmad-testarch-evaluate/SKILL.md +1 -1
- package/skills/bmad-testarch-evaluate/assets/inspection-record.md +1 -1
- package/skills/bmad-testarch-evaluate/references/ci.md +5 -5
- package/skills/bmad-testarch-framework/SKILL.md +28 -20
- package/skills/bmad-testarch-framework/checklist.md +2 -0
- package/skills/{bmad-testarch-ci → bmad-testarch-framework/ci}/checklist.md +9 -7
- package/skills/{bmad-testarch-ci → bmad-testarch-framework/ci}/instructions.md +9 -8
- package/skills/bmad-testarch-framework/ci/steps-c/step-01-preflight.md +212 -0
- package/skills/{bmad-testarch-ci → bmad-testarch-framework/ci}/steps-c/step-01b-resume.md +15 -5
- package/skills/{bmad-testarch-ci → bmad-testarch-framework/ci}/steps-c/step-02-generate-pipeline.md +23 -13
- package/skills/{bmad-testarch-ci → bmad-testarch-framework/ci}/steps-c/step-03-configure-quality-gates.md +9 -3
- package/skills/{bmad-testarch-ci → bmad-testarch-framework/ci}/steps-c/step-03b-render-evaluation-plans.md +7 -5
- package/skills/{bmad-testarch-ci → bmad-testarch-framework/ci}/steps-c/step-04-validate-and-summary.md +9 -7
- package/skills/{bmad-testarch-ci → bmad-testarch-framework/ci}/steps-e/step-01-assess.md +7 -3
- package/skills/bmad-testarch-framework/ci/steps-e/step-02-apply-edit.md +67 -0
- package/skills/{bmad-testarch-ci → bmad-testarch-framework/ci}/steps-v/step-01-validate.md +8 -10
- package/skills/bmad-testarch-framework/customize.toml +4 -0
- package/skills/bmad-testarch-framework/instructions.md +5 -11
- package/skills/bmad-testarch-framework/resources/setup-parallel.md +25 -0
- package/skills/bmad-testarch-framework/resources/setup-phase-completion.md +39 -0
- package/skills/bmad-testarch-framework/resources/setup-routing.md +58 -0
- package/skills/bmad-testarch-framework/resources/setup-run-progress.example.md +83 -0
- package/skills/bmad-testarch-framework/resources/setup-state.md +60 -0
- package/skills/bmad-testarch-framework/steps-c/step-01-preflight.md +4 -0
- package/skills/bmad-testarch-framework/steps-c/step-01b-resume.md +11 -1
- package/skills/bmad-testarch-framework/steps-c/step-02-select-framework.md +3 -1
- package/skills/bmad-testarch-framework/steps-c/step-03-scaffold-framework.md +8 -2
- package/skills/bmad-testarch-framework/steps-c/step-04-docs-and-scripts.md +2 -0
- package/skills/bmad-testarch-framework/steps-c/step-05-validate-and-summary.md +8 -6
- package/skills/bmad-testarch-framework/steps-e/step-01-assess.md +5 -1
- package/skills/bmad-testarch-framework/steps-e/step-02-apply-edit.md +5 -9
- package/skills/bmad-testarch-framework/steps-v/step-01-validate.md +6 -8
- package/skills/bmad-testarch-framework/workflow.yaml +6 -1
- package/skills/bmod-tea/bmod.toml +2 -2
- package/skills/bmod-tea/help/help.md +3 -3
- package/skills/bmad-testarch-ci/steps-c/step-01-preflight.md +0 -189
- package/skills/bmad-testarch-ci/steps-e/step-02-apply-edit.md +0 -71
- /package/skills/{bmad-testarch-ci → bmad-testarch-framework/ci}/azure-pipelines-template.yaml +0 -0
- /package/skills/{bmad-testarch-ci → bmad-testarch-framework/ci}/github-actions-template.yaml +0 -0
- /package/skills/{bmad-testarch-ci → bmad-testarch-framework/ci}/gitlab-ci-template.yaml +0 -0
- /package/skills/{bmad-testarch-ci → bmad-testarch-framework/ci}/harness-pipeline-template.yaml +0 -0
- /package/skills/{bmad-testarch-ci → bmad-testarch-framework/ci}/jenkins-pipeline-template.groovy +0 -0
- /package/skills/{bmad-testarch-ci → bmad-testarch-framework/ci}/resources/ci-pipeline-progress.example.md +0 -0
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
{
|
|
31
31
|
"name": "bmad-method-test-architecture-enterprise",
|
|
32
32
|
"source": "./",
|
|
33
|
-
"description": "Master Test Architect module for quality strategy, test automation, CI/CD quality gates, and structured testing education. Part of the BMad Method ecosystem.",
|
|
34
|
-
"version": "2.0.1-next.
|
|
33
|
+
"description": "Master Test Architect module for quality strategy, test automation, combined framework and CI setup, CI/CD quality gates, and structured testing education. The CI skill remains a compatibility entry. Part of the BMad Method ecosystem.",
|
|
34
|
+
"version": "2.0.1-next.3",
|
|
35
35
|
"author": {
|
|
36
36
|
"name": "Murat K Ozcan (TEA Creator) & Brian (BMad) Madison"
|
|
37
37
|
},
|
package/README.md
CHANGED
|
@@ -57,7 +57,7 @@ Each workflow can run directly in a fresh session.
|
|
|
57
57
|
| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ---- | ------------------------------------------------------ |
|
|
58
58
|
| [Teach Me Testing](https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/how-to/workflows/teach-me-testing/) | `/bmad-teach-me-testing` | TMT | Learn testing through seven sessions |
|
|
59
59
|
| [Test Design](https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/how-to/workflows/run-test-design/) | `/bmad-testarch-test-design` | TD | Plan risks, coverage, and NFR evidence |
|
|
60
|
-
| [Framework Setup](https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/how-to/workflows/setup-test-framework/) | `/bmad-testarch-framework` | TF |
|
|
60
|
+
| [Framework Setup](https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/how-to/workflows/setup-test-framework/) | `/bmad-testarch-framework` | TF | Set up a test framework, CI, or both |
|
|
61
61
|
| [CI Setup](https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/how-to/workflows/setup-ci/) | `/bmad-testarch-ci` | CI | Connect tests and quality checks to CI |
|
|
62
62
|
| [ATDD](https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/how-to/workflows/run-atdd/) | `/bmad-testarch-atdd` | AT | Write acceptance scaffolds before implementation |
|
|
63
63
|
| [Automate](https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/how-to/workflows/run-automate/) | `/bmad-testarch-automate` | TA | Add coverage to implemented features |
|
|
@@ -66,6 +66,11 @@ Each workflow can run directly in a fresh session.
|
|
|
66
66
|
| [Evaluate](https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/tutorials/evaluate-your-first-skill/) | `/bmad-testarch-evaluate` | EV | Build and run a behavioral evaluation |
|
|
67
67
|
| [Trace](https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/how-to/workflows/run-trace/) | `/bmad-testarch-trace` | TR | Map requirements to tests and decide a release gate |
|
|
68
68
|
|
|
69
|
+
Framework and CI setup share one skill, `bmad-testarch-framework`.
|
|
70
|
+
Ask for framework only, CI only, or both; TEA infers the scope from your prompt and asks "Do you want CI too?" once when CI scope is unclear in an interactive session. An unattended request with unclear scope runs framework setup only and states that CI was excluded.
|
|
71
|
+
`/bmad-testarch-ci` and the `CI` menu code still work and start the same skill's CI setup, with your existing CI customizations.
|
|
72
|
+
Create, Resume, Validate, and Edit remain available for the selected setup scope.
|
|
73
|
+
|
|
69
74
|
For Codex, replace the leading `/` in the table with `$`.
|
|
70
75
|
The agent menu also accepts `GATE` to route you through test review, NFR evidence audit, and trace Phase 2.
|
|
71
76
|
|
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": "2.0.1-next.
|
|
4
|
+
"version": "2.0.1-next.3",
|
|
5
5
|
"description": "Master Test Architect for quality strategy, test automation, and release gates",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"bmad",
|
package/skills/bmad-tea/SKILL.md
CHANGED
|
@@ -76,6 +76,10 @@ Otherwise render `{agent.menu}` as a numbered table: `Code`, `Description`, `Act
|
|
|
76
76
|
|
|
77
77
|
Dispatch on a clear match by invoking the item's `skill` or executing its `prompt`. Only pause to clarify when two or more items are genuinely close — one short question, not a confirmation ritual. When nothing on the menu fits, just continue the conversation; chat, clarifying questions, and the `bmad` skill are always fair game.
|
|
78
78
|
|
|
79
|
+
### Framework and CI Setup Routing
|
|
80
|
+
|
|
81
|
+
TF invokes `bmad-testarch-framework`, the canonical owner of framework and CI setup. CI invokes the installed `bmad-testarch-ci` compatibility entry with CI scope preset. Preserve both codes, names, custom menu overrides, requested scope and operation. A request for framework and pipeline setup routes directly to TF with `setup_scope = both`. The shared router asks “Do you want CI too?” once when setup leaves CI intent unclear.
|
|
82
|
+
|
|
79
83
|
### Routing Ambiguity Boundaries
|
|
80
84
|
|
|
81
85
|
Before dispatching, list the menu items directly supported by facts in the user's message. One supported item is a clear route. Two or more supported items require the missing deciding information when the user has supplied no priority, sequence, or requested deliverable that selects one.
|
|
@@ -69,12 +69,12 @@ skill = "bmad-testarch-test-design"
|
|
|
69
69
|
|
|
70
70
|
[[agent.menu]]
|
|
71
71
|
code = "TF"
|
|
72
|
-
description = "Test Framework
|
|
72
|
+
description = "Test Framework: initialize framework architecture and optional CI/CD quality pipeline"
|
|
73
73
|
skill = "bmad-testarch-framework"
|
|
74
74
|
|
|
75
75
|
[[agent.menu]]
|
|
76
76
|
code = "CI"
|
|
77
|
-
description = "Continuous Integration
|
|
77
|
+
description = "Continuous Integration: scaffold CI/CD quality pipeline through the combined framework skill"
|
|
78
78
|
skill = "bmad-testarch-ci"
|
|
79
79
|
|
|
80
80
|
[[agent.menu]]
|
|
@@ -28,7 +28,7 @@ sessions:
|
|
|
28
28
|
- "What is TEA"
|
|
29
29
|
- "TEA Lite approach"
|
|
30
30
|
- "Engagement models"
|
|
31
|
-
- "
|
|
31
|
+
- "10 workflows overview"
|
|
32
32
|
|
|
33
33
|
session-02-concepts:
|
|
34
34
|
docs:
|
|
@@ -79,6 +79,7 @@ sessions:
|
|
|
79
79
|
workflows_referenced:
|
|
80
80
|
- framework
|
|
81
81
|
key_concepts:
|
|
82
|
+
- "Framework setup scope: framework, CI, or both; CI setup command"
|
|
82
83
|
- "Fixture composition"
|
|
83
84
|
- "Network interception patterns"
|
|
84
85
|
- "Data factory pattern"
|
|
@@ -20,11 +20,13 @@ documentation:
|
|
|
20
20
|
local: "/docs/how-to/workflows/setup-test-framework.md"
|
|
21
21
|
online: "/how-to/workflows/setup-test-framework/"
|
|
22
22
|
workflow: framework
|
|
23
|
+
description: "One setup skill for framework, CI, or both; prompt selects scope"
|
|
23
24
|
|
|
24
25
|
- name: "Set Up CI Pipeline"
|
|
25
26
|
local: "/docs/how-to/workflows/setup-ci.md"
|
|
26
27
|
online: "/how-to/workflows/setup-ci/"
|
|
27
28
|
workflow: ci
|
|
29
|
+
description: "CI setup through the framework skill"
|
|
28
30
|
|
|
29
31
|
- name: "Test Design"
|
|
30
32
|
local: "/docs/how-to/workflows/run-test-design.md"
|
|
@@ -45,7 +45,7 @@ average_score: 92
|
|
|
45
45
|
Dana Whitfield has demonstrated proficiency in:
|
|
46
46
|
|
|
47
47
|
- ✅ **Testing Fundamentals:** Risk-based testing, test pyramid, test types, P0-P3 prioritization
|
|
48
|
-
- ✅ **TEA Methodology:**
|
|
48
|
+
- ✅ **TEA Methodology:** 10 workflows (Teach Me Testing, Framework, Test Design, ATDD, Automate, Test Review, Trace, NFR, CI, Evaluate)
|
|
49
49
|
- ✅ **Architecture Patterns:** Fixture composition, network-first patterns, data factories, step-file architecture
|
|
50
50
|
- ✅ **Test Design:** Risk assessment (Probability × Impact), coverage planning, test levels framework
|
|
51
51
|
- ✅ **Test Development:** ATDD red-green TDD approach, test automation, API testing patterns
|
|
@@ -94,6 +94,7 @@ Present this content (mostly autonomous, clear and educational):
|
|
|
94
94
|
TEA is a comprehensive test architecture framework that provides:
|
|
95
95
|
|
|
96
96
|
- **10 Workflows:** Teach Me Testing, Test Design, Framework, CI, ATDD, Automate, Test Review, NFR Evidence Audit, Trace, Evaluate
|
|
97
|
+
- **Framework and CI setup:** One `bmad-testarch-framework` skill handles framework only, CI only, or both. The `bmad-testarch-ci` command and `CI` menu code start its CI setup. TEA infers the scope from your prompt and asks "Do you want CI too?" once when unclear in an interactive session. An unattended request with unclear scope sets up the framework only. Create, Resume, Validate, and Edit choose the operation.
|
|
97
98
|
- **59 Knowledge Fragments:** Distilled expertise on patterns, best practices, Playwright Utils
|
|
98
99
|
- **Quality Standards:** Definition of Done with execution limits (no flaky tests, no hard waits, etc.)
|
|
99
100
|
- **Risk-Based Testing:** P0-P3 matrix for prioritizing test coverage
|
|
@@ -306,7 +307,7 @@ duration: '30 min'
|
|
|
306
307
|
|
|
307
308
|
## Key Concepts Covered
|
|
308
309
|
|
|
309
|
-
1. **TEA Framework:**
|
|
310
|
+
1. **TEA Framework:** 10 workflows + 59 knowledge fragments + quality standards
|
|
310
311
|
2. **Risk-Based Testing:** P0-P3 prioritization matrix
|
|
311
312
|
3. **Quality Standards:** Definition of Done (no flaky tests, no hard waits, stateless, self-cleaning)
|
|
312
313
|
4. **Engagement Models:** Lite, Solo, Integrated, Enterprise, Brownfield
|
|
@@ -213,6 +213,16 @@ const user = createUser(); // defaults
|
|
|
213
213
|
|
|
214
214
|
**Documentation:** <https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/explanation/step-file-architecture/>"
|
|
215
215
|
|
|
216
|
+
### 6a. Teaching: Framework and CI Setup
|
|
217
|
+
|
|
218
|
+
Explain that `bmad-testarch-framework` is one setup skill for framework only, CI only, or both.
|
|
219
|
+
The prompt determines scope; if CI scope is unclear in an interactive session, ask once: "Do you want CI too?" An unattended request with unclear scope sets up the framework only and states that CI was excluded.
|
|
220
|
+
Framework scope covers stack selection, fixtures, scaffold, scripts, and the write-time quality hook.
|
|
221
|
+
CI scope covers pipeline generation, quality gates, and evaluation-plan rendering.
|
|
222
|
+
For both, agree the stack, framework, and test commands first. Scaffold and pipeline generation can then run in parallel, with joint validation after both finish. A CI request without a framework offers the framework phase first.
|
|
223
|
+
`bmad-testarch-ci` and `CI` still start CI setup, while `TF` starts framework setup.
|
|
224
|
+
Create starts setup, Validate reports checks without repairing outputs, and Edit revises the selected outputs and checks those changes. Resume continues an interrupted run, whatever its scope and operation.
|
|
225
|
+
|
|
216
226
|
### 7. Quiz (3 questions)
|
|
217
227
|
|
|
218
228
|
"### ✅ Knowledge Check"
|
|
@@ -170,7 +170,7 @@ average_score: { average_score }
|
|
|
170
170
|
{user_name} has demonstrated proficiency in:
|
|
171
171
|
|
|
172
172
|
- ✅ **Testing Fundamentals:** Risk-based testing, test pyramid, test types, P0-P3 prioritization
|
|
173
|
-
- ✅ **TEA Methodology:**
|
|
173
|
+
- ✅ **TEA Methodology:** 10 workflows (Teach Me Testing, Framework, Test Design, ATDD, Automate, Test Review, Trace, NFR, CI, Evaluate)
|
|
174
174
|
- ✅ **Architecture Patterns:** Fixture composition, network-first patterns, data factories, step-file architecture
|
|
175
175
|
- ✅ **Test Design:** Risk assessment (Probability × Impact), coverage planning, test levels framework
|
|
176
176
|
- ✅ **Test Development:** ATDD red-green TDD approach, test automation, API testing patterns
|
|
@@ -283,7 +283,7 @@ You've successfully completed the entire TEA Academy curriculum!
|
|
|
283
283
|
**You're now equipped to:**
|
|
284
284
|
|
|
285
285
|
- Write high-quality tests following TEA principles
|
|
286
|
-
- Use all
|
|
286
|
+
- Use all 10 TEA workflows effectively
|
|
287
287
|
- Apply risk-based testing (P0-P3 prioritization)
|
|
288
288
|
- Implement architecture patterns (fixtures, network-first)
|
|
289
289
|
- Maintain quality through Test Review and Trace
|
|
@@ -45,7 +45,7 @@ average_score: { { average_score } }
|
|
|
45
45
|
{{user_name}} has demonstrated proficiency in:
|
|
46
46
|
|
|
47
47
|
- ✅ **Testing Fundamentals:** Risk-based testing, test pyramid, test types
|
|
48
|
-
- ✅ **TEA Methodology:**
|
|
48
|
+
- ✅ **TEA Methodology:** 10 workflows, engagement models, quality standards
|
|
49
49
|
- ✅ **Architecture Patterns:** Fixtures, network-first patterns, data factories
|
|
50
50
|
- ✅ **Test Design:** Risk assessment, coverage planning, P0-P3 prioritization
|
|
51
51
|
- ✅ **Test Development:** ATDD red-green approach, test automation
|
|
@@ -3,87 +3,12 @@ name: bmad-testarch-ci
|
|
|
3
3
|
description: 'Scaffold CI/CD quality pipeline with test execution. Use when the user says "lets setup CI pipeline" or "I want to create quality gates"'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# CI/CD
|
|
6
|
+
# CI/CD Setup Compatibility Entry
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
`bmad-testarch-framework` owns framework and CI setup. This installed name and the CI menu code forward to its CI phase.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
1. Preserve the original request, its supplied artifacts, and its create/resume/validate/edit operation. Preset `setup_scope = ci` and `setup_entry = bmad-testarch-ci`. An explicit request for both scopes sets `setup_scope = both`.
|
|
11
|
+
2. Set `ci-skill-root` to this directory. Set `skill-root` to its sibling `bmad-testarch-framework` directory. Require its `SKILL.md`, `{skill-root}/resources/setup-routing.md`, and `{skill-root}/ci/steps-c/step-01-preflight.md`. If any are missing, explain that the canonical framework skill is missing or older than combined setup support and offer to install/update it with `npx skills add bmad-code-org/bmad-method-test-architecture-enterprise --skill bmad-testarch-framework`; continue only after installation succeeds and all three required files exist.
|
|
12
|
+
3. Load `{skill-root}/SKILL.md` completely and execute its activation and shared router with the preset scope and original operation. Keep `{skill-root}` bound to that canonical directory throughout all phases. Do not run a second mode menu or CI-scope question.
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
## Conventions
|
|
15
|
-
|
|
16
|
-
- Bare paths (e.g. `instructions.md`) resolve from the skill root.
|
|
17
|
-
- `{skill-root}` resolves to this skill's installed directory (where `customize.toml` lives).
|
|
18
|
-
- `{project-root}` is the nearest folder containing `_bmad/`, starting at the project working directory and moving up through its parents.
|
|
19
|
-
- `{tea-knowledge}` is the `knowledge/` folder of the `bmod-tea` skill, installed beside this one: `{skill-root}/../bmod-tea/knowledge`. `tea-index.csv` there lists every fragment by a path relative to that folder.
|
|
20
|
-
- `{skill-name}` resolves to the skill directory's basename.
|
|
21
|
-
- Resolve sibling workflow files such as `instructions.md`, `checklist.md`, `steps-c/...`, `steps-e/...`, `steps-v/...`, and templates from `{skill-root}`.
|
|
22
|
-
|
|
23
|
-
## On Activation
|
|
24
|
-
|
|
25
|
-
### Step 1: Resolve the Workflow Block
|
|
26
|
-
|
|
27
|
-
Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow`
|
|
28
|
-
|
|
29
|
-
**If the script fails**, resolve the `workflow` block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:
|
|
30
|
-
|
|
31
|
-
1. `{skill-root}/customize.toml` — defaults
|
|
32
|
-
2. `{project-root}/_bmad/custom/{skill-name}.toml` — team overrides
|
|
33
|
-
3. `{project-root}/_bmad/custom/{skill-name}.user.toml` — personal overrides
|
|
34
|
-
|
|
35
|
-
Any missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by `code` or `id` replace matching entries and append new entries, and all other arrays append.
|
|
36
|
-
|
|
37
|
-
### Step 2: Execute Prepend Steps
|
|
38
|
-
|
|
39
|
-
Execute each entry in `{workflow.activation_steps_prepend}` in order before proceeding.
|
|
40
|
-
|
|
41
|
-
### Step 3: Load Persistent Facts
|
|
42
|
-
|
|
43
|
-
Treat every entry in `{workflow.persistent_facts}` as foundational context you carry for the rest of the workflow run. Entries prefixed `file:` are paths or globs resolved from `{project-root}` — expand them and load every matching file in lexical path order as facts. All other entries are facts verbatim.
|
|
44
|
-
|
|
45
|
-
### Step 4: Load Config
|
|
46
|
-
|
|
47
|
-
Run `uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key core --key modules.tea`. If the script fails, merge `{project-root}/_bmad/config.toml`, `{project-root}/_bmad/custom/config.toml` and `{project-root}/_bmad/custom/config.user.toml` yourself, in that order, with the merge rules above. If `_bmad/config.toml` is missing or has no `modules.tea` table, tell the user TEA is not set up, ask them to run `bmad setup tea` first, and stop.
|
|
48
|
-
|
|
49
|
-
Each `core` and `modules.tea` key is available as `{<key>}`, and as `config.<key>` in later steps. Replace `{project-root}` inside a value with the project root. Setup answers are strings: read `"true"` and `"false"` as booleans.
|
|
50
|
-
|
|
51
|
-
If `{tea-knowledge}/tea-index.csv` does not exist, the TEA knowledge base is not installed. Tell the user, offer to install it with `npx skills add bmad-code-org/bmad-method-test-architecture-enterprise --skill bmod-tea`, run that on a yes, and stop until it is there.
|
|
52
|
-
|
|
53
|
-
### Step 5: Greet the User
|
|
54
|
-
|
|
55
|
-
Greet `{user_name}`, speaking in `{communication_language}`.
|
|
56
|
-
|
|
57
|
-
### Step 6: Execute Append Steps
|
|
58
|
-
|
|
59
|
-
Execute each entry in `{workflow.activation_steps_append}` in order.
|
|
60
|
-
|
|
61
|
-
Activation is complete. Begin the workflow below.
|
|
62
|
-
|
|
63
|
-
## Workflow Architecture
|
|
64
|
-
|
|
65
|
-
This workflow uses **tri-modal step-file architecture**:
|
|
66
|
-
|
|
67
|
-
- **Create mode (steps-c/)**: primary execution flow for new runs and resume continuation
|
|
68
|
-
- **Validate mode (steps-v/)**: validation against checklist
|
|
69
|
-
- **Edit mode (steps-e/)**: revise existing outputs
|
|
70
|
-
|
|
71
|
-
Create and edit modes both detect `ci/evaluation-ci-plan.json` files and render them into the pipeline (`steps-c/step-03b-render-evaluation-plans.md`). The Evaluate skill's CI stage invokes this workflow in edit mode on an existing pipeline file, or in create mode when the repository has none, once it has written a plan.
|
|
72
|
-
|
|
73
|
-
## Initialization Sequence
|
|
74
|
-
|
|
75
|
-
### 1. Mode Determination
|
|
76
|
-
|
|
77
|
-
"Welcome to the workflow. What would you like to do?"
|
|
78
|
-
|
|
79
|
-
- **[C] Create** — Run the workflow from the beginning
|
|
80
|
-
- **[R] Resume** — Resume an interrupted Create workflow
|
|
81
|
-
- **[V] Validate** — Validate existing outputs
|
|
82
|
-
- **[E] Edit** — Edit existing outputs
|
|
83
|
-
|
|
84
|
-
### 2. Route to First Step
|
|
85
|
-
|
|
86
|
-
- **If C:** Load `{skill-root}/steps-c/step-01-preflight.md`
|
|
87
|
-
- **If R:** Load `{skill-root}/steps-c/step-01b-resume.md` (Create-mode continuation)
|
|
88
|
-
- **If V:** Load `{skill-root}/steps-v/step-01-validate.md`
|
|
89
|
-
- **If E:** Load `{skill-root}/steps-e/step-01-assess.md`
|
|
14
|
+
The canonical router resolves this entry's `customize.toml`, `_bmad/custom/bmad-testarch-ci.toml`, and `_bmad/custom/bmad-testarch-ci.user.toml` when the CI phase activates. It preserves legacy activation steps, persistent facts, `ci_platform`, and `on_complete` hooks. Existing CI checkpoint and validation-report paths remain under `{test_artifacts}/ci/`, including their legacy migration rules.
|
|
@@ -6,13 +6,16 @@ description: 'Scaffold CI/CD quality pipeline with test execution. Use when the
|
|
|
6
6
|
# Config (test_artifacts, user_name, languages) is resolved at activation in SKILL.md from modules.tea and core.
|
|
7
7
|
date: system-generated
|
|
8
8
|
|
|
9
|
+
# Compatibility metadata. Canonical framework SKILL.md activates shared routing with CI scope.
|
|
9
10
|
# Workflow components
|
|
10
|
-
installed_path: "
|
|
11
|
-
instructions: "
|
|
12
|
-
validation: "
|
|
11
|
+
installed_path: "../bmad-testarch-framework"
|
|
12
|
+
instructions: "../bmad-testarch-framework/ci/instructions.md"
|
|
13
|
+
validation: "../bmad-testarch-framework/ci/checklist.md"
|
|
13
14
|
|
|
14
15
|
# Variables and inputs
|
|
15
16
|
variables:
|
|
17
|
+
setup_scope: "ci" # preset by compatibility entry
|
|
18
|
+
setup_entry: "bmad-testarch-ci"
|
|
16
19
|
test_dir: "{project-root}/tests" # Root test directory
|
|
17
20
|
test_stack_type: "auto" # auto, frontend, backend, fullstack, mobile - detected or user override
|
|
18
21
|
test_framework: "auto" # auto, playwright, cypress, jest, vitest - detected or user override
|
|
@@ -121,7 +121,7 @@ Interpret a weak result and close the gap. Load `references/gaps.md`.
|
|
|
121
121
|
|
|
122
122
|
### Stage 12: CI
|
|
123
123
|
|
|
124
|
-
Inspect the adopter's repository, place each check in a tier, write `<evaluation-folder>/ci/evaluation-ci-plan.json` and hand it to `bmad-testarch-ci
|
|
124
|
+
Inspect the adopter's repository, place each check in a tier, write `<evaluation-folder>/ci/evaluation-ci-plan.json` and hand it to `bmad-testarch-framework` with CI setup scope. The `bmad-testarch-ci` compatibility entry remains valid. Load `references/ci.md`.
|
|
125
125
|
|
|
126
126
|
## On Complete
|
|
127
127
|
|
|
@@ -51,6 +51,6 @@ Stage 12 appends this section as each inspection finishes.
|
|
|
51
51
|
- Release flow: `release.yml` on `v*` tags, with `docs/RELEASING.md` naming the tag as the gate.
|
|
52
52
|
- Risk profile: one `critical` behavior (`contract.json`), about forty model calls per live run, nightly and release accepted and per pull request not (the adopter's answer), a missed defect ships within a day (`docs/RELEASING.md`).
|
|
53
53
|
- Tier exits: `pr` 0; `scheduled` not run, `RESERVATION_MODEL_KEY` is absent on this machine; `release` 2, repair owned by Stage 3.
|
|
54
|
-
- Hand-off status:
|
|
54
|
+
- Hand-off status: framework skill invoked with CI scope and Create or Edit, or an open item such as a declined baseline or a missing `bmad-testarch-framework` (with no usable `bmad-testarch-ci` compatibility entry).
|
|
55
55
|
|
|
56
56
|
Replace this worked record with the inspected target's facts and source paths. Record the selected target kind and interface in `evaluation.json` alone.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# CI
|
|
2
2
|
|
|
3
|
-
Run this stage after the evaluation checks clean and a scored run exists (Stages 1 to 11). It writes `<evaluation-folder>/ci/evaluation-ci-plan.json`, the platform-neutral plan that is the only definition of which check runs when and what blocks, then hands the plan to `bmad-testarch-ci
|
|
3
|
+
Run this stage after the evaluation checks clean and a scored run exists (Stages 1 to 11). It writes `<evaluation-folder>/ci/evaluation-ci-plan.json`, the platform-neutral plan that is the only definition of which check runs when and what blocks, then hands the plan to `bmad-testarch-framework` with explicit CI setup scope. The `bmad-testarch-ci` compatibility entry remains valid. Never write a pipeline file here. The plan's schema and placement rules belong to the installed runtime, in `{tea_evaluations_folder}/node_modules/bmad-method-test-architecture-enterprise/cli/lib/evaluate/schemas/evaluation-ci-plan.schema.json` and `{tea_evaluations_folder}/node_modules/bmad-method-test-architecture-enterprise/cli/lib/evaluate/ci-plan.js` (`cli/lib/evaluate/...` from the repository root inside TeA's own package); read them there and copy neither. `npm exec --prefix {tea_evaluations_folder} -- tea-evaluate check --evaluation <evaluation-folder>` reports the plan's findings under the `ci-plan` rule family, so the command that validates the rest of the evaluation validates the plan.
|
|
4
4
|
|
|
5
5
|
If `check` reports a finding outside the `ci-plan` family, or no scored run exists, name the missing prerequisite and return to its stage before inspecting CI.
|
|
6
6
|
|
|
@@ -16,7 +16,7 @@ Worked example. `.github/workflows/ci.yml` runs on `pull_request` and `push` to
|
|
|
16
16
|
|
|
17
17
|
## Inspect the merge flow
|
|
18
18
|
|
|
19
|
-
Read branch protection and the merge method: whether the default branch accepts direct pushes, whether a review is required, and whether a merge queue serializes merges. Every repository has a post-merge event, the push to the default branch or, with a queue, the pipeline run on the queued commit. Squash merges and the absence of a queue are therefore no reason to move a `merge` check. The reason to move one is cost or risk the adopter states: a live preflight that outlasts the time the merge flow allows, for example.
|
|
19
|
+
Read branch protection and the merge method: whether the default branch accepts direct pushes, whether a review is required, and whether a merge queue serializes merges. Every repository has a post-merge event, the push to the default branch or, with a queue, the pipeline run on the queued commit. Squash merges and the absence of a queue are therefore no reason to move a `merge` check. The reason to move one is cost or risk the adopter states: a live preflight that outlasts the time the merge flow allows, for example. The framework skill's CI rendering step maps the tier to the event.
|
|
20
20
|
|
|
21
21
|
Worked example. `CONTRIBUTING.md` says "Merges go through the merge queue, which re-runs the `test` check on the queued commit", and `ci.yml` lists `merge_group`. The post-merge run exists, so a live preflight that needs no secret keeps its `merge` default and its reason cites `ci.yml` and `CONTRIBUTING.md`. If `CONTRIBUTING.md` instead capped the post-merge run at ten minutes and the preflight took forty, the reason for moving it to `release` would cite that cap.
|
|
22
22
|
|
|
@@ -248,9 +248,9 @@ An adopter who declines leaves the baseline an open item, and the closing summar
|
|
|
248
248
|
|
|
249
249
|
With no accepted baseline, skip the tier runs and record that in the `## CI` section. After the baseline is accepted, run `npm exec --prefix {tea_evaluations_folder} -- tea-evaluate ci --evaluation <evaluation-folder> --tier <tier>` for each tier that can run on this machine (`pr` always, and each live tier whose target launches here and whose credentials exist) and show the adopter each exit. A blocking exit names the stage that owns its repair, and Stage 11's guide lists the repair for each exit: an oracle that disagrees with its scorer returns to Stage 5, and a strength floor on a class with no eligible probe returns to Stage 3 or Stage 8. Record the exit and that stage in the `## CI` section, tell the adopter, and carry on with the hand-off. Record every tier the plan places a check on, with its exit or the reason it was not run.
|
|
250
250
|
|
|
251
|
-
## Hand the plan to
|
|
251
|
+
## Hand the plan to framework setup with CI scope
|
|
252
252
|
|
|
253
|
-
Invoke `bmad-testarch-
|
|
253
|
+
Invoke `bmad-testarch-framework` with explicit CI setup scope and Edit operation on the adopter's pipeline file, naming the plan's path, or Create when the inspection found no pipeline file. The `bmad-testarch-ci` compatibility entry selects the same scope and supports the same operations. Its CI phase detects `ci/evaluation-ci-plan.json` and validates it; the rendering rules belong to `skills/bmad-testarch-framework/ci/steps-c/step-03b-render-evaluation-plans.md` from TEA's repository root. In an installed skill set, resolve it as `{skill-root}/../bmad-testarch-framework/ci/steps-c/step-03b-render-evaluation-plans.md`, where `{skill-root}` is the Evaluate skill root. Setup scope and operation are independent, so this handoff selects CI and preserves an existing framework. CI Edit validates the changed pipeline syntax, injection safety and evaluation-plan rendering/gates; it does not require the adopter's full suite to pass or activate framework hooks. CI Create uses the existing framework contract and its execution gate. Name in the request the concrete event of this repository for each tier it should render, such as `release`: the push of `v*` tags that starts `.github/workflows/release.yml`.
|
|
254
254
|
That step renders each `gates` entry as a wait of the named job on the evaluation job of the tier, and its summary reports the edit to the job, a name that matches no job and a conflicting gate, so relay that report to the adopter.
|
|
255
255
|
When the plan gates a job, invoke it on the workflow file that holds that job.
|
|
256
|
-
When that skill is not installed, give the adopter the request and the plan's path and record the hand-off as an open item in the inspection record. Stage 12 is complete when the plan passes `check` and the hand-off is made; a declined baseline or a missing `bmad-testarch-ci` stays a named open item in the `## CI` section and does not reopen the stage. Finish with the closing summary: the placement table, the deviations and their reasons, the secrets the live tiers need (the names from `environmentKeys`), the gates adopted, the baseline still to accept, every tier that exited non-zero with the stage that owns its repair, and each publish or deploy job that waits for the evaluation job through `gates`, with every such job the plan leaves ungated and the reason.
|
|
256
|
+
When that skill is not installed, give the adopter the request and the plan's path and record the hand-off as an open item in the inspection record. Stage 12 is complete when the plan passes `check` and the hand-off is made; a declined baseline or a missing `bmad-testarch-framework` (with no usable `bmad-testarch-ci` compatibility entry) stays a named open item in the `## CI` section and does not reopen the stage. Finish with the closing summary: the placement table, the deviations and their reasons, the secrets the live tiers need (the names from `environmentKeys`), the gates adopted, the baseline still to accept, every tier that exited non-zero with the stage that owns its repair, and each publish or deploy job that waits for the evaluation job through `gates`, with every such job the plan leaves ungated and the reason.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: bmad-testarch-framework
|
|
3
|
-
description: 'Initialize test framework
|
|
3
|
+
description: 'Initialize test framework and CI/CD setup for browser, backend or mobile stacks. Use when the user says "lets setup test framework" or "I want to initialize testing framework"'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Test Framework Setup
|
|
6
|
+
# Test Framework and CI Setup
|
|
7
7
|
|
|
8
|
-
**Goal:**
|
|
8
|
+
**Goal:** Set up a production-ready test framework, a CI/CD quality pipeline, or both, with stack selection, fixtures, helpers, hooks, quality gates, and evaluation-plan rendering.
|
|
9
9
|
|
|
10
10
|
**Role:** You are the Master Test Architect.
|
|
11
11
|
|
|
@@ -20,6 +20,10 @@ You will continue to operate with your given name, identity, and communication_s
|
|
|
20
20
|
- `{skill-name}` resolves to the skill directory's basename.
|
|
21
21
|
- Resolve sibling workflow files such as `instructions.md`, `checklist.md`, `steps-c/...`, `steps-e/...`, `steps-v/...`, and templates from `{skill-root}`.
|
|
22
22
|
|
|
23
|
+
## Read-Only Request Gate
|
|
24
|
+
|
|
25
|
+
Before activation hooks or project writes, load `{skill-root}/resources/setup-routing.md` and execute its section 1. This settles scope and any missing-framework offer; a decline stops the run. Preserve preset scope and operation from the CI adapter.
|
|
26
|
+
|
|
23
27
|
## On Activation
|
|
24
28
|
|
|
25
29
|
### Step 1: Resolve the Workflow Block
|
|
@@ -34,13 +38,15 @@ Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skil
|
|
|
34
38
|
|
|
35
39
|
Any missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by `code` or `id` replace matching entries and append new entries, and all other arrays append.
|
|
36
40
|
|
|
41
|
+
When scope includes CI, resolve `ci_workflow` through `resources/setup-routing.md` section 2 before any CI hook, greeting, contract freeze or worker launch. Retain canonical `workflow` separately for explicit platform precedence. This resolution reads settings only; the activation stages below execute the applicable hooks and facts.
|
|
42
|
+
|
|
37
43
|
### Step 2: Execute Prepend Steps
|
|
38
44
|
|
|
39
|
-
|
|
45
|
+
When scope includes framework, execute each entry in `{workflow.activation_steps_prepend}` in order through `{skill-root}/resources/setup-state.md` section 3. CI-only skips framework prepend/append hooks, persistent facts and completion hooks. When scope includes CI, execute each `ci_workflow.activation_steps_prepend` entry through the same durable protocol now, before config/greeting. The request gate has recovered the current run and persisted its journal before this step. Save each entry's started marker before executing it, skip completed entries, and halt on any started entry with an uncertain outcome.
|
|
40
46
|
|
|
41
47
|
### Step 3: Load Persistent Facts
|
|
42
48
|
|
|
43
|
-
|
|
49
|
+
When scope includes framework, treat every entry in `{workflow.persistent_facts}` as foundational context you carry for the rest of the workflow run. When scope includes CI, load `ci_workflow.persistent_facts` here under the same rules. CI-only loads its CI facts and skips framework facts. Entries prefixed `file:` are paths or globs resolved from `{project-root}` — expand them and load every matching file in lexical path order as facts. All other entries are facts verbatim.
|
|
44
50
|
|
|
45
51
|
### Step 4: Load Config
|
|
46
52
|
|
|
@@ -56,32 +62,34 @@ Greet `{user_name}`, speaking in `{communication_language}`.
|
|
|
56
62
|
|
|
57
63
|
### Step 6: Execute Append Steps
|
|
58
64
|
|
|
59
|
-
|
|
65
|
+
After greeting, execute each applicable append entry through the same individual durable hook protocol: framework `{workflow.activation_steps_append}` when scope includes framework, then `ci_workflow.activation_steps_append` when scope includes CI. Save each applicable phase in `activation_completed` after its entries succeed. Preserve the full journal and hook ledger through every scope and operation Resume.
|
|
60
66
|
|
|
61
67
|
Activation is complete. Begin the workflow below.
|
|
62
68
|
|
|
63
69
|
## Workflow Architecture
|
|
64
70
|
|
|
65
|
-
|
|
71
|
+
The existing framework steps at the skill root and the CI steps under `ci/` share scope and operation routing. `bmad-testarch-ci` is the compatibility entry point with CI scope preset. Both installed names and the TF/CI menu codes remain available.
|
|
66
72
|
|
|
67
|
-
-
|
|
68
|
-
- **Validate mode (steps-v/)**: validation against checklist
|
|
69
|
-
- **Edit mode (steps-e/)**: revise existing outputs
|
|
73
|
+
Create and edit CI phases detect `ci/evaluation-ci-plan.json` and render it through `{skill-root}/ci/steps-c/step-03b-render-evaluation-plans.md`. Evaluate can continue invoking `bmad-testarch-ci` in create or edit mode.
|
|
70
74
|
|
|
71
75
|
## Initialization Sequence
|
|
72
76
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
"Welcome to the workflow. What would you like to do?"
|
|
76
|
-
|
|
77
|
-
- **[C] Create** — Run the workflow from the beginning
|
|
78
|
-
- **[R] Resume** — Resume an interrupted Create workflow
|
|
79
|
-
- **[V] Validate** — Validate existing outputs
|
|
80
|
-
- **[E] Edit** — Edit existing outputs
|
|
77
|
+
Load `{skill-root}/resources/setup-routing.md` completely. Continue sections 2 through 4 after the read-only gate and canonical activation. Its checkpoint, customization, and completion rules apply to every step below. Do not repeat canonical activation or the scope question.
|
|
81
78
|
|
|
82
|
-
###
|
|
79
|
+
### Framework Phase
|
|
83
80
|
|
|
84
81
|
- **If C:** Load `{skill-root}/steps-c/step-01-preflight.md`
|
|
85
|
-
- **If R:** Load `{skill-root}/steps-c/step-01b-resume.md`
|
|
82
|
+
- **If R:** Load `{skill-root}/steps-c/step-01b-resume.md` only for a legacy Create checkpoint without a journal next position. Journal-backed Resume dispatches its saved C/E/V next file/subsection directly.
|
|
86
83
|
- **If V:** Load `{skill-root}/steps-v/step-01-validate.md`
|
|
87
84
|
- **If E:** Load `{skill-root}/steps-e/step-01-assess.md`
|
|
85
|
+
|
|
86
|
+
### CI Phase
|
|
87
|
+
|
|
88
|
+
CI settings and applicable activation hooks were handled in the activation stages above. Keep `{skill-root}` bound to the canonical framework directory; do not replay CI activation at phase handoff.
|
|
89
|
+
|
|
90
|
+
- **If C:** Load `{skill-root}/ci/steps-c/step-01-preflight.md`
|
|
91
|
+
- **If R:** Load `{skill-root}/ci/steps-c/step-01b-resume.md` only for a legacy Create checkpoint without a journal next position. Journal-backed Resume dispatches its saved C/E/V next file/subsection directly.
|
|
92
|
+
- **If V:** Load `{skill-root}/ci/steps-v/step-01-validate.md`
|
|
93
|
+
- **If E:** Load `{skill-root}/ci/steps-e/step-01-assess.md`
|
|
94
|
+
|
|
95
|
+
For both scope, the coordinator runs the applicable framework and CI phases under the same operation and agreed contract. Read `resources/setup-parallel.md` before concurrent generation. Every phase terminal loads `{skill-root}/resources/setup-phase-completion.md`; completion occurs after all requested phases satisfy their operation-specific completion criteria.
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Test Framework Setup - Validation Checklist
|
|
2
2
|
|
|
3
|
+
Apply scaffold creation criteria to newly created frameworks. Validate evaluates the selected existing artifacts and records non-applicable criteria with reasons; it never repairs outputs. Edit re-checks only changed outputs and their direct dependencies. Reusing an existing framework for combined CI setup uses its existing commands and CI preflight contract, without this scaffold checklist or hook integrity checks.
|
|
4
|
+
|
|
3
5
|
This checklist ensures the framework workflow completes successfully and all deliverables meet quality standards.
|
|
4
6
|
|
|
5
7
|
---
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# CI/CD Pipeline Setup - Validation Checklist
|
|
2
2
|
|
|
3
|
+
For Create, evaluate all applicable setup criteria. Validate reports failures and unavailable execution prerequisites without repair; Edit checks only changed outputs and their direct dependencies. A completed Validate report can contain FAIL criteria. Existing or reused frameworks do not need framework scaffold creation criteria. Use the contract's observed `test_surfaces` and frameworks to decide browser/device criteria; a frontend or mobile application with only unit/API tests does not require browser/device jobs, installs or caches.
|
|
4
|
+
|
|
3
5
|
## Prerequisites
|
|
4
6
|
|
|
5
|
-
- [ ] Git repository initialized (`.git
|
|
7
|
+
- [ ] Git repository initialized (`.git` directory or worktree marker exists)
|
|
6
8
|
- [ ] Git remote configured (`git remote -v` shows origin)
|
|
7
9
|
- [ ] Test framework configured (appropriate config for detected stack type)
|
|
8
10
|
- [ ] Local tests pass (test command succeeds)
|
|
@@ -48,8 +50,8 @@ Note: CI setup is typically a one-time task per repo and can be run any time aft
|
|
|
48
50
|
- [ ] Node version matches project
|
|
49
51
|
- [ ] Test directory paths correct
|
|
50
52
|
- [ ] Stack-conditional steps applied:
|
|
51
|
-
- [ ] Browser install included
|
|
52
|
-
- [ ] Browser install omitted
|
|
53
|
+
- [ ] Browser install included when a browser test surface is declared
|
|
54
|
+
- [ ] Browser install omitted when no browser test surface is declared
|
|
53
55
|
- [ ] Test commands match detected framework
|
|
54
56
|
|
|
55
57
|
### Step 3: Parallel Sharding
|
|
@@ -61,18 +63,18 @@ Note: CI setup is typically a one-time task per repo and can be run any time aft
|
|
|
61
63
|
|
|
62
64
|
### Step 4: Burn-In Loop
|
|
63
65
|
|
|
64
|
-
- [ ] Burn-in job created
|
|
66
|
+
- [ ] Burn-in job created for an applicable browser/device surface or intentionally skipped with a reason
|
|
65
67
|
- [ ] 10 iterations configured (when enabled)
|
|
66
68
|
- [ ] Proper exit on failure (`|| exit 1`)
|
|
67
69
|
- [ ] Runs on appropriate triggers (PR, cron)
|
|
68
70
|
- [ ] Failure artifacts uploaded
|
|
69
|
-
- [ ]
|
|
71
|
+
- [ ] Unit/API-only suites: UI burn-in skipped by default (documented reason: no browser/device test surface)
|
|
70
72
|
|
|
71
73
|
### Step 5: Caching Configuration
|
|
72
74
|
|
|
73
75
|
- [ ] Dependency cache configured (npm/yarn)
|
|
74
76
|
- [ ] Cache key uses lockfile hash
|
|
75
|
-
- [ ] Browser cache configured
|
|
77
|
+
- [ ] Browser cache configured when Playwright/Cypress browsers are required
|
|
76
78
|
- [ ] Restore-keys defined for fallback
|
|
77
79
|
- [ ] Cache paths correct for platform
|
|
78
80
|
|
|
@@ -190,7 +192,7 @@ Note: CI setup is typically a one-time task per repo and can be run any time aft
|
|
|
190
192
|
|
|
191
193
|
### Workflow Dependencies
|
|
192
194
|
|
|
193
|
-
- [ ]
|
|
195
|
+
- [ ] Existing or newly created framework validated against the agreed contract in this run (CI-only existing; both-scope new or reused)
|
|
194
196
|
- [ ] Can proceed to `atdd` workflow after CI setup
|
|
195
197
|
- [ ] Can proceed to `automate` workflow
|
|
196
198
|
- [ ] CI integrates with `gate` workflow
|
|
@@ -31,18 +31,19 @@ From `workflow.yaml`, resolve:
|
|
|
31
31
|
- `date` (`test_artifacts`, `user_name`, `communication_language` and `document_output_language` come from activation)
|
|
32
32
|
- `test_dir`, and `ci_platform` from `{workflow.ci_platform}`
|
|
33
33
|
|
|
34
|
-
### 2.
|
|
34
|
+
### 2. Canonical CI Activation
|
|
35
|
+
|
|
36
|
+
If invoked through legacy workflow metadata, preset `setup_scope = ci` and `setup_entry = bmad-testarch-ci`, then load `{skill-root}/SKILL.md` and its shared router before executing a phase. Keep the original operation and legacy CI customization. CI instructions, templates and steps resolve under `{skill-root}/ci/`.
|
|
37
|
+
|
|
38
|
+
### 3. First Step
|
|
35
39
|
|
|
36
40
|
Load, read completely, and execute:
|
|
37
|
-
`{skill-root}/steps-c/step-01-preflight.md`
|
|
41
|
+
`{skill-root}/ci/steps-c/step-01-preflight.md`
|
|
38
42
|
|
|
39
|
-
###
|
|
43
|
+
### 4. Evaluation Plans
|
|
40
44
|
|
|
41
45
|
Step 3b renders every `ci/evaluation-ci-plan.json` it finds into the pipeline, in create mode and, through the edit steps, in edit mode.
|
|
42
46
|
|
|
43
|
-
###
|
|
44
|
-
|
|
45
|
-
If the user selects **Resume** mode, load, read completely, and execute:
|
|
46
|
-
`{skill-root}/steps-c/step-01b-resume.md`
|
|
47
|
+
### 5. Resume Support
|
|
47
48
|
|
|
48
|
-
|
|
49
|
+
Resume follows the saved position in `setup-run-progress.md`. Only a legacy Create checkpoint with no saved journal position loads `{skill-root}/ci/steps-c/step-01b-resume.md` after recovering any missing contract through read-only inventory. This loader then routes directly to the next incomplete step.
|