agentvibes 2.0.21 → 2.0.22

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 (134) hide show
  1. package/.bmad-core/agent-teams/team-all.yaml +15 -0
  2. package/.bmad-core/agent-teams/team-fullstack.yaml +19 -0
  3. package/.bmad-core/agent-teams/team-ide-minimal.yaml +11 -0
  4. package/.bmad-core/agent-teams/team-no-ui.yaml +14 -0
  5. package/.bmad-core/agents/analyst.md +84 -0
  6. package/.bmad-core/agents/architect.md +85 -0
  7. package/.bmad-core/agents/bmad-master.md +110 -0
  8. package/.bmad-core/agents/bmad-orchestrator.md +147 -0
  9. package/.bmad-core/agents/dev.md +81 -0
  10. package/.bmad-core/agents/pm.md +84 -0
  11. package/.bmad-core/agents/po.md +79 -0
  12. package/.bmad-core/agents/qa.md +87 -0
  13. package/.bmad-core/agents/sm.md +65 -0
  14. package/.bmad-core/agents/ux-expert.md +69 -0
  15. package/.bmad-core/checklists/architect-checklist.md +440 -0
  16. package/.bmad-core/checklists/change-checklist.md +184 -0
  17. package/.bmad-core/checklists/pm-checklist.md +372 -0
  18. package/.bmad-core/checklists/po-master-checklist.md +434 -0
  19. package/.bmad-core/checklists/story-dod-checklist.md +96 -0
  20. package/.bmad-core/checklists/story-draft-checklist.md +155 -0
  21. package/.bmad-core/core-config.yaml +22 -0
  22. package/.bmad-core/data/bmad-kb.md +809 -0
  23. package/.bmad-core/data/brainstorming-techniques.md +38 -0
  24. package/.bmad-core/data/elicitation-methods.md +156 -0
  25. package/.bmad-core/data/technical-preferences.md +5 -0
  26. package/.bmad-core/data/test-levels-framework.md +148 -0
  27. package/.bmad-core/data/test-priorities-matrix.md +174 -0
  28. package/.bmad-core/enhanced-ide-development-workflow.md +248 -0
  29. package/.bmad-core/install-manifest.yaml +230 -0
  30. package/.bmad-core/tasks/advanced-elicitation.md +119 -0
  31. package/.bmad-core/tasks/apply-qa-fixes.md +150 -0
  32. package/.bmad-core/tasks/brownfield-create-epic.md +162 -0
  33. package/.bmad-core/tasks/brownfield-create-story.md +149 -0
  34. package/.bmad-core/tasks/correct-course.md +72 -0
  35. package/.bmad-core/tasks/create-brownfield-story.md +314 -0
  36. package/.bmad-core/tasks/create-deep-research-prompt.md +280 -0
  37. package/.bmad-core/tasks/create-doc.md +103 -0
  38. package/.bmad-core/tasks/create-next-story.md +114 -0
  39. package/.bmad-core/tasks/document-project.md +345 -0
  40. package/.bmad-core/tasks/execute-checklist.md +88 -0
  41. package/.bmad-core/tasks/facilitate-brainstorming-session.md +138 -0
  42. package/.bmad-core/tasks/generate-ai-frontend-prompt.md +53 -0
  43. package/.bmad-core/tasks/index-docs.md +175 -0
  44. package/.bmad-core/tasks/kb-mode-interaction.md +77 -0
  45. package/.bmad-core/tasks/nfr-assess.md +345 -0
  46. package/.bmad-core/tasks/qa-gate.md +163 -0
  47. package/.bmad-core/tasks/review-story.md +316 -0
  48. package/.bmad-core/tasks/risk-profile.md +355 -0
  49. package/.bmad-core/tasks/shard-doc.md +187 -0
  50. package/.bmad-core/tasks/test-design.md +176 -0
  51. package/.bmad-core/tasks/trace-requirements.md +266 -0
  52. package/.bmad-core/tasks/validate-next-story.md +136 -0
  53. package/.bmad-core/templates/architecture-tmpl.yaml +651 -0
  54. package/.bmad-core/templates/brainstorming-output-tmpl.yaml +156 -0
  55. package/.bmad-core/templates/brownfield-architecture-tmpl.yaml +477 -0
  56. package/.bmad-core/templates/brownfield-prd-tmpl.yaml +281 -0
  57. package/.bmad-core/templates/competitor-analysis-tmpl.yaml +307 -0
  58. package/.bmad-core/templates/front-end-architecture-tmpl.yaml +219 -0
  59. package/.bmad-core/templates/front-end-spec-tmpl.yaml +350 -0
  60. package/.bmad-core/templates/fullstack-architecture-tmpl.yaml +824 -0
  61. package/.bmad-core/templates/market-research-tmpl.yaml +253 -0
  62. package/.bmad-core/templates/prd-tmpl.yaml +203 -0
  63. package/.bmad-core/templates/project-brief-tmpl.yaml +222 -0
  64. package/.bmad-core/templates/qa-gate-tmpl.yaml +103 -0
  65. package/.bmad-core/templates/story-tmpl.yaml +138 -0
  66. package/.bmad-core/user-guide.md +577 -0
  67. package/.bmad-core/utils/bmad-doc-template.md +327 -0
  68. package/.bmad-core/utils/workflow-management.md +71 -0
  69. package/.bmad-core/workflows/brownfield-fullstack.yaml +298 -0
  70. package/.bmad-core/workflows/brownfield-service.yaml +188 -0
  71. package/.bmad-core/workflows/brownfield-ui.yaml +198 -0
  72. package/.bmad-core/workflows/greenfield-fullstack.yaml +241 -0
  73. package/.bmad-core/workflows/greenfield-service.yaml +207 -0
  74. package/.bmad-core/workflows/greenfield-ui.yaml +236 -0
  75. package/.bmad-core/working-in-the-brownfield.md +606 -0
  76. package/.claude/agents/health-coach.md +154 -0
  77. package/.claude/agents/motivator.md +171 -0
  78. package/.claude/agents/negotiator.md +97 -0
  79. package/.claude/commands/BMad/agents/analyst.md +88 -0
  80. package/.claude/commands/BMad/agents/architect.md +89 -0
  81. package/.claude/commands/BMad/agents/bmad-master.md +114 -0
  82. package/.claude/commands/BMad/agents/bmad-orchestrator.md +151 -0
  83. package/.claude/commands/BMad/agents/dev.md +85 -0
  84. package/.claude/commands/BMad/agents/pm.md +88 -0
  85. package/.claude/commands/BMad/agents/po.md +83 -0
  86. package/.claude/commands/BMad/agents/qa.md +91 -0
  87. package/.claude/commands/BMad/agents/sm.md +69 -0
  88. package/.claude/commands/BMad/agents/ux-expert.md +73 -0
  89. package/.claude/commands/BMad/tasks/advanced-elicitation.md +123 -0
  90. package/.claude/commands/BMad/tasks/apply-qa-fixes.md +154 -0
  91. package/.claude/commands/BMad/tasks/brownfield-create-epic.md +166 -0
  92. package/.claude/commands/BMad/tasks/brownfield-create-story.md +153 -0
  93. package/.claude/commands/BMad/tasks/correct-course.md +76 -0
  94. package/.claude/commands/BMad/tasks/create-brownfield-story.md +318 -0
  95. package/.claude/commands/BMad/tasks/create-deep-research-prompt.md +284 -0
  96. package/.claude/commands/BMad/tasks/create-doc.md +107 -0
  97. package/.claude/commands/BMad/tasks/create-next-story.md +118 -0
  98. package/.claude/commands/BMad/tasks/document-project.md +349 -0
  99. package/.claude/commands/BMad/tasks/execute-checklist.md +92 -0
  100. package/.claude/commands/BMad/tasks/facilitate-brainstorming-session.md +142 -0
  101. package/.claude/commands/BMad/tasks/generate-ai-frontend-prompt.md +57 -0
  102. package/.claude/commands/BMad/tasks/index-docs.md +179 -0
  103. package/.claude/commands/BMad/tasks/kb-mode-interaction.md +81 -0
  104. package/.claude/commands/BMad/tasks/nfr-assess.md +349 -0
  105. package/.claude/commands/BMad/tasks/qa-gate.md +167 -0
  106. package/.claude/commands/BMad/tasks/review-story.md +320 -0
  107. package/.claude/commands/BMad/tasks/risk-profile.md +359 -0
  108. package/.claude/commands/BMad/tasks/shard-doc.md +191 -0
  109. package/.claude/commands/BMad/tasks/test-design.md +180 -0
  110. package/.claude/commands/BMad/tasks/trace-requirements.md +270 -0
  111. package/.claude/commands/BMad/tasks/validate-next-story.md +140 -0
  112. package/.claude/commands/agent-vibes/agent-health-coach.md +15 -0
  113. package/.claude/commands/agent-vibes/agent-motivator.md +15 -0
  114. package/.claude/commands/agent-vibes/agent-negotiator.md +15 -0
  115. package/.claude/commands/agent-vibes/agent.md +79 -0
  116. package/README.md +2 -2
  117. package/docs/agents.md +485 -0
  118. package/fix-vscode-colors.sh +88 -0
  119. package/fixcolors +88 -0
  120. package/generate-all-agent-voices.sh +174 -0
  121. package/generate-new-voices.sh +108 -0
  122. package/generate-piper-agent-intros.sh +85 -0
  123. package/generate-provider-and-agent-intros.sh +136 -0
  124. package/linkedin/vibe-coding-and-pulseaudio.md +121 -0
  125. package/logo/fav_icon_128x128.png +0 -0
  126. package/logo/fav_icon_128x128.png:Zone.Identifier +4 -0
  127. package/logo/logo1.webp +0 -0
  128. package/logo/logo1.webp:Zone.Identifier +4 -0
  129. package/logo/social.png +0 -0
  130. package/logo/social.png:Zone.Identifier +4 -0
  131. package/mcp-server/agentvibes.db +0 -0
  132. package/package.json +1 -1
  133. package/regenerate-agent-voices.sh +79 -0
  134. package/scripts/audio-tunnel.config +17 -0
@@ -0,0 +1,167 @@
1
+ # /qa-gate Task
2
+
3
+ When this command is used, execute the following task:
4
+
5
+ <!-- Powered by BMAD™ Core -->
6
+
7
+ # qa-gate
8
+
9
+ Create or update a quality gate decision file for a story based on review findings.
10
+
11
+ ## Purpose
12
+
13
+ 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.
14
+
15
+ ## Prerequisites
16
+
17
+ - Story has been reviewed (manually or via review-story task)
18
+ - Review findings are available
19
+ - Understanding of story requirements and implementation
20
+
21
+ ## Gate File Location
22
+
23
+ **ALWAYS** check the `.bmad-core/core-config.yaml` for the `qa.qaLocation/gates`
24
+
25
+ Slug rules:
26
+
27
+ - Convert to lowercase
28
+ - Replace spaces with hyphens
29
+ - Strip punctuation
30
+ - Example: "User Auth - Login!" becomes "user-auth-login"
31
+
32
+ ## Minimal Required Schema
33
+
34
+ ```yaml
35
+ schema: 1
36
+ story: '{epic}.{story}'
37
+ gate: PASS|CONCERNS|FAIL|WAIVED
38
+ status_reason: '1-2 sentence explanation of gate decision'
39
+ reviewer: 'Quinn'
40
+ updated: '{ISO-8601 timestamp}'
41
+ top_issues: [] # Empty array if no issues
42
+ waiver: { active: false } # Only set active: true if WAIVED
43
+ ```
44
+
45
+ ## Schema with Issues
46
+
47
+ ```yaml
48
+ schema: 1
49
+ story: '1.3'
50
+ gate: CONCERNS
51
+ status_reason: 'Missing rate limiting on auth endpoints poses security risk.'
52
+ reviewer: 'Quinn'
53
+ updated: '2025-01-12T10:15:00Z'
54
+ top_issues:
55
+ - id: 'SEC-001'
56
+ severity: high # ONLY: low|medium|high
57
+ finding: 'No rate limiting on login endpoint'
58
+ suggested_action: 'Add rate limiting middleware before production'
59
+ - id: 'TEST-001'
60
+ severity: medium
61
+ finding: 'No integration tests for auth flow'
62
+ suggested_action: 'Add integration test coverage'
63
+ waiver: { active: false }
64
+ ```
65
+
66
+ ## Schema when Waived
67
+
68
+ ```yaml
69
+ schema: 1
70
+ story: '1.3'
71
+ gate: WAIVED
72
+ status_reason: 'Known issues accepted for MVP release.'
73
+ reviewer: 'Quinn'
74
+ updated: '2025-01-12T10:15:00Z'
75
+ top_issues:
76
+ - id: 'PERF-001'
77
+ severity: low
78
+ finding: 'Dashboard loads slowly with 1000+ items'
79
+ suggested_action: 'Implement pagination in next sprint'
80
+ waiver:
81
+ active: true
82
+ reason: 'MVP release - performance optimization deferred'
83
+ approved_by: 'Product Owner'
84
+ ```
85
+
86
+ ## Gate Decision Criteria
87
+
88
+ ### PASS
89
+
90
+ - All acceptance criteria met
91
+ - No high-severity issues
92
+ - Test coverage meets project standards
93
+
94
+ ### CONCERNS
95
+
96
+ - Non-blocking issues present
97
+ - Should be tracked and scheduled
98
+ - Can proceed with awareness
99
+
100
+ ### FAIL
101
+
102
+ - Acceptance criteria not met
103
+ - High-severity issues present
104
+ - Recommend return to InProgress
105
+
106
+ ### WAIVED
107
+
108
+ - Issues explicitly accepted
109
+ - Requires approval and reason
110
+ - Proceed despite known issues
111
+
112
+ ## Severity Scale
113
+
114
+ **FIXED VALUES - NO VARIATIONS:**
115
+
116
+ - `low`: Minor issues, cosmetic problems
117
+ - `medium`: Should fix soon, not blocking
118
+ - `high`: Critical issues, should block release
119
+
120
+ ## Issue ID Prefixes
121
+
122
+ - `SEC-`: Security issues
123
+ - `PERF-`: Performance issues
124
+ - `REL-`: Reliability issues
125
+ - `TEST-`: Testing gaps
126
+ - `MNT-`: Maintainability concerns
127
+ - `ARCH-`: Architecture issues
128
+ - `DOC-`: Documentation gaps
129
+ - `REQ-`: Requirements issues
130
+
131
+ ## Output Requirements
132
+
133
+ 1. **ALWAYS** create gate file at: `qa.qaLocation/gates` from `.bmad-core/core-config.yaml`
134
+ 2. **ALWAYS** append this exact format to story's QA Results section:
135
+
136
+ ```text
137
+ Gate: {STATUS} → qa.qaLocation/gates/{epic}.{story}-{slug}.yml
138
+ ```
139
+
140
+ 3. Keep status_reason to 1-2 sentences maximum
141
+ 4. Use severity values exactly: `low`, `medium`, or `high`
142
+
143
+ ## Example Story Update
144
+
145
+ After creating gate file, append to story's QA Results section:
146
+
147
+ ```markdown
148
+ ## QA Results
149
+
150
+ ### Review Date: 2025-01-12
151
+
152
+ ### Reviewed By: Quinn (Test Architect)
153
+
154
+ [... existing review content ...]
155
+
156
+ ### Gate Status
157
+
158
+ Gate: CONCERNS → qa.qaLocation/gates/{epic}.{story}-{slug}.yml
159
+ ```
160
+
161
+ ## Key Principles
162
+
163
+ - Keep it minimal and predictable
164
+ - Fixed severity scale (low/medium/high)
165
+ - Always write to standard path
166
+ - Always update story with gate reference
167
+ - Clear, actionable findings
@@ -0,0 +1,320 @@
1
+ # /review-story Task
2
+
3
+ When this command is used, execute the following task:
4
+
5
+ <!-- Powered by BMAD™ Core -->
6
+
7
+ # review-story
8
+
9
+ 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.
10
+
11
+ ## Inputs
12
+
13
+ ```yaml
14
+ required:
15
+ - story_id: '{epic}.{story}' # e.g., "1.3"
16
+ - story_path: '{devStoryLocation}/{epic}.{story}.*.md' # Path from core-config.yaml
17
+ - story_title: '{title}' # If missing, derive from story file H1
18
+ - story_slug: '{slug}' # If missing, derive from title (lowercase, hyphenated)
19
+ ```
20
+
21
+ ## Prerequisites
22
+
23
+ - Story status must be "Review"
24
+ - Developer has completed all tasks and updated the File List
25
+ - All automated tests are passing
26
+
27
+ ## Review Process - Adaptive Test Architecture
28
+
29
+ ### 1. Risk Assessment (Determines Review Depth)
30
+
31
+ **Auto-escalate to deep review when:**
32
+
33
+ - Auth/payment/security files touched
34
+ - No tests added to story
35
+ - Diff > 500 lines
36
+ - Previous gate was FAIL/CONCERNS
37
+ - Story has > 5 acceptance criteria
38
+
39
+ ### 2. Comprehensive Analysis
40
+
41
+ **A. Requirements Traceability**
42
+
43
+ - Map each acceptance criteria to its validating tests (document mapping with Given-When-Then, not test code)
44
+ - Identify coverage gaps
45
+ - Verify all requirements have corresponding test cases
46
+
47
+ **B. Code Quality Review**
48
+
49
+ - Architecture and design patterns
50
+ - Refactoring opportunities (and perform them)
51
+ - Code duplication or inefficiencies
52
+ - Performance optimizations
53
+ - Security vulnerabilities
54
+ - Best practices adherence
55
+
56
+ **C. Test Architecture Assessment**
57
+
58
+ - Test coverage adequacy at appropriate levels
59
+ - Test level appropriateness (what should be unit vs integration vs e2e)
60
+ - Test design quality and maintainability
61
+ - Test data management strategy
62
+ - Mock/stub usage appropriateness
63
+ - Edge case and error scenario coverage
64
+ - Test execution time and reliability
65
+
66
+ **D. Non-Functional Requirements (NFRs)**
67
+
68
+ - Security: Authentication, authorization, data protection
69
+ - Performance: Response times, resource usage
70
+ - Reliability: Error handling, recovery mechanisms
71
+ - Maintainability: Code clarity, documentation
72
+
73
+ **E. Testability Evaluation**
74
+
75
+ - Controllability: Can we control the inputs?
76
+ - Observability: Can we observe the outputs?
77
+ - Debuggability: Can we debug failures easily?
78
+
79
+ **F. Technical Debt Identification**
80
+
81
+ - Accumulated shortcuts
82
+ - Missing tests
83
+ - Outdated dependencies
84
+ - Architecture violations
85
+
86
+ ### 3. Active Refactoring
87
+
88
+ - Refactor code where safe and appropriate
89
+ - Run tests to ensure changes don't break functionality
90
+ - Document all changes in QA Results section with clear WHY and HOW
91
+ - Do NOT alter story content beyond QA Results section
92
+ - Do NOT change story Status or File List; recommend next status only
93
+
94
+ ### 4. Standards Compliance Check
95
+
96
+ - Verify adherence to `docs/coding-standards.md`
97
+ - Check compliance with `docs/unified-project-structure.md`
98
+ - Validate testing approach against `docs/testing-strategy.md`
99
+ - Ensure all guidelines mentioned in the story are followed
100
+
101
+ ### 5. Acceptance Criteria Validation
102
+
103
+ - Verify each AC is fully implemented
104
+ - Check for any missing functionality
105
+ - Validate edge cases are handled
106
+
107
+ ### 6. Documentation and Comments
108
+
109
+ - Verify code is self-documenting where possible
110
+ - Add comments for complex logic if missing
111
+ - Ensure any API changes are documented
112
+
113
+ ## Output 1: Update Story File - QA Results Section ONLY
114
+
115
+ **CRITICAL**: You are ONLY authorized to update the "QA Results" section of the story file. DO NOT modify any other sections.
116
+
117
+ **QA Results Anchor Rule:**
118
+
119
+ - If `## QA Results` doesn't exist, append it at end of file
120
+ - If it exists, append a new dated entry below existing entries
121
+ - Never edit other sections
122
+
123
+ After review and any refactoring, append your results to the story file in the QA Results section:
124
+
125
+ ```markdown
126
+ ## QA Results
127
+
128
+ ### Review Date: [Date]
129
+
130
+ ### Reviewed By: Quinn (Test Architect)
131
+
132
+ ### Code Quality Assessment
133
+
134
+ [Overall assessment of implementation quality]
135
+
136
+ ### Refactoring Performed
137
+
138
+ [List any refactoring you performed with explanations]
139
+
140
+ - **File**: [filename]
141
+ - **Change**: [what was changed]
142
+ - **Why**: [reason for change]
143
+ - **How**: [how it improves the code]
144
+
145
+ ### Compliance Check
146
+
147
+ - Coding Standards: [✓/✗] [notes if any]
148
+ - Project Structure: [✓/✗] [notes if any]
149
+ - Testing Strategy: [✓/✗] [notes if any]
150
+ - All ACs Met: [✓/✗] [notes if any]
151
+
152
+ ### Improvements Checklist
153
+
154
+ [Check off items you handled yourself, leave unchecked for dev to address]
155
+
156
+ - [x] Refactored user service for better error handling (services/user.service.ts)
157
+ - [x] Added missing edge case tests (services/user.service.test.ts)
158
+ - [ ] Consider extracting validation logic to separate validator class
159
+ - [ ] Add integration test for error scenarios
160
+ - [ ] Update API documentation for new error codes
161
+
162
+ ### Security Review
163
+
164
+ [Any security concerns found and whether addressed]
165
+
166
+ ### Performance Considerations
167
+
168
+ [Any performance issues found and whether addressed]
169
+
170
+ ### Files Modified During Review
171
+
172
+ [If you modified files, list them here - ask Dev to update File List]
173
+
174
+ ### Gate Status
175
+
176
+ Gate: {STATUS} → qa.qaLocation/gates/{epic}.{story}-{slug}.yml
177
+ Risk profile: qa.qaLocation/assessments/{epic}.{story}-risk-{YYYYMMDD}.md
178
+ NFR assessment: qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md
179
+
180
+ # Note: Paths should reference core-config.yaml for custom configurations
181
+
182
+ ### Recommended Status
183
+
184
+ [✓ Ready for Done] / [✗ Changes Required - See unchecked items above]
185
+ (Story owner decides final status)
186
+ ```
187
+
188
+ ## Output 2: Create Quality Gate File
189
+
190
+ **Template and Directory:**
191
+
192
+ - Render from `../templates/qa-gate-tmpl.yaml`
193
+ - Create directory defined in `qa.qaLocation/gates` (see `.bmad-core/core-config.yaml`) if missing
194
+ - Save to: `qa.qaLocation/gates/{epic}.{story}-{slug}.yml`
195
+
196
+ Gate file structure:
197
+
198
+ ```yaml
199
+ schema: 1
200
+ story: '{epic}.{story}'
201
+ story_title: '{story title}'
202
+ gate: PASS|CONCERNS|FAIL|WAIVED
203
+ status_reason: '1-2 sentence explanation of gate decision'
204
+ reviewer: 'Quinn (Test Architect)'
205
+ updated: '{ISO-8601 timestamp}'
206
+
207
+ top_issues: [] # Empty if no issues
208
+ waiver: { active: false } # Set active: true only if WAIVED
209
+
210
+ # Extended fields (optional but recommended):
211
+ quality_score: 0-100 # 100 - (20*FAILs) - (10*CONCERNS) or use technical-preferences.md weights
212
+ expires: '{ISO-8601 timestamp}' # Typically 2 weeks from review
213
+
214
+ evidence:
215
+ tests_reviewed: { count }
216
+ risks_identified: { count }
217
+ trace:
218
+ ac_covered: [1, 2, 3] # AC numbers with test coverage
219
+ ac_gaps: [4] # AC numbers lacking coverage
220
+
221
+ nfr_validation:
222
+ security:
223
+ status: PASS|CONCERNS|FAIL
224
+ notes: 'Specific findings'
225
+ performance:
226
+ status: PASS|CONCERNS|FAIL
227
+ notes: 'Specific findings'
228
+ reliability:
229
+ status: PASS|CONCERNS|FAIL
230
+ notes: 'Specific findings'
231
+ maintainability:
232
+ status: PASS|CONCERNS|FAIL
233
+ notes: 'Specific findings'
234
+
235
+ recommendations:
236
+ immediate: # Must fix before production
237
+ - action: 'Add rate limiting'
238
+ refs: ['api/auth/login.ts']
239
+ future: # Can be addressed later
240
+ - action: 'Consider caching'
241
+ refs: ['services/data.ts']
242
+ ```
243
+
244
+ ### Gate Decision Criteria
245
+
246
+ **Deterministic rule (apply in order):**
247
+
248
+ If risk_summary exists, apply its thresholds first (≥9 → FAIL, ≥6 → CONCERNS), then NFR statuses, then top_issues severity.
249
+
250
+ 1. **Risk thresholds (if risk_summary present):**
251
+ - If any risk score ≥ 9 → Gate = FAIL (unless waived)
252
+ - Else if any score ≥ 6 → Gate = CONCERNS
253
+
254
+ 2. **Test coverage gaps (if trace available):**
255
+ - If any P0 test from test-design is missing → Gate = CONCERNS
256
+ - If security/data-loss P0 test missing → Gate = FAIL
257
+
258
+ 3. **Issue severity:**
259
+ - If any `top_issues.severity == high` → Gate = FAIL (unless waived)
260
+ - Else if any `severity == medium` → Gate = CONCERNS
261
+
262
+ 4. **NFR statuses:**
263
+ - If any NFR status is FAIL → Gate = FAIL
264
+ - Else if any NFR status is CONCERNS → Gate = CONCERNS
265
+ - Else → Gate = PASS
266
+
267
+ - WAIVED only when waiver.active: true with reason/approver
268
+
269
+ Detailed criteria:
270
+
271
+ - **PASS**: All critical requirements met, no blocking issues
272
+ - **CONCERNS**: Non-critical issues found, team should review
273
+ - **FAIL**: Critical issues that should be addressed
274
+ - **WAIVED**: Issues acknowledged but explicitly waived by team
275
+
276
+ ### Quality Score Calculation
277
+
278
+ ```text
279
+ quality_score = 100 - (20 × number of FAILs) - (10 × number of CONCERNS)
280
+ Bounded between 0 and 100
281
+ ```
282
+
283
+ If `technical-preferences.md` defines custom weights, use those instead.
284
+
285
+ ### Suggested Owner Convention
286
+
287
+ For each issue in `top_issues`, include a `suggested_owner`:
288
+
289
+ - `dev`: Code changes needed
290
+ - `sm`: Requirements clarification needed
291
+ - `po`: Business decision needed
292
+
293
+ ## Key Principles
294
+
295
+ - You are a Test Architect providing comprehensive quality assessment
296
+ - You have the authority to improve code directly when appropriate
297
+ - Always explain your changes for learning purposes
298
+ - Balance between perfection and pragmatism
299
+ - Focus on risk-based prioritization
300
+ - Provide actionable recommendations with clear ownership
301
+
302
+ ## Blocking Conditions
303
+
304
+ Stop the review and request clarification if:
305
+
306
+ - Story file is incomplete or missing critical sections
307
+ - File List is empty or clearly incomplete
308
+ - No tests exist when they were required
309
+ - Code changes don't align with story requirements
310
+ - Critical architectural issues that require discussion
311
+
312
+ ## Completion
313
+
314
+ After review:
315
+
316
+ 1. Update the QA Results section in the story file
317
+ 2. Create the gate file in directory from `qa.qaLocation/gates`
318
+ 3. Recommend status: "Ready for Done" or "Changes Required" (owner decides)
319
+ 4. If files were modified, list them in QA Results and ask Dev to update File List
320
+ 5. Always provide constructive feedback and actionable recommendations