bmad-method-test-architecture-enterprise 1.2.3 → 1.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,16 @@ All notable changes to the Test Architect (TEA) module will be documented in thi
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.2.4] - 2026-02-22
9
+
10
+ ### Changed
11
+
12
+ - **All workflow descriptions optimized** for skill selection and display
13
+ - Descriptions shortened and made more concise for better UI rendering
14
+ - Added explicit trigger phrases (e.g., "Use when user says 'lets write acceptance tests'") to improve skill detection
15
+ - Affected workflows: `atdd`, `automate`, `ci`, `framework`, `nfr-assess`, `teach-me-testing`, `test-design`, `test-review`, `trace`
16
+ - Removed redundant `web_bundle: false` from workflow.yaml files
17
+
8
18
  ## [Unreleased]
9
19
 
10
20
  ### 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.2.3",
4
+ "version": "1.2.5",
5
5
  "description": "Master Test Architect for quality strategy, test automation, and release gates",
6
6
  "keywords": [
7
7
  "bmad",
@@ -38,12 +38,14 @@
38
38
  "release:major": "gh workflow run manual-release.yaml -f version_bump=major",
39
39
  "release:minor": "gh workflow run manual-release.yaml -f version_bump=minor",
40
40
  "release:patch": "gh workflow run manual-release.yaml -f version_bump=patch",
41
- "test": "npm run test:schemas && npm run test:install && npm run test:knowledge && npm run validate:schemas && npm run lint && npm run lint:md && npm run format:check",
41
+ "test": "npm run test:schemas && npm run test:install && npm run test:knowledge && npm run test:tea-workflow-descriptions && npm run validate:schemas && npm run lint && npm run lint:md && npm run format:check",
42
42
  "test:coverage": "c8 npm test",
43
43
  "test:install": "node test/test-installation-components.js",
44
44
  "test:knowledge": "node test/test-knowledge-base.js",
45
45
  "test:schemas": "node test/test-agent-schema.js",
46
- "validate:schemas": "node tools/validate-agent-schema.js"
46
+ "test:tea-workflow-descriptions": "node tools/validate-tea-workflow-descriptions.js",
47
+ "validate:schemas": "node tools/validate-agent-schema.js",
48
+ "validate:tea-workflow-descriptions": "node tools/validate-tea-workflow-descriptions.js"
47
49
  },
48
50
  "lint-staged": {
49
51
  "*.{js,cjs,mjs}": [
package/release_notes.md CHANGED
@@ -1,12 +1,14 @@
1
- ## 🚀 What's New in v1.2.3
1
+ ## 🚀 What's New in v1.2.5
2
+
3
+ ### ✨ New Features
4
+ - feat: add gemini support
2
5
 
3
6
  ### 🐛 Bug Fixes
4
- - fix: issues 32 through 37
7
+ - fix: addressed PR comment
8
+ - fix: addressed PR comment 2
5
9
 
6
10
  ### 📦 Other Changes
7
- - addressed PR comments
8
- - addressed PR comments2
9
- - Merge pull request #38 from bmad-code-org/fix/issues-32-33-34-35-35-36-37
11
+ - Merge pull request #39 from bmad-code-org/feat/gemini-support
10
12
 
11
13
 
12
14
  ## 📦 Installation
@@ -16,4 +18,4 @@ npx bmad-method install
16
18
  # Select "Test Architect" from module menu
17
19
  ```
18
20
 
19
- **Full Changelog**: https://github.com/bmad-code-org/bmad-method-test-architecture-enterprise/compare/v1.2.2...v1.2.3
21
+ **Full Changelog**: https://github.com/bmad-code-org/bmad-method-test-architecture-enterprise/compare/v1.2.4...v1.2.5
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: testarch-atdd
3
- description: 'Generate failing acceptance tests before implementation using TDD red-green-refactor cycle'
3
+ description: Generate failing acceptance tests using TDD cycle. Use when user says 'lets write acceptance tests' or 'I want to do ATDD'
4
4
  web_bundle: true
5
5
  ---
6
6
 
@@ -1,7 +1,6 @@
1
1
  # Test Architect workflow: atdd
2
2
  name: testarch-atdd
3
- description: "Generate failing acceptance tests before implementation using TDD red-green-refactor cycle"
4
- author: "BMad"
3
+ description: 'Generate failing acceptance tests using TDD cycle. Use when the user says "lets write acceptance tests" or "I want to do ATDD"'
5
4
 
6
5
  # Critical variables from config
7
6
  config_source: "{project-root}/_bmad/tea/config.yaml"
@@ -44,5 +43,3 @@ execution_hints:
44
43
  interactive: false # Minimize prompts
45
44
  autonomous: true # Proceed without user input unless blocked
46
45
  iterative: true
47
-
48
- web_bundle: false
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: testarch-automate
3
- description: 'Expand test automation coverage after implementation or analyze existing codebase to generate comprehensive test suite'
3
+ description: Expand test automation coverage for codebase. Use when user says 'lets expand test coverage' or 'I want to automate tests'
4
4
  web_bundle: true
5
5
  ---
6
6
 
@@ -1,7 +1,6 @@
1
1
  # Test Architect workflow: automate
2
2
  name: testarch-automate
3
- description: "Expand test automation coverage after implementation or analyze existing codebase to generate comprehensive test suite"
4
- author: "BMad"
3
+ description: 'Expand test automation coverage for codebase. Use when the user says "lets expand test coverage" or "I want to automate tests"'
5
4
 
6
5
  # Critical variables from config
7
6
  config_source: "{project-root}/_bmad/tea/config.yaml"
@@ -51,5 +50,3 @@ execution_hints:
51
50
  interactive: false # Minimize prompts
52
51
  autonomous: true # Proceed without user input unless blocked
53
52
  iterative: true
54
-
55
- web_bundle: false
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: testarch-ci
3
- description: 'Scaffold CI/CD quality pipeline with test execution, burn-in loops, and artifact collection'
3
+ description: Scaffold CI/CD quality pipeline with test execution. Use when user says 'lets setup CI pipeline' or 'I want to create quality gates'
4
4
  web_bundle: true
5
5
  ---
6
6
 
@@ -1,7 +1,6 @@
1
1
  # Test Architect workflow: ci
2
2
  name: testarch-ci
3
- description: "Scaffold CI/CD quality pipeline with test execution, burn-in loops, and artifact collection"
4
- author: "BMad"
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"'
5
4
 
6
5
  # Critical variables from config
7
6
  config_source: "{project-root}/_bmad/tea/config.yaml"
@@ -46,5 +45,3 @@ execution_hints:
46
45
  interactive: false # Minimize prompts, auto-detect when possible
47
46
  autonomous: true # Proceed without user input unless blocked
48
47
  iterative: true
49
-
50
- web_bundle: false
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: testarch-framework
3
- description: 'Initialize production-ready test framework architecture (Playwright or Cypress) with fixtures, helpers, and configuration'
3
+ description: Initialize test framework with Playwright or Cypress. Use when user says 'lets setup test framework' or 'I want to initialize testing framework'
4
4
  web_bundle: true
5
5
  ---
6
6
 
@@ -1,7 +1,6 @@
1
1
  # Test Architect workflow: framework
2
2
  name: testarch-framework
3
- description: "Initialize production-ready test framework architecture (Playwright or Cypress) with fixtures, helpers, and configuration"
4
- author: "BMad"
3
+ description: 'Initialize test framework with Playwright or Cypress. Use when the user says "lets setup test framework" or "I want to initialize testing framework"'
5
4
 
6
5
  # Critical variables from config
7
6
  config_source: "{project-root}/_bmad/tea/config.yaml"
@@ -46,5 +45,3 @@ execution_hints:
46
45
  interactive: false # Minimize prompts; auto-detect when possible
47
46
  autonomous: true # Proceed without user input unless blocked
48
47
  iterative: true
49
-
50
- web_bundle: false
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: testarch-nfr
3
- description: 'Assess non-functional requirements (performance, security, reliability, maintainability) before release with evidence-based validation'
3
+ description: Assess NFRs like performance security and reliability. Use when user says 'lets assess NFRs' or 'I want to evaluate non-functional requirements'
4
4
  web_bundle: true
5
5
  ---
6
6
 
@@ -1,7 +1,6 @@
1
1
  # Test Architect workflow: nfr-assess
2
2
  name: testarch-nfr
3
- description: "Assess non-functional requirements (performance, security, reliability, maintainability) before release with evidence-based validation"
4
- author: "BMad"
3
+ description: 'Assess NFRs like performance security and reliability. Use when the user says "lets assess NFRs" or "I want to evaluate non-functional requirements"'
5
4
 
6
5
  # Critical variables from config
7
6
  config_source: "{project-root}/_bmad/tea/config.yaml"
@@ -46,5 +45,3 @@ execution_hints:
46
45
  interactive: false # Minimize prompts
47
46
  autonomous: true # Proceed without user input unless blocked
48
47
  iterative: true
49
-
50
- web_bundle: false
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: teach-me-testing
3
- description: 'Multi-session learning companion that teaches testing progressively through 7 structured sessions with state persistence'
3
+ description: Teach testing progressively through structured sessions. Use when user says 'lets learn testing' or 'I want to study test practices'
4
4
  web_bundle: true
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: testarch-test-design
3
- description: 'Epic-level test plan (Phase 4)'
3
+ description: Create system-level or epic-level test plans. Use when user says 'lets design test plan' or 'I want to create test strategy'
4
4
  web_bundle: true
5
5
  ---
6
6
 
@@ -1,7 +1,6 @@
1
1
  # Test Architect workflow: test-design
2
2
  name: testarch-test-design
3
- description: "Dual-mode workflow: (1) System-level testability review in Solutioning phase, or (2) Epic-level test planning in Implementation phase. Auto-detects mode based on project phase."
4
- author: "BMad"
3
+ description: 'Create system-level or epic-level test plans. Use when the user says "lets design test plan" or "I want to create test strategy"'
5
4
 
6
5
  # Critical variables from config
7
6
  config_source: "{project-root}/_bmad/tea/config.yaml"
@@ -75,5 +74,3 @@ execution_hints:
75
74
  interactive: false # Minimize prompts
76
75
  autonomous: true # Proceed without user input unless blocked
77
76
  iterative: true
78
-
79
- web_bundle: false
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: testarch-test-review
3
- description: 'Review test quality using comprehensive knowledge base and best practices validation'
3
+ description: Review test quality using best practices validation. Use when user says 'lets review tests' or 'I want to evaluate test quality'
4
4
  web_bundle: true
5
5
  ---
6
6
 
@@ -1,7 +1,6 @@
1
1
  # Test Architect workflow: test-review
2
2
  name: testarch-test-review
3
- description: "Review test quality using comprehensive knowledge base and best practices validation"
4
- author: "BMad"
3
+ description: 'Review test quality using best practices validation. Use when the user says "lets review tests" or "I want to evaluate test quality"'
5
4
 
6
5
  # Critical variables from config
7
6
  config_source: "{project-root}/_bmad/tea/config.yaml"
@@ -47,4 +46,3 @@ execution_hints:
47
46
  autonomous: true # Proceed without user input unless blocked
48
47
  iterative: true # Can review multiple files
49
48
 
50
- web_bundle: false
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: testarch-trace
3
- description: 'Generate requirements-to-tests traceability matrix, analyze coverage, and make quality gate decision (PASS/CONCERNS/FAIL/WAIVED)'
3
+ description: Generate traceability matrix and quality gate decision. Use when user says 'lets create traceability matrix' or 'I want to analyze test coverage'
4
4
  web_bundle: true
5
5
  ---
6
6
 
@@ -1,7 +1,6 @@
1
1
  # Test Architect workflow: trace (enhanced with gate decision)
2
2
  name: testarch-trace
3
- description: "Generate requirements-to-tests traceability matrix, analyze coverage, and make quality gate decision (PASS/CONCERNS/FAIL/WAIVED)"
4
- author: "BMad"
3
+ description: 'Generate traceability matrix and quality gate decision. Use when the user says "lets create traceability matrix" or "I want to analyze test coverage"'
5
4
 
6
5
  # Critical variables from config
7
6
  config_source: "{project-root}/_bmad/tea/config.yaml"
@@ -54,5 +53,3 @@ execution_hints:
54
53
  interactive: false # Minimize prompts
55
54
  autonomous: true # Proceed without user input unless blocked
56
55
  iterative: true
57
-
58
- web_bundle: false
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Validate TEA workflow description quote style for Gemini compatibility.
3
+ *
4
+ * Rules for TEA workflow YAML files under src/workflows/testarch/<workflow>/workflow.yaml:
5
+ * - `description:` must be a single-line YAML scalar on one line
6
+ * - the raw YAML scalar must be wrapped in single quotes
7
+ * - parsed description text must not contain single-quote characters
8
+ * (use double quotes for examples, e.g. "quote here")
9
+ *
10
+ * Usage: node tools/validate-tea-workflow-descriptions.js [project_root]
11
+ * Exit codes: 0 = success, 1 = validation failures
12
+ */
13
+
14
+ const fs = require('node:fs');
15
+ const path = require('node:path');
16
+ const { glob } = require('glob');
17
+ const yaml = require('yaml');
18
+
19
+ /**
20
+ * @param {string} filePath
21
+ * @param {string} projectRoot
22
+ * @returns {string[]}
23
+ */
24
+ function validateFile(filePath, projectRoot) {
25
+ const errors = [];
26
+ const relativePath = path.relative(projectRoot, filePath).replaceAll('\\', '/');
27
+ let content;
28
+ try {
29
+ content = fs.readFileSync(filePath, 'utf8');
30
+ } catch (error) {
31
+ return [`${relativePath}: Failed to read file: ${error.message}`];
32
+ }
33
+ /** @type {string | undefined} */
34
+ let parsedDescription;
35
+
36
+ try {
37
+ const parsed = yaml.parse(content);
38
+ if (!parsed || typeof parsed.description !== 'string') {
39
+ errors.push('YAML parsed but `description` is missing or not a string');
40
+ } else {
41
+ parsedDescription = parsed.description;
42
+ }
43
+ } catch (error) {
44
+ errors.push(`YAML parse error: ${error.message}`);
45
+ return [`${relativePath}: ${errors[0]}`];
46
+ }
47
+
48
+ const descriptionMatch = content.match(/^\s*description:\s*(?:'((?:''|[^'])*)'|"((?:\\"|[^"])*)")\s*(?:#.*)?$/m);
49
+ if (descriptionMatch) {
50
+ const singleQuotedInner = descriptionMatch[1];
51
+ const doubleQuotedInner = descriptionMatch[2];
52
+ const quote = singleQuotedInner === undefined ? '"' : "'";
53
+
54
+ if (quote !== "'") {
55
+ errors.push('`description:` value must be wrapped in single quotes');
56
+ }
57
+ } else {
58
+ if (/^\s*description:\s*/m.test(content)) {
59
+ errors.push('`description:` value must be wrapped in single quotes');
60
+ } else {
61
+ errors.push('Missing single-line `description:` field');
62
+ }
63
+ }
64
+
65
+ if (typeof parsedDescription === 'string' && parsedDescription.includes("'")) {
66
+ errors.push('Parsed `description` contains a single quote character; use double quotes for examples');
67
+ }
68
+
69
+ return errors.map((error) => `${relativePath}: ${error}`);
70
+ }
71
+
72
+ async function main(customProjectRoot) {
73
+ const projectRoot = customProjectRoot || path.join(__dirname, '..');
74
+ const files = await glob('src/workflows/testarch/*/workflow.yaml', {
75
+ cwd: projectRoot,
76
+ absolute: true,
77
+ });
78
+
79
+ if (files.length === 0) {
80
+ console.error('No TEA workflow YAML files found at src/workflows/testarch/*/workflow.yaml');
81
+ process.exit(1);
82
+ }
83
+
84
+ /** @type {string[]} */
85
+ const failures = [];
86
+
87
+ for (const filePath of files.sort()) {
88
+ failures.push(...validateFile(filePath, projectRoot));
89
+ }
90
+
91
+ if (failures.length > 0) {
92
+ console.error('TEA workflow description quote validation failed:\n');
93
+ for (const failure of failures) {
94
+ console.error(`- ${failure}`);
95
+ }
96
+ console.error('\nExpected format example:');
97
+ console.error(`description: 'Generate traceability, example "quote here"'`);
98
+ process.exit(1);
99
+ }
100
+
101
+ console.log(`Validated TEA workflow description quoting in ${files.length} file(s).`);
102
+ }
103
+
104
+ const customProjectRoot = process.argv[2];
105
+ main(customProjectRoot).catch((error) => {
106
+ console.error('Fatal error:', error);
107
+ process.exit(1);
108
+ });