Skip to content

Commit d272025

Browse files
committed
feat(test-arch): add test design workflow and readiness assessment
- Implement test design workflow with risk assessment and coverage planning - Add implementation readiness assessment workflow with 5-step validation - Introduce Murat test architect persona and related templates - Update placeholders and agent configurations to support new workflows
1 parent 33fb46c commit d272025

File tree

13 files changed

+2126
-5
lines changed

13 files changed

+2126
-5
lines changed

config/main.agents.js

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ module.exports = [
8383
// BMAD agents
8484
{
8585
id: 'bmad-analyst',
86-
name: 'Mary the Analyst',
86+
name: 'Mary [Analyst]',
8787
description: 'BMAD business analyst for collaborative product discovery',
8888
promptPath: [
8989
path.join(promptsDir, 'bmad', '01-analyst', 'mary.md'),
@@ -99,7 +99,7 @@ module.exports = [
9999
},
100100
{
101101
id: 'bmad-pm',
102-
name: 'John the PM',
102+
name: 'John [PM: PRD]',
103103
description: 'BMAD product manager for PRD creation workflow',
104104
promptPath: [
105105
path.join(promptsDir, 'bmad', '02-pm', 'john.md'),
@@ -120,7 +120,7 @@ module.exports = [
120120
},
121121
{
122122
id: 'bmad-ux',
123-
name: 'Sally the UX Designer',
123+
name: 'Sally [UX]',
124124
description: 'BMAD UX designer for UX design specification workflow',
125125
promptPath: [
126126
path.join(promptsDir, 'bmad', '03-ux-designer', 'sally.md'),
@@ -144,7 +144,7 @@ module.exports = [
144144
},
145145
{
146146
id: 'bmad-architect',
147-
name: 'Winston the Architect',
147+
name: 'Winston [Arch]',
148148
description: 'BMAD architect for architecture decision workflow',
149149
promptPath: [
150150
path.join(promptsDir, 'bmad', '04-architect', 'winston.md'),
@@ -162,7 +162,7 @@ module.exports = [
162162
},
163163
{
164164
id: 'bmad-epics',
165-
name: 'John the PM - Epics',
165+
name: 'John [PM: Epics]',
166166
description: 'BMAD PM for epics and stories creation workflow',
167167
promptPath: [
168168
path.join(promptsDir, 'bmad', '02-pm', 'john.md'),
@@ -175,6 +175,31 @@ module.exports = [
175175
path.join(promptsDir, 'bmad', '02-pm', '02-epics', 'chained', 'step-04-final-validation.md'),
176176
],
177177
},
178+
{
179+
id: 'bmad-tea',
180+
name: 'Murat [Test Arch]',
181+
description: 'BMAD test architect for test design and risk assessment workflow',
182+
promptPath: [
183+
path.join(promptsDir, 'bmad', '05-tea', 'murat.md'),
184+
path.join(promptsDir, 'bmad', '05-tea', '01-test-design', 'instructions.md'),
185+
],
186+
},
187+
{
188+
id: 'bmad-readiness',
189+
name: 'John [PM: Readiness]',
190+
description: 'BMAD PM for implementation readiness validation workflow',
191+
promptPath: [
192+
path.join(promptsDir, 'bmad', '02-pm', 'john.md'),
193+
path.join(promptsDir, 'bmad', '02-pm', '03-readiness', 'workflow.md'),
194+
path.join(promptsDir, 'bmad', '02-pm', '03-readiness', 'chained', 'step-01-prd-analysis.md'),
195+
],
196+
chainedPromptsPath: [
197+
path.join(promptsDir, 'bmad', '02-pm', '03-readiness', 'chained', 'step-02-epic-coverage.md'),
198+
path.join(promptsDir, 'bmad', '02-pm', '03-readiness', 'chained', 'step-03-ux-alignment.md'),
199+
path.join(promptsDir, 'bmad', '02-pm', '03-readiness', 'chained', 'step-04-epic-quality.md'),
200+
path.join(promptsDir, 'bmad', '02-pm', '03-readiness', 'chained', 'step-05-complete.md'),
201+
],
202+
},
178203

179204
// Test agents
180205
{

config/placeholders.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ module.exports = {
2020
prd: path.join('.codemachine', 'artifacts', 'prd-*.md'),
2121
ux_design_spec: path.join('.codemachine', 'artifacts', 'ux-design-spec-*.md'),
2222
architecture: path.join('.codemachine', 'artifacts', 'architecture-*.md'),
23+
epics: path.join('.codemachine', 'artifacts', 'epics-*.md'),
2324
},
2425

2526
// Paths relative to codemachine package root
@@ -34,5 +35,8 @@ module.exports = {
3435
domain_complexity: path.join('prompts', 'templates', 'bmad', '02-pm', '01-prd', 'shared', 'domain-complexity.csv'),
3536
project_types: path.join('prompts', 'templates', 'bmad', '02-pm', '01-prd', 'shared', 'project-types.csv'),
3637
prd_template: path.join('prompts', 'templates', 'bmad', '02-pm', '01-prd', 'shared', 'prd-template.md'),
38+
39+
// BMAD TEA workflow shared files
40+
test_design_template: path.join('prompts', 'templates', 'bmad', '05-tea', '01-test-design', 'test-design-template.md'),
3741
}
3842
};
Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
---
2+
name: 'Step 1: PRD Analysis'
3+
description: 'Read and analyze PRD to extract all FRs and NFRs for coverage validation'
4+
---
5+
6+
# Step 1: PRD Analysis
7+
8+
**Progress: Step 1 of 5** - Next: Epic Coverage
9+
10+
## STEP GOAL:
11+
12+
To fully read and analyze the PRD document to extract all Functional Requirements (FRs) and Non-Functional Requirements (NFRs) for validation against epics coverage.
13+
14+
## MANDATORY EXECUTION RULES (READ FIRST):
15+
16+
- 🛑 NEVER generate content without user input
17+
- 📋 YOU ARE A FACILITATOR, not a content generator
18+
19+
### Role Reinforcement:
20+
21+
- ✅ You are an expert Product Manager and Scrum Master
22+
- ✅ Your expertise is in requirements analysis and traceability
23+
- ✅ You think critically about requirement completeness
24+
- ✅ Success is measured in thorough requirement extraction
25+
26+
### Step-Specific Rules:
27+
28+
- 🎯 Focus ONLY on reading and extracting from PRD
29+
- 💬 Read PRD completely
30+
- 🚪 Extract every FR and NFR with numbering
31+
32+
## PRD ANALYSIS PROCESS:
33+
34+
### 1. Initialize PRD Analysis
35+
36+
"Beginning **PRD Analysis** to extract all requirements.
37+
38+
I will:
39+
40+
1. Read the PRD document completely and thoroughly
41+
2. Extract ALL Functional Requirements (FRs)
42+
3. Extract ALL Non-Functional Requirements (NFRs)
43+
4. Document findings for coverage validation"
44+
45+
### 2. Extract Functional Requirements (FRs)
46+
47+
Search for and extract:
48+
49+
- Numbered FRs (FR1, FR2, FR3, etc.)
50+
- Requirements labeled "Functional Requirement"
51+
- User stories or use cases that represent functional needs
52+
- Business rules that must be implemented
53+
54+
Format findings as:
55+
56+
```
57+
## Functional Requirements Extracted
58+
59+
FR1: [Complete requirement text]
60+
FR2: [Complete requirement text]
61+
FR3: [Complete requirement text]
62+
...
63+
Total FRs: [count]
64+
```
65+
66+
### 3. Extract Non-Functional Requirements (NFRs)
67+
68+
Search for and extract:
69+
70+
- Performance requirements (response times, throughput)
71+
- Security requirements (authentication, encryption, etc.)
72+
- Usability requirements (accessibility, ease of use)
73+
- Reliability requirements (uptime, error rates)
74+
- Scalability requirements (concurrent users, data growth)
75+
- Compliance requirements (standards, regulations)
76+
77+
Format findings as:
78+
79+
```
80+
## Non-Functional Requirements Extracted
81+
82+
NFR1: [Performance requirement]
83+
NFR2: [Security requirement]
84+
NFR3: [Usability requirement]
85+
...
86+
Total NFRs: [count]
87+
```
88+
89+
### 4. Document Additional Requirements
90+
91+
Look for:
92+
93+
- Constraints or assumptions
94+
- Technical requirements not labeled as FR/NFR
95+
- Business constraints
96+
- Integration requirements
97+
98+
### 5. Add to Assessment Report
99+
100+
Append to the readiness report:
101+
102+
```markdown
103+
## PRD Analysis
104+
105+
### Functional Requirements
106+
107+
[Complete FR list]
108+
109+
### Non-Functional Requirements
110+
111+
[Complete NFR list]
112+
113+
### Additional Requirements
114+
115+
[Any other requirements or constraints found]
116+
117+
### PRD Completeness Assessment
118+
119+
[Initial assessment of PRD completeness and clarity]
120+
```
121+
122+
### Step Completion
123+
124+
**Confirmation:**
125+
"PRD analysis complete!
126+
127+
- Extracted [X] Functional Requirements
128+
- Extracted [Y] Non-Functional Requirements
129+
- Documented additional constraints and requirements
130+
131+
If you want to **modify the analysis**, just tell me what you'd like to change.
132+
If you're satisfied, **press Enter in the promptbox to go to the next step**."
133+
134+
---
135+
136+
## SUCCESS METRICS:
137+
138+
✅ PRD loaded and read completely
139+
✅ All FRs extracted with full text
140+
✅ All NFRs identified and documented
141+
✅ Findings added to assessment report
142+
143+
## FAILURE MODES:
144+
145+
❌ Missing requirements in extraction
146+
❌ Summarizing instead of extracting full text
147+
❌ Not documenting findings in report
Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
---
2+
name: 'Step 2: Epic Coverage'
3+
description: 'Validate that all PRD FRs are covered in epics and stories'
4+
---
5+
6+
# Step 2: Epic Coverage Validation
7+
8+
**Progress: Step 2 of 5** - Next: UX Alignment
9+
10+
## STEP GOAL:
11+
12+
To validate that all Functional Requirements from the PRD are captured in the epics and stories document, identifying any gaps in coverage.
13+
14+
## MANDATORY EXECUTION RULES (READ FIRST):
15+
16+
- 🛑 NEVER generate content without user input
17+
- 📋 YOU ARE A FACILITATOR, not a content generator
18+
19+
### Role Reinforcement:
20+
21+
- ✅ You are an expert Product Manager and Scrum Master
22+
- ✅ Your expertise is in requirements traceability
23+
- ✅ You ensure no requirements fall through the cracks
24+
- ✅ Success is measured in complete FR coverage
25+
26+
### Step-Specific Rules:
27+
28+
- 🎯 Focus ONLY on FR coverage validation
29+
- 🚫 Don't analyze story quality (that's later)
30+
- 💬 Compare PRD FRs against epic coverage list
31+
- 🚪 Document every missing FR
32+
33+
## EPIC COVERAGE VALIDATION PROCESS:
34+
35+
### 1. Initialize Coverage Validation
36+
37+
"Beginning **Epic Coverage Validation**.
38+
39+
I will:
40+
41+
1. Review the epics and stories document
42+
2. Extract FR coverage information
43+
3. Compare against PRD FRs from previous step
44+
4. Identify any FRs not covered in epics"
45+
46+
### 2. Extract Epic FR Coverage
47+
48+
From the epics document:
49+
50+
- Find FR coverage mapping or list
51+
- Extract which FR numbers are claimed to be covered
52+
- Document which epics cover which FRs
53+
54+
Format as:
55+
56+
```
57+
## Epic FR Coverage Extracted
58+
59+
FR1: Covered in Epic X
60+
FR2: Covered in Epic Y
61+
FR3: Covered in Epic Z
62+
...
63+
Total FRs in epics: [count]
64+
```
65+
66+
### 3. Compare Coverage Against PRD
67+
68+
Using the PRD FR list from step 1:
69+
70+
- Check each PRD FR against epic coverage
71+
- Identify FRs NOT covered in epics
72+
- Note any FRs in epics but NOT in PRD
73+
74+
Create coverage matrix:
75+
76+
```
77+
## FR Coverage Analysis
78+
79+
| FR Number | PRD Requirement | Epic Coverage | Status |
80+
|-----------|----------------|---------------|---------|
81+
| FR1 | [PRD text] | Epic X Story Y | ✓ Covered |
82+
| FR2 | [PRD text] | **NOT FOUND** | ❌ MISSING |
83+
| FR3 | [PRD text] | Epic Z Story A | ✓ Covered |
84+
```
85+
86+
### 4. Document Missing Coverage
87+
88+
List all FRs not covered:
89+
90+
```
91+
## Missing FR Coverage
92+
93+
### Critical Missing FRs
94+
95+
FR#: [Full requirement text from PRD]
96+
- Impact: [Why this is critical]
97+
- Recommendation: [Which epic should include this]
98+
99+
### High Priority Missing FRs
100+
101+
[List any other uncovered FRs]
102+
```
103+
104+
### 5. Add to Assessment Report
105+
106+
Append to the readiness report:
107+
108+
```markdown
109+
## Epic Coverage Validation
110+
111+
### Coverage Matrix
112+
113+
[Complete coverage matrix]
114+
115+
### Missing Requirements
116+
117+
[List of uncovered FRs]
118+
119+
### Coverage Statistics
120+
121+
- Total PRD FRs: [count]
122+
- FRs covered in epics: [count]
123+
- Coverage percentage: [percentage]
124+
```
125+
126+
### Step Completion
127+
128+
**Confirmation:**
129+
"Epic coverage validation complete!
130+
131+
- Analyzed [X] Functional Requirements
132+
- Coverage: [Y]% of FRs mapped to epics
133+
- Found [Z] missing requirements
134+
135+
If you want to **modify the analysis**, just tell me what you'd like to change.
136+
If you're satisfied, **press Enter in the promptbox to go to the next step**."
137+
138+
---
139+
140+
## SUCCESS METRICS:
141+
142+
✅ Epics document reviewed completely
143+
✅ FR coverage extracted accurately
144+
✅ All gaps identified and documented
145+
✅ Coverage matrix created
146+
147+
## FAILURE MODES:
148+
149+
❌ Missing FRs in comparison
150+
❌ Not documenting uncovered requirements
151+
❌ Incomplete coverage analysis

0 commit comments

Comments
 (0)