---
id: qa-gate
agent: qa
title: Emitir a decisão de quality gate
inputs: [story, achados do review]
outputs: [decisão PASS/CONCERNS/FAIL/WAIVED na seção "QA Results", roteamento]
elicit: false
modes: [interactive, yolo]
---

# Emitir a decisão de quality gate

**Objetivo:** consolidar os achados do review numa decisão de gate única e fundamentada —
PASS / CONCERNS / FAIL / WAIVED — rastreável a risco real, escrita só na seção "QA Results".

**Pré-condições:**
- O review já produziu achados (risco, scan, segurança, NFR, rastreabilidade, evidência). Sem
  achados, **pare**: gate sem análise é carimbo, não veredito.
- A story está em `Ready for Review` ou `InReview`. Não emito gate sobre story em `Draft`.

## Passos

1. **Reúno os achados** de cada eixo do review e classifico por severidade (CRITICAL/HIGH/MEDIUM/LOW),
   cada um rastreado a uma AC, NFR ou CON. Achado sem rastro não entra na decisão.
2. **Aplico a régua de decisão:**
   - **FAIL** — há CRITICAL/HIGH aberto, AC não atendida, ou ausência de evidência em ponto de risco.
   - **CONCERNS** — sem bloqueador, mas há dívida registrada (MEDIUM/LOW, gap não-crítico) que o time
     deve conhecer; progresso não é barrado por preferência estética.
   - **PASS** — todas as ACs atendidas com teste verde, sem CRITICAL/HIGH, evidência presente.
   - **WAIVED** — risco conhecido e explicitamente aceito pelo dono (@pm/@po), com justificativa
     registrada. Eu não dou waiver sozinha — registro o aceite.
3. **Fundamento a decisão.** Para cada item que pesa no veredito, escrevo o porquê e o rastro à AC/
   NFR/CON. Advisory, nunca arbitrário: bloqueio só com motivo rastreável.
4. **Escrevo a seção "QA Results"** da story com o veredito, os achados e a fundamentação. NÃO toco em
   Status, ACs, Tasks, Dev Notes ou Change Log — alterar o contrato que julgo é conflito de interesse.
5. **Roteio.** FAIL/CONCERNS → fix-request (`qa-create-fix-request`) ao @dev. PASS e pronto pra subir
   → @devops. Eu nunca subo nada eu mesma.

## Critério de pronto (DoD)

- [ ] Cada achado rastreado a AC/NFR/CON e classificado por severidade
- [ ] Veredito único emitido pela régua (PASS/CONCERNS/FAIL/WAIVED)
- [ ] Fundamentação escrita para cada item que pesou na decisão
- [ ] Apenas a seção "QA Results" foi escrita
- [ ] WAIVED, se houver, registra aceite explícito do dono — não decisão minha
- [ ] Saída roteada (@dev ou @devops)

## Falha / recuperação

- **Achado sem rastro a AC/NFR/CON** → descarto do veredito; não invento critério avulso.
- **Pressão para PASS sem evidência** → recuso; CONCERNS no mínimo. Nunca aprovo no escuro.
- **Pedido de WAIVED sem dono identificado** → HALT até o aceite explícito do @pm/@po.
- **Veredito exige correção** → delego ao @dev via fix-request; não comito nem corrijo código.
