bmad-method 4.37.0 → 4.39.0

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.
Files changed (251) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +3 -3
  2. package/.github/ISSUE_TEMPLATE/feature_request.md +3 -3
  3. package/.github/workflows/discord.yaml +11 -2
  4. package/.github/workflows/format-check.yaml +42 -0
  5. package/.github/workflows/manual-release.yaml +173 -0
  6. package/.husky/pre-commit +3 -0
  7. package/.vscode/settings.json +26 -1
  8. package/CHANGELOG.md +2 -23
  9. package/README.md +2 -0
  10. package/bmad-core/agent-teams/team-all.yaml +1 -1
  11. package/bmad-core/agents/analyst.md +16 -15
  12. package/bmad-core/agents/architect.md +11 -11
  13. package/bmad-core/agents/bmad-master.md +23 -22
  14. package/bmad-core/agents/bmad-orchestrator.md +13 -17
  15. package/bmad-core/agents/dev.md +14 -11
  16. package/bmad-core/agents/pm.md +15 -14
  17. package/bmad-core/agents/po.md +9 -8
  18. package/bmad-core/agents/qa.md +42 -22
  19. package/bmad-core/agents/sm.md +7 -6
  20. package/bmad-core/agents/ux-expert.md +6 -5
  21. package/bmad-core/core-config.yaml +2 -0
  22. package/bmad-core/data/bmad-kb.md +1 -1
  23. package/bmad-core/data/test-levels-framework.md +146 -0
  24. package/bmad-core/data/test-priorities-matrix.md +172 -0
  25. package/bmad-core/tasks/apply-qa-fixes.md +148 -0
  26. package/bmad-core/tasks/facilitate-brainstorming-session.md +1 -1
  27. package/bmad-core/tasks/nfr-assess.md +343 -0
  28. package/bmad-core/tasks/qa-gate.md +161 -0
  29. package/bmad-core/tasks/review-story.md +234 -74
  30. package/bmad-core/tasks/risk-profile.md +353 -0
  31. package/bmad-core/tasks/test-design.md +174 -0
  32. package/bmad-core/tasks/trace-requirements.md +264 -0
  33. package/bmad-core/templates/architecture-tmpl.yaml +49 -49
  34. package/bmad-core/templates/brainstorming-output-tmpl.yaml +5 -5
  35. package/bmad-core/templates/brownfield-architecture-tmpl.yaml +31 -31
  36. package/bmad-core/templates/brownfield-prd-tmpl.yaml +13 -13
  37. package/bmad-core/templates/competitor-analysis-tmpl.yaml +19 -6
  38. package/bmad-core/templates/front-end-architecture-tmpl.yaml +21 -9
  39. package/bmad-core/templates/front-end-spec-tmpl.yaml +24 -24
  40. package/bmad-core/templates/fullstack-architecture-tmpl.yaml +122 -104
  41. package/bmad-core/templates/market-research-tmpl.yaml +2 -2
  42. package/bmad-core/templates/prd-tmpl.yaml +9 -9
  43. package/bmad-core/templates/project-brief-tmpl.yaml +4 -4
  44. package/bmad-core/templates/qa-gate-tmpl.yaml +102 -0
  45. package/bmad-core/templates/story-tmpl.yaml +12 -12
  46. package/bmad-core/workflows/brownfield-fullstack.yaml +9 -9
  47. package/bmad-core/workflows/brownfield-service.yaml +1 -1
  48. package/bmad-core/workflows/brownfield-ui.yaml +1 -1
  49. package/bmad-core/workflows/greenfield-fullstack.yaml +1 -1
  50. package/bmad-core/workflows/greenfield-service.yaml +1 -1
  51. package/bmad-core/workflows/greenfield-ui.yaml +1 -1
  52. package/common/utils/bmad-doc-template.md +5 -5
  53. package/dist/agents/analyst.txt +1086 -1079
  54. package/dist/agents/architect.txt +1534 -1526
  55. package/dist/agents/bmad-master.txt +646 -632
  56. package/dist/agents/bmad-orchestrator.txt +40 -18
  57. package/dist/agents/dev.txt +158 -19
  58. package/dist/agents/pm.txt +1082 -1107
  59. package/dist/agents/po.txt +314 -332
  60. package/dist/agents/qa.txt +1754 -151
  61. package/dist/agents/sm.txt +88 -98
  62. package/dist/agents/ux-expert.txt +80 -87
  63. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +109 -146
  64. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +75 -86
  65. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +41 -48
  66. package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +1903 -1941
  67. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.txt +15 -50
  68. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +149 -195
  69. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +0 -15
  70. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.txt +20 -37
  71. package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +2660 -2752
  72. package/dist/expansion-packs/bmad-creative-writing/agents/beta-reader.txt +871 -0
  73. package/dist/expansion-packs/bmad-creative-writing/agents/book-critic.txt +78 -0
  74. package/dist/expansion-packs/bmad-creative-writing/agents/character-psychologist.txt +839 -0
  75. package/dist/expansion-packs/bmad-creative-writing/agents/cover-designer.txt +85 -0
  76. package/dist/expansion-packs/bmad-creative-writing/agents/dialog-specialist.txt +861 -0
  77. package/dist/expansion-packs/bmad-creative-writing/agents/editor.txt +796 -0
  78. package/dist/expansion-packs/bmad-creative-writing/agents/genre-specialist.txt +927 -0
  79. package/dist/expansion-packs/bmad-creative-writing/agents/narrative-designer.txt +842 -0
  80. package/dist/expansion-packs/bmad-creative-writing/agents/plot-architect.txt +1126 -0
  81. package/dist/expansion-packs/bmad-creative-writing/agents/world-builder.txt +864 -0
  82. package/dist/expansion-packs/bmad-creative-writing/teams/agent-team.txt +5917 -0
  83. package/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +25 -27
  84. package/dist/teams/team-all.txt +5541 -3768
  85. package/dist/teams/team-fullstack.txt +3014 -2987
  86. package/dist/teams/team-ide-minimal.txt +2219 -469
  87. package/dist/teams/team-no-ui.txt +2993 -2966
  88. package/docs/enhanced-ide-development-workflow.md +220 -15
  89. package/docs/user-guide.md +271 -18
  90. package/docs/versioning-and-releases.md +122 -44
  91. package/docs/working-in-the-brownfield.md +264 -31
  92. package/eslint.config.mjs +119 -0
  93. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +4 -4
  94. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +1 -1
  95. package/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +1 -1
  96. package/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +26 -28
  97. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +50 -50
  98. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +23 -23
  99. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +24 -24
  100. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +42 -42
  101. package/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +65 -65
  102. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +5 -5
  103. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +1 -1
  104. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.md +3 -3
  105. package/expansion-packs/bmad-2d-unity-game-dev/config.yaml +1 -1
  106. package/expansion-packs/bmad-2d-unity-game-dev/data/bmad-kb.md +1 -1
  107. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +23 -23
  108. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +63 -63
  109. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +20 -20
  110. package/expansion-packs/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +65 -65
  111. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +5 -5
  112. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +1 -1
  113. package/expansion-packs/bmad-creative-writing/README.md +132 -0
  114. package/expansion-packs/bmad-creative-writing/agent-teams/agent-team.yaml +19 -0
  115. package/expansion-packs/bmad-creative-writing/agents/beta-reader.md +91 -0
  116. package/expansion-packs/bmad-creative-writing/agents/book-critic.md +35 -0
  117. package/expansion-packs/bmad-creative-writing/agents/character-psychologist.md +90 -0
  118. package/expansion-packs/bmad-creative-writing/agents/cover-designer.md +41 -0
  119. package/expansion-packs/bmad-creative-writing/agents/dialog-specialist.md +89 -0
  120. package/expansion-packs/bmad-creative-writing/agents/editor.md +90 -0
  121. package/expansion-packs/bmad-creative-writing/agents/genre-specialist.md +92 -0
  122. package/expansion-packs/bmad-creative-writing/agents/narrative-designer.md +90 -0
  123. package/expansion-packs/bmad-creative-writing/agents/plot-architect.md +92 -0
  124. package/expansion-packs/bmad-creative-writing/agents/world-builder.md +91 -0
  125. package/expansion-packs/bmad-creative-writing/checklists/beta-feedback-closure-checklist.md +16 -0
  126. package/expansion-packs/bmad-creative-writing/checklists/character-consistency-checklist.md +16 -0
  127. package/expansion-packs/bmad-creative-writing/checklists/comedic-timing-checklist.md +16 -0
  128. package/expansion-packs/bmad-creative-writing/checklists/cyberpunk-aesthetic-checklist.md +16 -0
  129. package/expansion-packs/bmad-creative-writing/checklists/ebook-formatting-checklist.md +15 -0
  130. package/expansion-packs/bmad-creative-writing/checklists/epic-poetry-meter-checklist.md +16 -0
  131. package/expansion-packs/bmad-creative-writing/checklists/fantasy-magic-system-checklist.md +16 -0
  132. package/expansion-packs/bmad-creative-writing/checklists/foreshadowing-payoff-checklist.md +15 -0
  133. package/expansion-packs/bmad-creative-writing/checklists/genre-tropes-checklist.md +15 -0
  134. package/expansion-packs/bmad-creative-writing/checklists/historical-accuracy-checklist.md +16 -0
  135. package/expansion-packs/bmad-creative-writing/checklists/horror-suspense-checklist.md +16 -0
  136. package/expansion-packs/bmad-creative-writing/checklists/kdp-cover-ready-checklist.md +18 -0
  137. package/expansion-packs/bmad-creative-writing/checklists/line-edit-quality-checklist.md +16 -0
  138. package/expansion-packs/bmad-creative-writing/checklists/marketing-copy-checklist.md +16 -0
  139. package/expansion-packs/bmad-creative-writing/checklists/mystery-clue-trail-checklist.md +16 -0
  140. package/expansion-packs/bmad-creative-writing/checklists/orbital-mechanics-checklist.md +16 -0
  141. package/expansion-packs/bmad-creative-writing/checklists/plot-structure-checklist.md +49 -0
  142. package/expansion-packs/bmad-creative-writing/checklists/publication-readiness-checklist.md +16 -0
  143. package/expansion-packs/bmad-creative-writing/checklists/romance-emotional-beats-checklist.md +16 -0
  144. package/expansion-packs/bmad-creative-writing/checklists/scene-quality-checklist.md +16 -0
  145. package/expansion-packs/bmad-creative-writing/checklists/scifi-technology-plausibility-checklist.md +15 -0
  146. package/expansion-packs/bmad-creative-writing/checklists/sensitivity-representation-checklist.md +16 -0
  147. package/expansion-packs/bmad-creative-writing/checklists/steampunk-gadget-checklist.md +16 -0
  148. package/expansion-packs/bmad-creative-writing/checklists/thriller-pacing-stakes-checklist.md +16 -0
  149. package/expansion-packs/bmad-creative-writing/checklists/timeline-continuity-checklist.md +16 -0
  150. package/expansion-packs/bmad-creative-writing/checklists/world-building-continuity-checklist.md +16 -0
  151. package/expansion-packs/bmad-creative-writing/checklists/ya-appropriateness-checklist.md +16 -0
  152. package/expansion-packs/bmad-creative-writing/config.yaml +11 -0
  153. package/expansion-packs/bmad-creative-writing/data/bmad-kb.md +197 -0
  154. package/expansion-packs/bmad-creative-writing/data/story-structures.md +58 -0
  155. package/expansion-packs/bmad-creative-writing/docs/brief.md +183 -0
  156. package/expansion-packs/bmad-creative-writing/tasks/advanced-elicitation.md +117 -0
  157. package/expansion-packs/bmad-creative-writing/tasks/analyze-reader-feedback.md +16 -0
  158. package/expansion-packs/bmad-creative-writing/tasks/analyze-story-structure.md +55 -0
  159. package/expansion-packs/bmad-creative-writing/tasks/assemble-kdp-package.md +22 -0
  160. package/expansion-packs/bmad-creative-writing/tasks/brainstorm-premise.md +16 -0
  161. package/expansion-packs/bmad-creative-writing/tasks/build-world.md +17 -0
  162. package/expansion-packs/bmad-creative-writing/tasks/character-depth-pass.md +15 -0
  163. package/expansion-packs/bmad-creative-writing/tasks/create-doc.md +101 -0
  164. package/expansion-packs/bmad-creative-writing/tasks/create-draft-section.md +19 -0
  165. package/expansion-packs/bmad-creative-writing/tasks/critical-review.md +19 -0
  166. package/expansion-packs/bmad-creative-writing/tasks/develop-character.md +17 -0
  167. package/expansion-packs/bmad-creative-writing/tasks/execute-checklist.md +93 -0
  168. package/expansion-packs/bmad-creative-writing/tasks/expand-premise.md +16 -0
  169. package/expansion-packs/bmad-creative-writing/tasks/expand-synopsis.md +16 -0
  170. package/expansion-packs/bmad-creative-writing/tasks/final-polish.md +16 -0
  171. package/expansion-packs/bmad-creative-writing/tasks/generate-cover-brief.md +18 -0
  172. package/expansion-packs/bmad-creative-writing/tasks/generate-cover-prompts.md +19 -0
  173. package/expansion-packs/bmad-creative-writing/tasks/generate-scene-list.md +16 -0
  174. package/expansion-packs/bmad-creative-writing/tasks/incorporate-feedback.md +18 -0
  175. package/expansion-packs/bmad-creative-writing/tasks/outline-scenes.md +16 -0
  176. package/expansion-packs/bmad-creative-writing/tasks/provide-feedback.md +17 -0
  177. package/expansion-packs/bmad-creative-writing/tasks/publish-chapter.md +16 -0
  178. package/expansion-packs/bmad-creative-writing/tasks/quick-feedback.md +15 -0
  179. package/expansion-packs/bmad-creative-writing/tasks/select-next-arc.md +16 -0
  180. package/expansion-packs/bmad-creative-writing/tasks/workshop-dialog.md +51 -0
  181. package/expansion-packs/bmad-creative-writing/templates/beta-feedback-form.yaml +96 -0
  182. package/expansion-packs/bmad-creative-writing/templates/chapter-draft-tmpl.yaml +81 -0
  183. package/expansion-packs/bmad-creative-writing/templates/character-profile-tmpl.yaml +92 -0
  184. package/expansion-packs/bmad-creative-writing/templates/cover-design-brief-tmpl.yaml +97 -0
  185. package/expansion-packs/bmad-creative-writing/templates/premise-brief-tmpl.yaml +77 -0
  186. package/expansion-packs/bmad-creative-writing/templates/scene-list-tmpl.yaml +54 -0
  187. package/expansion-packs/bmad-creative-writing/templates/story-outline-tmpl.yaml +96 -0
  188. package/expansion-packs/bmad-creative-writing/templates/world-guide-tmpl.yaml +88 -0
  189. package/expansion-packs/bmad-creative-writing/workflows/book-cover-design-workflow.md +176 -0
  190. package/expansion-packs/bmad-creative-writing/workflows/novel-greenfield-workflow.yaml +58 -0
  191. package/expansion-packs/bmad-creative-writing/workflows/novel-serial-workflow.yaml +51 -0
  192. package/expansion-packs/bmad-creative-writing/workflows/novel-snowflake-workflow.yaml +69 -0
  193. package/expansion-packs/bmad-creative-writing/workflows/novel-writing.yaml +92 -0
  194. package/expansion-packs/bmad-creative-writing/workflows/screenplay-development.yaml +86 -0
  195. package/expansion-packs/bmad-creative-writing/workflows/series-planning.yaml +79 -0
  196. package/expansion-packs/bmad-creative-writing/workflows/short-story-creation.yaml +65 -0
  197. package/expansion-packs/bmad-infrastructure-devops/config.yaml +1 -1
  198. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +20 -20
  199. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +7 -7
  200. package/package.json +62 -39
  201. package/prettier.config.mjs +32 -0
  202. package/sync-version.sh +23 -0
  203. package/tools/bmad-npx-wrapper.js +10 -10
  204. package/tools/builders/web-builder.js +124 -130
  205. package/tools/bump-all-versions.js +42 -33
  206. package/tools/bump-expansion-version.js +23 -16
  207. package/tools/cli.js +10 -12
  208. package/tools/flattener/aggregate.js +10 -10
  209. package/tools/flattener/binary.js +44 -17
  210. package/tools/flattener/discovery.js +19 -18
  211. package/tools/flattener/files.js +6 -6
  212. package/tools/flattener/ignoreRules.js +125 -125
  213. package/tools/flattener/main.js +426 -70
  214. package/tools/flattener/projectRoot.js +186 -25
  215. package/tools/flattener/prompts.js +9 -9
  216. package/tools/flattener/stats.helpers.js +395 -0
  217. package/tools/flattener/stats.js +64 -14
  218. package/tools/flattener/test-matrix.js +413 -0
  219. package/tools/flattener/xml.js +33 -31
  220. package/tools/installer/bin/bmad.js +156 -113
  221. package/tools/installer/config/ide-agent-config.yaml +1 -1
  222. package/tools/installer/config/install.config.yaml +13 -3
  223. package/tools/installer/lib/config-loader.js +46 -42
  224. package/tools/installer/lib/file-manager.js +91 -113
  225. package/tools/installer/lib/ide-base-setup.js +57 -56
  226. package/tools/installer/lib/ide-setup.js +545 -399
  227. package/tools/installer/lib/installer.js +875 -714
  228. package/tools/installer/lib/memory-profiler.js +54 -53
  229. package/tools/installer/lib/module-manager.js +19 -15
  230. package/tools/installer/lib/resource-locator.js +26 -28
  231. package/tools/installer/package.json +19 -19
  232. package/tools/lib/dependency-resolver.js +26 -30
  233. package/tools/lib/yaml-utils.js +7 -7
  234. package/tools/preview-release-notes.js +66 -0
  235. package/tools/shared/bannerArt.js +3 -3
  236. package/tools/sync-installer-version.js +7 -9
  237. package/tools/update-expansion-version.js +14 -15
  238. package/tools/upgraders/v3-to-v4-upgrader.js +203 -294
  239. package/tools/version-bump.js +41 -26
  240. package/tools/yaml-format.js +56 -43
  241. package/.github/workflows/release.yaml +0 -60
  242. package/.releaserc.json +0 -21
  243. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/Complete AI Agent System - Flowchart.svg +0 -102
  244. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.1 Google Cloud Project Setup/1.1.1 - Initial Project Configuration - bash copy.txt +0 -13
  245. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.1 Google Cloud Project Setup/1.1.1 - Initial Project Configuration - bash.txt +0 -13
  246. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.2 Agent Development Kit Installation/1.2.2 - Basic Project Structure - txt.txt +0 -25
  247. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.3 Core Configuration Files/1.3.1 - settings.py +0 -34
  248. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.3 Core Configuration Files/1.3.2 - main.py - Base Application.py +0 -70
  249. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.4 Deployment Configuration/1.4.2 - cloudbuild.yaml +0 -26
  250. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/README.md +0 -109
  251. package/tools/semantic-release-sync-installer.js +0 -30
@@ -0,0 +1,161 @@
1
+ # qa-gate
2
+
3
+ Create or update a quality gate decision file for a story based on review findings.
4
+
5
+ ## Purpose
6
+
7
+ Generate a standalone quality gate file that provides a clear pass/fail decision with actionable feedback. This gate serves as an advisory checkpoint for teams to understand quality status.
8
+
9
+ ## Prerequisites
10
+
11
+ - Story has been reviewed (manually or via review-story task)
12
+ - Review findings are available
13
+ - Understanding of story requirements and implementation
14
+
15
+ ## Gate File Location
16
+
17
+ **ALWAYS** check the `bmad-core/core-config.yaml` for the `qa.qaLocation/gates`
18
+
19
+ Slug rules:
20
+
21
+ - Convert to lowercase
22
+ - Replace spaces with hyphens
23
+ - Strip punctuation
24
+ - Example: "User Auth - Login!" becomes "user-auth-login"
25
+
26
+ ## Minimal Required Schema
27
+
28
+ ```yaml
29
+ schema: 1
30
+ story: '{epic}.{story}'
31
+ gate: PASS|CONCERNS|FAIL|WAIVED
32
+ status_reason: '1-2 sentence explanation of gate decision'
33
+ reviewer: 'Quinn'
34
+ updated: '{ISO-8601 timestamp}'
35
+ top_issues: [] # Empty array if no issues
36
+ waiver: { active: false } # Only set active: true if WAIVED
37
+ ```
38
+
39
+ ## Schema with Issues
40
+
41
+ ```yaml
42
+ schema: 1
43
+ story: '1.3'
44
+ gate: CONCERNS
45
+ status_reason: 'Missing rate limiting on auth endpoints poses security risk.'
46
+ reviewer: 'Quinn'
47
+ updated: '2025-01-12T10:15:00Z'
48
+ top_issues:
49
+ - id: 'SEC-001'
50
+ severity: high # ONLY: low|medium|high
51
+ finding: 'No rate limiting on login endpoint'
52
+ suggested_action: 'Add rate limiting middleware before production'
53
+ - id: 'TEST-001'
54
+ severity: medium
55
+ finding: 'No integration tests for auth flow'
56
+ suggested_action: 'Add integration test coverage'
57
+ waiver: { active: false }
58
+ ```
59
+
60
+ ## Schema when Waived
61
+
62
+ ```yaml
63
+ schema: 1
64
+ story: '1.3'
65
+ gate: WAIVED
66
+ status_reason: 'Known issues accepted for MVP release.'
67
+ reviewer: 'Quinn'
68
+ updated: '2025-01-12T10:15:00Z'
69
+ top_issues:
70
+ - id: 'PERF-001'
71
+ severity: low
72
+ finding: 'Dashboard loads slowly with 1000+ items'
73
+ suggested_action: 'Implement pagination in next sprint'
74
+ waiver:
75
+ active: true
76
+ reason: 'MVP release - performance optimization deferred'
77
+ approved_by: 'Product Owner'
78
+ ```
79
+
80
+ ## Gate Decision Criteria
81
+
82
+ ### PASS
83
+
84
+ - All acceptance criteria met
85
+ - No high-severity issues
86
+ - Test coverage meets project standards
87
+
88
+ ### CONCERNS
89
+
90
+ - Non-blocking issues present
91
+ - Should be tracked and scheduled
92
+ - Can proceed with awareness
93
+
94
+ ### FAIL
95
+
96
+ - Acceptance criteria not met
97
+ - High-severity issues present
98
+ - Recommend return to InProgress
99
+
100
+ ### WAIVED
101
+
102
+ - Issues explicitly accepted
103
+ - Requires approval and reason
104
+ - Proceed despite known issues
105
+
106
+ ## Severity Scale
107
+
108
+ **FIXED VALUES - NO VARIATIONS:**
109
+
110
+ - `low`: Minor issues, cosmetic problems
111
+ - `medium`: Should fix soon, not blocking
112
+ - `high`: Critical issues, should block release
113
+
114
+ ## Issue ID Prefixes
115
+
116
+ - `SEC-`: Security issues
117
+ - `PERF-`: Performance issues
118
+ - `REL-`: Reliability issues
119
+ - `TEST-`: Testing gaps
120
+ - `MNT-`: Maintainability concerns
121
+ - `ARCH-`: Architecture issues
122
+ - `DOC-`: Documentation gaps
123
+ - `REQ-`: Requirements issues
124
+
125
+ ## Output Requirements
126
+
127
+ 1. **ALWAYS** create gate file at: `qa.qaLocation/gates` from `bmad-core/core-config.yaml`
128
+ 2. **ALWAYS** append this exact format to story's QA Results section:
129
+
130
+ ```text
131
+ Gate: {STATUS} → qa.qaLocation/gates/{epic}.{story}-{slug}.yml
132
+ ```
133
+
134
+ 3. Keep status_reason to 1-2 sentences maximum
135
+ 4. Use severity values exactly: `low`, `medium`, or `high`
136
+
137
+ ## Example Story Update
138
+
139
+ After creating gate file, append to story's QA Results section:
140
+
141
+ ```markdown
142
+ ## QA Results
143
+
144
+ ### Review Date: 2025-01-12
145
+
146
+ ### Reviewed By: Quinn (Test Architect)
147
+
148
+ [... existing review content ...]
149
+
150
+ ### Gate Status
151
+
152
+ Gate: CONCERNS → qa.qaLocation/gates/{epic}.{story}-{slug}.yml
153
+ ```
154
+
155
+ ## Key Principles
156
+
157
+ - Keep it minimal and predictable
158
+ - Fixed severity scale (low/medium/high)
159
+ - Always write to standard path
160
+ - Always update story with gate reference
161
+ - Clear, actionable findings
@@ -1,6 +1,16 @@
1
1
  # review-story
2
2
 
3
- When a developer agent marks a story as "Ready for Review", perform a comprehensive senior developer code review with the ability to refactor and improve code directly.
3
+ Perform a comprehensive test architecture review with quality gate decision. This adaptive, risk-aware review creates both a story update and a detailed gate file.
4
+
5
+ ## Inputs
6
+
7
+ ```yaml
8
+ required:
9
+ - story_id: '{epic}.{story}' # e.g., "1.3"
10
+ - story_path: '{devStoryLocation}/{epic}.{story}.*.md' # Path from core-config.yaml
11
+ - story_title: '{title}' # If missing, derive from story file H1
12
+ - story_slug: '{slug}' # If missing, derive from title (lowercase, hyphenated)
13
+ ```
4
14
 
5
15
  ## Prerequisites
6
16
 
@@ -8,73 +18,102 @@ When a developer agent marks a story as "Ready for Review", perform a comprehens
8
18
  - Developer has completed all tasks and updated the File List
9
19
  - All automated tests are passing
10
20
 
11
- ## Review Process
12
-
13
- 1. **Read the Complete Story**
14
- - Review all acceptance criteria
15
- - Understand the dev notes and requirements
16
- - Note any completion notes from the developer
17
-
18
- 2. **Verify Implementation Against Dev Notes Guidance**
19
- - Review the "Dev Notes" section for specific technical guidance provided to the developer
20
- - Verify the developer's implementation follows the architectural patterns specified in Dev Notes
21
- - Check that file locations match the project structure guidance in Dev Notes
22
- - Confirm any specified libraries, frameworks, or technical approaches were used correctly
23
- - Validate that security considerations mentioned in Dev Notes were implemented
24
-
25
- 3. **Focus on the File List**
26
- - Verify all files listed were actually created/modified
27
- - Check for any missing files that should have been updated
28
- - Ensure file locations align with the project structure guidance from Dev Notes
29
-
30
- 4. **Senior Developer Code Review**
31
- - Review code with the eye of a senior developer
32
- - If changes form a cohesive whole, review them together
33
- - If changes are independent, review incrementally file by file
34
- - Focus on:
35
- - Code architecture and design patterns
36
- - Refactoring opportunities
37
- - Code duplication or inefficiencies
38
- - Performance optimizations
39
- - Security concerns
40
- - Best practices and patterns
41
-
42
- 5. **Active Refactoring**
43
- - As a senior developer, you CAN and SHOULD refactor code where improvements are needed
44
- - When refactoring:
45
- - Make the changes directly in the files
46
- - Explain WHY you're making the change
47
- - Describe HOW the change improves the code
48
- - Ensure all tests still pass after refactoring
49
- - Update the File List if you modify additional files
50
-
51
- 6. **Standards Compliance Check**
52
- - Verify adherence to `docs/coding-standards.md`
53
- - Check compliance with `docs/unified-project-structure.md`
54
- - Validate testing approach against `docs/testing-strategy.md`
55
- - Ensure all guidelines mentioned in the story are followed
56
-
57
- 7. **Acceptance Criteria Validation**
58
- - Verify each AC is fully implemented
59
- - Check for any missing functionality
60
- - Validate edge cases are handled
61
-
62
- 8. **Test Coverage Review**
63
- - Ensure unit tests cover edge cases
64
- - Add missing tests if critical coverage is lacking
65
- - Verify integration tests (if required) are comprehensive
66
- - Check that test assertions are meaningful
67
- - Look for missing test scenarios
68
-
69
- 9. **Documentation and Comments**
70
- - Verify code is self-documenting where possible
71
- - Add comments for complex logic if missing
72
- - Ensure any API changes are documented
73
-
74
- ## Update Story File - QA Results Section ONLY
21
+ ## Review Process - Adaptive Test Architecture
22
+
23
+ ### 1. Risk Assessment (Determines Review Depth)
24
+
25
+ **Auto-escalate to deep review when:**
26
+
27
+ - Auth/payment/security files touched
28
+ - No tests added to story
29
+ - Diff > 500 lines
30
+ - Previous gate was FAIL/CONCERNS
31
+ - Story has > 5 acceptance criteria
32
+
33
+ ### 2. Comprehensive Analysis
34
+
35
+ **A. Requirements Traceability**
36
+
37
+ - Map each acceptance criteria to its validating tests (document mapping with Given-When-Then, not test code)
38
+ - Identify coverage gaps
39
+ - Verify all requirements have corresponding test cases
40
+
41
+ **B. Code Quality Review**
42
+
43
+ - Architecture and design patterns
44
+ - Refactoring opportunities (and perform them)
45
+ - Code duplication or inefficiencies
46
+ - Performance optimizations
47
+ - Security vulnerabilities
48
+ - Best practices adherence
49
+
50
+ **C. Test Architecture Assessment**
51
+
52
+ - Test coverage adequacy at appropriate levels
53
+ - Test level appropriateness (what should be unit vs integration vs e2e)
54
+ - Test design quality and maintainability
55
+ - Test data management strategy
56
+ - Mock/stub usage appropriateness
57
+ - Edge case and error scenario coverage
58
+ - Test execution time and reliability
59
+
60
+ **D. Non-Functional Requirements (NFRs)**
61
+
62
+ - Security: Authentication, authorization, data protection
63
+ - Performance: Response times, resource usage
64
+ - Reliability: Error handling, recovery mechanisms
65
+ - Maintainability: Code clarity, documentation
66
+
67
+ **E. Testability Evaluation**
68
+
69
+ - Controllability: Can we control the inputs?
70
+ - Observability: Can we observe the outputs?
71
+ - Debuggability: Can we debug failures easily?
72
+
73
+ **F. Technical Debt Identification**
74
+
75
+ - Accumulated shortcuts
76
+ - Missing tests
77
+ - Outdated dependencies
78
+ - Architecture violations
79
+
80
+ ### 3. Active Refactoring
81
+
82
+ - Refactor code where safe and appropriate
83
+ - Run tests to ensure changes don't break functionality
84
+ - Document all changes in QA Results section with clear WHY and HOW
85
+ - Do NOT alter story content beyond QA Results section
86
+ - Do NOT change story Status or File List; recommend next status only
87
+
88
+ ### 4. Standards Compliance Check
89
+
90
+ - Verify adherence to `docs/coding-standards.md`
91
+ - Check compliance with `docs/unified-project-structure.md`
92
+ - Validate testing approach against `docs/testing-strategy.md`
93
+ - Ensure all guidelines mentioned in the story are followed
94
+
95
+ ### 5. Acceptance Criteria Validation
96
+
97
+ - Verify each AC is fully implemented
98
+ - Check for any missing functionality
99
+ - Validate edge cases are handled
100
+
101
+ ### 6. Documentation and Comments
102
+
103
+ - Verify code is self-documenting where possible
104
+ - Add comments for complex logic if missing
105
+ - Ensure any API changes are documented
106
+
107
+ ## Output 1: Update Story File - QA Results Section ONLY
75
108
 
76
109
  **CRITICAL**: You are ONLY authorized to update the "QA Results" section of the story file. DO NOT modify any other sections.
77
110
 
111
+ **QA Results Anchor Rule:**
112
+
113
+ - If `## QA Results` doesn't exist, append it at end of file
114
+ - If it exists, append a new dated entry below existing entries
115
+ - Never edit other sections
116
+
78
117
  After review and any refactoring, append your results to the story file in the QA Results section:
79
118
 
80
119
  ```markdown
@@ -82,7 +121,7 @@ After review and any refactoring, append your results to the story file in the Q
82
121
 
83
122
  ### Review Date: [Date]
84
123
 
85
- ### Reviewed By: Quinn (Senior Developer QA)
124
+ ### Reviewed By: Quinn (Test Architect)
86
125
 
87
126
  ### Code Quality Assessment
88
127
 
@@ -122,18 +161,137 @@ After review and any refactoring, append your results to the story file in the Q
122
161
 
123
162
  [Any performance issues found and whether addressed]
124
163
 
125
- ### Final Status
164
+ ### Files Modified During Review
165
+
166
+ [If you modified files, list them here - ask Dev to update File List]
167
+
168
+ ### Gate Status
169
+
170
+ Gate: {STATUS} → qa.qaLocation/gates/{epic}.{story}-{slug}.yml
171
+ Risk profile: qa.qaLocation/assessments/{epic}.{story}-risk-{YYYYMMDD}.md
172
+ NFR assessment: qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md
173
+
174
+ # Note: Paths should reference core-config.yaml for custom configurations
126
175
 
127
- [✓ Approved - Ready for Done] / [✗ Changes Required - See unchecked items above]
176
+ ### Recommended Status
177
+
178
+ [✓ Ready for Done] / [✗ Changes Required - See unchecked items above]
179
+ (Story owner decides final status)
180
+ ```
181
+
182
+ ## Output 2: Create Quality Gate File
183
+
184
+ **Template and Directory:**
185
+
186
+ - Render from `../templates/qa-gate-tmpl.yaml`
187
+ - Create directory defined in `qa.qaLocation/gates` (see `bmad-core/core-config.yaml`) if missing
188
+ - Save to: `qa.qaLocation/gates/{epic}.{story}-{slug}.yml`
189
+
190
+ Gate file structure:
191
+
192
+ ```yaml
193
+ schema: 1
194
+ story: '{epic}.{story}'
195
+ story_title: '{story title}'
196
+ gate: PASS|CONCERNS|FAIL|WAIVED
197
+ status_reason: '1-2 sentence explanation of gate decision'
198
+ reviewer: 'Quinn (Test Architect)'
199
+ updated: '{ISO-8601 timestamp}'
200
+
201
+ top_issues: [] # Empty if no issues
202
+ waiver: { active: false } # Set active: true only if WAIVED
203
+
204
+ # Extended fields (optional but recommended):
205
+ quality_score: 0-100 # 100 - (20*FAILs) - (10*CONCERNS) or use technical-preferences.md weights
206
+ expires: '{ISO-8601 timestamp}' # Typically 2 weeks from review
207
+
208
+ evidence:
209
+ tests_reviewed: { count }
210
+ risks_identified: { count }
211
+ trace:
212
+ ac_covered: [1, 2, 3] # AC numbers with test coverage
213
+ ac_gaps: [4] # AC numbers lacking coverage
214
+
215
+ nfr_validation:
216
+ security:
217
+ status: PASS|CONCERNS|FAIL
218
+ notes: 'Specific findings'
219
+ performance:
220
+ status: PASS|CONCERNS|FAIL
221
+ notes: 'Specific findings'
222
+ reliability:
223
+ status: PASS|CONCERNS|FAIL
224
+ notes: 'Specific findings'
225
+ maintainability:
226
+ status: PASS|CONCERNS|FAIL
227
+ notes: 'Specific findings'
228
+
229
+ recommendations:
230
+ immediate: # Must fix before production
231
+ - action: 'Add rate limiting'
232
+ refs: ['api/auth/login.ts']
233
+ future: # Can be addressed later
234
+ - action: 'Consider caching'
235
+ refs: ['services/data.ts']
128
236
  ```
129
237
 
238
+ ### Gate Decision Criteria
239
+
240
+ **Deterministic rule (apply in order):**
241
+
242
+ If risk_summary exists, apply its thresholds first (≥9 → FAIL, ≥6 → CONCERNS), then NFR statuses, then top_issues severity.
243
+
244
+ 1. **Risk thresholds (if risk_summary present):**
245
+ - If any risk score ≥ 9 → Gate = FAIL (unless waived)
246
+ - Else if any score ≥ 6 → Gate = CONCERNS
247
+
248
+ 2. **Test coverage gaps (if trace available):**
249
+ - If any P0 test from test-design is missing → Gate = CONCERNS
250
+ - If security/data-loss P0 test missing → Gate = FAIL
251
+
252
+ 3. **Issue severity:**
253
+ - If any `top_issues.severity == high` → Gate = FAIL (unless waived)
254
+ - Else if any `severity == medium` → Gate = CONCERNS
255
+
256
+ 4. **NFR statuses:**
257
+ - If any NFR status is FAIL → Gate = FAIL
258
+ - Else if any NFR status is CONCERNS → Gate = CONCERNS
259
+ - Else → Gate = PASS
260
+
261
+ - WAIVED only when waiver.active: true with reason/approver
262
+
263
+ Detailed criteria:
264
+
265
+ - **PASS**: All critical requirements met, no blocking issues
266
+ - **CONCERNS**: Non-critical issues found, team should review
267
+ - **FAIL**: Critical issues that should be addressed
268
+ - **WAIVED**: Issues acknowledged but explicitly waived by team
269
+
270
+ ### Quality Score Calculation
271
+
272
+ ```text
273
+ quality_score = 100 - (20 × number of FAILs) - (10 × number of CONCERNS)
274
+ Bounded between 0 and 100
275
+ ```
276
+
277
+ If `technical-preferences.md` defines custom weights, use those instead.
278
+
279
+ ### Suggested Owner Convention
280
+
281
+ For each issue in `top_issues`, include a `suggested_owner`:
282
+
283
+ - `dev`: Code changes needed
284
+ - `sm`: Requirements clarification needed
285
+ - `po`: Business decision needed
286
+
130
287
  ## Key Principles
131
288
 
132
- - You are a SENIOR developer reviewing junior/mid-level work
133
- - You have the authority and responsibility to improve code directly
289
+ - You are a Test Architect providing comprehensive quality assessment
290
+ - You have the authority to improve code directly when appropriate
134
291
  - Always explain your changes for learning purposes
135
292
  - Balance between perfection and pragmatism
136
- - Focus on significant improvements, not nitpicks
293
+ - Focus on risk-based prioritization
294
+ - Provide actionable recommendations with clear ownership
137
295
 
138
296
  ## Blocking Conditions
139
297
 
@@ -149,6 +307,8 @@ Stop the review and request clarification if:
149
307
 
150
308
  After review:
151
309
 
152
- 1. If all items are checked and approved: Update story status to "Done"
153
- 2. If unchecked items remain: Keep status as "Review" for dev to address
154
- 3. Always provide constructive feedback and explanations for learning
310
+ 1. Update the QA Results section in the story file
311
+ 2. Create the gate file in directory from `qa.qaLocation/gates`
312
+ 3. Recommend status: "Ready for Done" or "Changes Required" (owner decides)
313
+ 4. If files were modified, list them in QA Results and ask Dev to update File List
314
+ 5. Always provide constructive feedback and actionable recommendations