Create or update a quality gate decision file for a story based on review findings.
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.
ALWAYS check the bmad-core/core-config.yaml for the qa.qaLocation/gates
Slug rules:
schema: 1
story: "{epic}.{story}"
gate: PASS|CONCERNS|FAIL|WAIVED
status_reason: "1-2 sentence explanation of gate decision"
reviewer: "Quinn"
updated: "{ISO-8601 timestamp}"
top_issues: [] # Empty array if no issues
waiver: { active: false } # Only set active: true if WAIVED
schema: 1
story: "1.3"
gate: CONCERNS
status_reason: "Missing rate limiting on auth endpoints poses security risk."
reviewer: "Quinn"
updated: "2025-01-12T10:15:00Z"
top_issues:
- id: "SEC-001"
severity: high # ONLY: low|medium|high
finding: "No rate limiting on login endpoint"
suggested_action: "Add rate limiting middleware before production"
- id: "TEST-001"
severity: medium
finding: "No integration tests for auth flow"
suggested_action: "Add integration test coverage"
waiver: { active: false }
schema: 1
story: "1.3"
gate: WAIVED
status_reason: "Known issues accepted for MVP release."
reviewer: "Quinn"
updated: "2025-01-12T10:15:00Z"
top_issues:
- id: "PERF-001"
severity: low
finding: "Dashboard loads slowly with 1000+ items"
suggested_action: "Implement pagination in next sprint"
waiver:
active: true
reason: "MVP release - performance optimization deferred"
approved_by: "Product Owner"
FIXED VALUES - NO VARIATIONS:
low: Minor issues, cosmetic problemsmedium: Should fix soon, not blockinghigh: Critical issues, should block releaseSEC-: Security issuesPERF-: Performance issuesREL-: Reliability issuesTEST-: Testing gapsMNT-: Maintainability concernsARCH-: Architecture issuesDOC-: Documentation gapsREQ-: Requirements issuesqa.qaLocation/gates from bmad-core/core-config.yamlALWAYS append this exact format to story's QA Results section:
Gate: {STATUS} → qa.qaLocation/gates/{epic}.{story}-{slug}.yml
Keep status_reason to 1-2 sentences maximum
Use severity values exactly: low, medium, or high
After creating gate file, append to story's QA Results section:
## QA Results
### Review Date: 2025-01-12
### Reviewed By: Quinn (Test Architect)
[... existing review content ...]
### Gate Status
Gate: CONCERNS → qa.qaLocation/gates/{epic}.{story}-{slug}.yml