bmad-method-test-architecture-enterprise 1.23.0 → 1.23.1
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 +1 -1
- package/CHANGELOG.md +16 -0
- package/package.json +1 -1
- package/src/agents/bmad-tea/customize.toml +1 -3
- package/src/workflows/testarch/bmad-teach-me-testing/customize.toml +1 -3
- package/src/workflows/testarch/bmad-testarch-atdd/customize.toml +1 -3
- package/src/workflows/testarch/bmad-testarch-automate/customize.toml +1 -3
- package/src/workflows/testarch/bmad-testarch-ci/customize.toml +1 -3
- package/src/workflows/testarch/bmad-testarch-framework/customize.toml +1 -3
- package/src/workflows/testarch/bmad-testarch-nfr/customize.toml +1 -3
- package/src/workflows/testarch/bmad-testarch-test-design/customize.toml +1 -3
- package/src/workflows/testarch/bmad-testarch-test-review/customize.toml +1 -3
- package/src/workflows/testarch/bmad-testarch-trace/customize.toml +1 -3
- package/test/test-installation-components.js +4 -4
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"name": "bmad-method-test-architecture-enterprise",
|
|
32
32
|
"source": "./",
|
|
33
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": "1.23.
|
|
34
|
+
"version": "1.23.1",
|
|
35
35
|
"author": {
|
|
36
36
|
"name": "Murat K Ozcan (TEA Creator) & Brian (BMad) Madison"
|
|
37
37
|
},
|
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.23.1] - 2026-08-16
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- `persistent_facts` ships empty. All ten `customize.toml` files — the TEA agent plus the nine `testarch` workflows — carried `persistent_facts = ["file:{project-root}/**/project-context.md"]` pre-seeded, which made loading that file an opt-out default baked into every skill rather than a customization you choose (#136).
|
|
15
|
+
|
|
16
|
+
Repository-wide context belongs in `AGENTS.md`, which every skill already sees. `persistent_facts` is for context that only one workflow needs, loaded when it runs instead of carried as constant memory. To opt a skill back in, add the entry to your team or user override TOML:
|
|
17
|
+
|
|
18
|
+
```toml
|
|
19
|
+
persistent_facts = ["file:{project-root}/**/project-context.md"]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- Installation component tests assert the current contract (#137). `test/test-installation-components.js` asserted that every `customize.toml` _contained_ the project-context glob. Emptying those arrays inverted ten assertions, taking `main` red and failing the follow-on Publish run. They now assert that `persistent_facts` ships as an empty array; the neighbouring checks that the key is present are unchanged.
|
|
25
|
+
|
|
10
26
|
## [1.23.0] - 2026-08-15
|
|
11
27
|
|
|
12
28
|
### Added
|
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.23.
|
|
4
|
+
"version": "1.23.1",
|
|
5
5
|
"description": "Master Test Architect for quality strategy, test automation, and release gates",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"bmad",
|
|
@@ -35,9 +35,7 @@ activation_steps_append = []
|
|
|
35
35
|
# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
|
|
36
36
|
# (glob patterns are supported; the file's contents are loaded and treated as facts).
|
|
37
37
|
|
|
38
|
-
persistent_facts = [
|
|
39
|
-
"file:{project-root}/**/project-context.md",
|
|
40
|
-
]
|
|
38
|
+
persistent_facts = []
|
|
41
39
|
|
|
42
40
|
role = "Master Test Architect responsible for risk-based testing, fixture architecture, ATDD, API testing, UI automation, and scalable quality gates across the BMad Method implementation phase."
|
|
43
41
|
identity = "Test architect specializing in risk-based testing, fixture architecture, ATDD, API testing, backend services, UI automation, CI/CD governance, and scalable quality gates. Equally proficient in pure API/service-layer testing (pytest, JUnit, Go test, xUnit, RSpec) as in browser-based E2E testing (Playwright, Cypress), consumer-driven contract testing (Pact), and performance/load/chaos testing (k6). Supports GitHub Actions, GitLab CI, Jenkins, Azure DevOps, and Harness CI platforms."
|
|
@@ -29,9 +29,7 @@ activation_steps_append = []
|
|
|
29
29
|
# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/test-standards.md"
|
|
30
30
|
# (glob patterns are supported; matching files load in lexical path order as facts).
|
|
31
31
|
|
|
32
|
-
persistent_facts = [
|
|
33
|
-
"file:{project-root}/**/project-context.md",
|
|
34
|
-
]
|
|
32
|
+
persistent_facts = []
|
|
35
33
|
|
|
36
34
|
# Scalar: executed when the workflow reaches its terminal step in any
|
|
37
35
|
# mode (create, validate, edit), after the final outputs are produced.
|
|
@@ -29,9 +29,7 @@ activation_steps_append = []
|
|
|
29
29
|
# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/test-standards.md"
|
|
30
30
|
# (glob patterns are supported; matching files load in lexical path order as facts).
|
|
31
31
|
|
|
32
|
-
persistent_facts = [
|
|
33
|
-
"file:{project-root}/**/project-context.md",
|
|
34
|
-
]
|
|
32
|
+
persistent_facts = []
|
|
35
33
|
|
|
36
34
|
# Scalar: executed when the workflow reaches its terminal step in any
|
|
37
35
|
# mode (create, validate, edit), after the final outputs are produced.
|
|
@@ -29,9 +29,7 @@ activation_steps_append = []
|
|
|
29
29
|
# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/test-standards.md"
|
|
30
30
|
# (glob patterns are supported; matching files load in lexical path order as facts).
|
|
31
31
|
|
|
32
|
-
persistent_facts = [
|
|
33
|
-
"file:{project-root}/**/project-context.md",
|
|
34
|
-
]
|
|
32
|
+
persistent_facts = []
|
|
35
33
|
|
|
36
34
|
# Scalar: executed when the workflow reaches its terminal step in any
|
|
37
35
|
# mode (create, validate, edit), after the final outputs are produced.
|
|
@@ -29,9 +29,7 @@ activation_steps_append = []
|
|
|
29
29
|
# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/test-standards.md"
|
|
30
30
|
# (glob patterns are supported; matching files load in lexical path order as facts).
|
|
31
31
|
|
|
32
|
-
persistent_facts = [
|
|
33
|
-
"file:{project-root}/**/project-context.md",
|
|
34
|
-
]
|
|
32
|
+
persistent_facts = []
|
|
35
33
|
|
|
36
34
|
# Scalar: executed when the workflow reaches its terminal step in any
|
|
37
35
|
# mode (create, validate, edit), after the final outputs are produced.
|
|
@@ -29,9 +29,7 @@ activation_steps_append = []
|
|
|
29
29
|
# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/test-standards.md"
|
|
30
30
|
# (glob patterns are supported; matching files load in lexical path order as facts).
|
|
31
31
|
|
|
32
|
-
persistent_facts = [
|
|
33
|
-
"file:{project-root}/**/project-context.md",
|
|
34
|
-
]
|
|
32
|
+
persistent_facts = []
|
|
35
33
|
|
|
36
34
|
# Scalar: executed when the workflow reaches its terminal step in any
|
|
37
35
|
# mode (create, validate, edit), after the final outputs are produced.
|
|
@@ -29,9 +29,7 @@ activation_steps_append = []
|
|
|
29
29
|
# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/test-standards.md"
|
|
30
30
|
# (glob patterns are supported; matching files load in lexical path order as facts).
|
|
31
31
|
|
|
32
|
-
persistent_facts = [
|
|
33
|
-
"file:{project-root}/**/project-context.md",
|
|
34
|
-
]
|
|
32
|
+
persistent_facts = []
|
|
35
33
|
|
|
36
34
|
# Scalar: executed when the workflow reaches its terminal step in any
|
|
37
35
|
# mode (create, validate, edit), after the final outputs are produced.
|
|
@@ -29,9 +29,7 @@ activation_steps_append = []
|
|
|
29
29
|
# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/test-standards.md"
|
|
30
30
|
# (glob patterns are supported; matching files load in lexical path order as facts).
|
|
31
31
|
|
|
32
|
-
persistent_facts = [
|
|
33
|
-
"file:{project-root}/**/project-context.md",
|
|
34
|
-
]
|
|
32
|
+
persistent_facts = []
|
|
35
33
|
|
|
36
34
|
# Scalar: executed when the workflow reaches its terminal step in any
|
|
37
35
|
# mode (create, validate, edit), after the final outputs are produced.
|
|
@@ -29,9 +29,7 @@ activation_steps_append = []
|
|
|
29
29
|
# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/test-standards.md"
|
|
30
30
|
# (glob patterns are supported; matching files load in lexical path order as facts).
|
|
31
31
|
|
|
32
|
-
persistent_facts = [
|
|
33
|
-
"file:{project-root}/**/project-context.md",
|
|
34
|
-
]
|
|
32
|
+
persistent_facts = []
|
|
35
33
|
|
|
36
34
|
# Scalar: executed when the workflow reaches its terminal step in any
|
|
37
35
|
# mode (create, validate, edit), after the final outputs are produced.
|
|
@@ -29,9 +29,7 @@ activation_steps_append = []
|
|
|
29
29
|
# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/test-standards.md"
|
|
30
30
|
# (glob patterns are supported; matching files load in lexical path order as facts).
|
|
31
31
|
|
|
32
|
-
persistent_facts = [
|
|
33
|
-
"file:{project-root}/**/project-context.md",
|
|
34
|
-
]
|
|
32
|
+
persistent_facts = []
|
|
35
33
|
|
|
36
34
|
# Scalar: executed when the workflow reaches its terminal step in any
|
|
37
35
|
# mode (create, validate, edit), after the final outputs are produced.
|
|
@@ -149,8 +149,8 @@ async function runTests() {
|
|
|
149
149
|
assert(/^\s*icon\s*=\s*"🧪"/m.test(customizeContent), 'customize.toml pins agent.icon');
|
|
150
150
|
assert(customizeContent.includes('persistent_facts'), 'customize.toml defines persistent_facts');
|
|
151
151
|
assert(
|
|
152
|
-
|
|
153
|
-
'customize.toml
|
|
152
|
+
/^\s*persistent_facts\s*=\s*\[\s*\]/m.test(customizeContent),
|
|
153
|
+
'customize.toml ships persistent_facts empty (opt-in, not a baked default)',
|
|
154
154
|
);
|
|
155
155
|
assert(customizeContent.includes('activation_steps_prepend'), 'customize.toml defines activation_steps_prepend');
|
|
156
156
|
assert(customizeContent.includes('activation_steps_append'), 'customize.toml defines activation_steps_append');
|
|
@@ -302,8 +302,8 @@ async function runTests() {
|
|
|
302
302
|
assert(customizeContent.includes('persistent_facts'), `${dirName}/customize.toml defines persistent_facts`);
|
|
303
303
|
assert(customizeContent.includes('on_complete'), `${dirName}/customize.toml defines on_complete`);
|
|
304
304
|
assert(
|
|
305
|
-
|
|
306
|
-
`${dirName}/customize.toml
|
|
305
|
+
/^\s*persistent_facts\s*=\s*\[\s*\]/m.test(customizeContent),
|
|
306
|
+
`${dirName}/customize.toml ships persistent_facts empty (opt-in, not a baked default)`,
|
|
307
307
|
);
|
|
308
308
|
} catch (error) {
|
|
309
309
|
assert(false, `${dirName}/customize.toml validates`, error.message);
|