@sleighmaster/bmad 1.5.12 → 1.5.14
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.
|
@@ -14,6 +14,16 @@
|
|
|
14
14
|
<critical>Acceptance Criteria not implemented = HIGH severity finding</critical>
|
|
15
15
|
<critical>Do not review files that are not part of the application's source code. Always exclude the _bmad/ and _bmad-output/ folders from the review. Always exclude IDE and CLI configuration folders like .cursor/ and .windsurf/ and .claude/</critical>
|
|
16
16
|
|
|
17
|
+
<critical>🛑 SELF-REVIEW BIAS WARNING: If YOU are the same agent that implemented this story, your confirmation bias is EXTREME.
|
|
18
|
+
You will instinctively believe your code is correct. You will gloss over edge cases you "already thought about."
|
|
19
|
+
You will find fewer issues because you remember your intent, not the actual code.
|
|
20
|
+
FIGHT THIS. Pretend you are a hostile external reviewer who WANTS to find problems.
|
|
21
|
+
A story with 55+ tests, DB migrations, and multiple AC should NEVER have 0 review issues.</critical>
|
|
22
|
+
|
|
23
|
+
<critical>🛑 MINIMUM REVIEW ROUNDS: You MUST complete at least 2 full review rounds before declaring clean.
|
|
24
|
+
Round 1 finds-and-fixes. Round 2 re-reviews everything from scratch. Only Round 2+ can declare "0 issues."
|
|
25
|
+
A single-round "looks good" is NEVER acceptable — it means you didn't look hard enough.</critical>
|
|
26
|
+
|
|
17
27
|
|
|
18
28
|
<step n="1" goal="Load story and discover changes">
|
|
19
29
|
<action>Use provided {{story_path}} or ask user which story file to review</action>
|
|
@@ -66,9 +76,17 @@
|
|
|
66
76
|
<!-- Review loop tracking -->
|
|
67
77
|
<action>Set {{review_round}} = {{review_round}} + 1</action>
|
|
68
78
|
<check if="{{review_round}} gt 1">
|
|
69
|
-
<
|
|
70
|
-
|
|
79
|
+
<critical>⚠️ THIS IS NOT A VERIFICATION PASS — THIS IS A FULL ADVERSARIAL RE-REVIEW FROM SCRATCH.
|
|
80
|
+
You MUST NOT assume your fixes are correct. You have confirmation bias — fight it.
|
|
81
|
+
Treat this round as if a DIFFERENT reviewer is seeing the code for the first time.
|
|
82
|
+
Execute ALL checks below (AC Validation, Task Audit, Code Quality) with the SAME rigor as Round 1.
|
|
83
|
+
"Re-read modified files" means read EVERY file in the comprehensive review list, not just the ones you touched.
|
|
84
|
+
If you are the same agent that implemented this code, you are ESPECIALLY biased about your own fixes.
|
|
85
|
+
Your instinct will be to skim files you "just fixed" — DO NOT do this. Read every line again.</critical>
|
|
86
|
+
<output>🔄 **Re-review Round {{review_round}}** — FULL adversarial re-review (not just fix verification)...</output>
|
|
87
|
+
<action>Re-read ALL files in the comprehensive review list (not just files modified in the previous round)</action>
|
|
71
88
|
<action>Re-run git status/diff to capture latest changes</action>
|
|
89
|
+
<action>Re-extract ALL Acceptance Criteria and Tasks from the story file (do NOT rely on memory from previous rounds)</action>
|
|
72
90
|
</check>
|
|
73
91
|
|
|
74
92
|
<!-- Git vs Story Discrepancies -->
|
|
@@ -107,17 +125,48 @@
|
|
|
107
125
|
</action>
|
|
108
126
|
|
|
109
127
|
<check if="total_issues_found lt 3">
|
|
110
|
-
<critical
|
|
128
|
+
<critical>🛑 NOT LOOKING HARD ENOUGH - You MUST find at least 3 issues! 🛑
|
|
129
|
+
Finding fewer than 3 issues means you are being lazy or have confirmation bias.
|
|
130
|
+
NO codebase is perfect. Every implementation has edge cases, missing validation, or quality issues.
|
|
131
|
+
You CANNOT proceed to Step 4 until you have found at least 3 specific, actionable issues.
|
|
132
|
+
DO NOT fabricate issues — but DO look harder at:
|
|
133
|
+
</critical>
|
|
111
134
|
<action>Re-examine code for:
|
|
112
|
-
- Edge cases and null handling
|
|
113
|
-
- Architecture violations
|
|
114
|
-
-
|
|
115
|
-
-
|
|
116
|
-
-
|
|
117
|
-
-
|
|
135
|
+
- Edge cases and null handling (what happens with empty input? null? undefined?)
|
|
136
|
+
- Architecture violations (does it follow the documented patterns?)
|
|
137
|
+
- Missing error handling (what if the DB call fails? API timeout? invalid data?)
|
|
138
|
+
- Security issues (SQL injection? XSS? missing auth checks? input validation?)
|
|
139
|
+
- Performance (N+1 queries? unnecessary re-renders? missing memoization?)
|
|
140
|
+
- Test quality (are assertions specific? do tests cover error paths? any mocked-away logic?)
|
|
141
|
+
- Integration issues (does it work with the rest of the system? race conditions?)
|
|
142
|
+
- Dependency problems (version conflicts? unused imports? circular dependencies?)
|
|
118
143
|
</action>
|
|
119
|
-
<action>Find at least 3 more specific, actionable issues</action>
|
|
144
|
+
<action>Find at least 3 more specific, actionable issues — go back and re-read the files if necessary</action>
|
|
120
145
|
</check>
|
|
146
|
+
|
|
147
|
+
<!-- Mandatory review evidence output — required EVERY round before proceeding to Step 4 -->
|
|
148
|
+
<critical>You MUST output the following structured evidence checklist BEFORE proceeding to Step 4.
|
|
149
|
+
If you cannot fill in specific evidence for each section, you have NOT completed the review.
|
|
150
|
+
Do NOT proceed to Step 4 until every section has concrete evidence.</critical>
|
|
151
|
+
<output>### 📋 Review Evidence (Round {{review_round}})
|
|
152
|
+
|
|
153
|
+
**Files Actually Read This Round:** [list every file path you read]
|
|
154
|
+
|
|
155
|
+
**AC Verification:**
|
|
156
|
+
{{for each AC}}
|
|
157
|
+
- AC#{{n}}: {{IMPLEMENTED|PARTIAL|MISSING}} — Evidence: {{file:line or specific code reference}}
|
|
158
|
+
{{/for}}
|
|
159
|
+
|
|
160
|
+
**Task Audit:**
|
|
161
|
+
{{for each [x] task}}
|
|
162
|
+
- Task {{n}}: {{VERIFIED|NOT DONE}} — Evidence: {{file:line or specific code reference}}
|
|
163
|
+
{{/for}}
|
|
164
|
+
|
|
165
|
+
**Security/Performance Spot-Check:**
|
|
166
|
+
- Checked: {{list specific checks performed with file references}}
|
|
167
|
+
|
|
168
|
+
**Issues Found This Round:** {{count}} ({{high}} HIGH, {{medium}} MEDIUM, {{low}} LOW)
|
|
169
|
+
</output>
|
|
121
170
|
</step>
|
|
122
171
|
|
|
123
172
|
<step n="4" goal="Record findings, auto-fix, and loop until clean">
|
|
@@ -161,9 +210,20 @@
|
|
|
161
210
|
|
|
162
211
|
<!-- 4c. Check if there are any issues to fix -->
|
|
163
212
|
<check if="{{high_count}} + {{medium_count}} + {{low_count}} == 0">
|
|
164
|
-
<!--
|
|
165
|
-
<
|
|
166
|
-
|
|
213
|
+
<!-- Enforce minimum 2 rounds before allowing clean exit -->
|
|
214
|
+
<check if="{{review_round}} lt 2">
|
|
215
|
+
<critical>🛑 Round 1 found 0 issues — this is SUSPICIOUS. No codebase is perfect on first pass.
|
|
216
|
+
You MUST loop back and re-review with deeper scrutiny. Look at EVERY file again.
|
|
217
|
+
Check edge cases, error paths, security, performance, test quality.
|
|
218
|
+
A story with tests, AC validation, and multiple files ALWAYS has improvement opportunities.</critical>
|
|
219
|
+
<output>⚠️ **Round {{review_round}} found 0 issues — forcing deeper re-review...**</output>
|
|
220
|
+
<goto step="3" scope="FULL" depth="adversarial">Mandatory deeper re-review — 0 issues in early round is not credible</goto>
|
|
221
|
+
</check>
|
|
222
|
+
<check if="{{review_round}} gte 2">
|
|
223
|
+
<!-- Round 2+ with 0 issues — legitimate clean exit -->
|
|
224
|
+
<output>✅ **No issues found in Round {{review_round}}! Code is clean.**</output>
|
|
225
|
+
<!-- Proceed to Step 5 (completion) -->
|
|
226
|
+
</check>
|
|
167
227
|
</check>
|
|
168
228
|
|
|
169
229
|
<check if="{{high_count}} + {{medium_count}} + {{low_count}} gt 0">
|
|
@@ -179,8 +239,8 @@
|
|
|
179
239
|
|
|
180
240
|
<output>🔧 **Round {{review_round}} fixes applied:** {{fixed_count}} issues fixed. Looping back for re-review...</output>
|
|
181
241
|
|
|
182
|
-
<!-- Loop back to Step 3 for re-review -->
|
|
183
|
-
<goto step="3">
|
|
242
|
+
<!-- Loop back to Step 3 for FULL re-review — not just verification of fixes -->
|
|
243
|
+
<goto step="3" scope="FULL" depth="adversarial">Full adversarial re-review — re-execute ALL checks from scratch, not just verify fixes</goto>
|
|
184
244
|
</check>
|
|
185
245
|
</step>
|
|
186
246
|
|