---
id: qa-fix-issues
agent: dev
title: Corrigir issues do QA_FIX_REQUEST.md (workflow de 8 fases)
inputs: [QA_FIX_REQUEST.md, story]
outputs: [código corrigido, testes, QA_FIX_RESPONSE.md, File List atualizada]
elicit: false
modes: [yolo, interactive]
---

# Corrigir issues do QA_FIX_REQUEST.md (workflow de 8 fases)

**Objetivo:** executar o ciclo estruturado de correção de um `QA_FIX_REQUEST.md` — da triagem à
resposta — fechando cada issue listada com correção testada e rastreável.

**Pré-condições:**
- Existe um `QA_FIX_REQUEST.md` com issues numeradas, cada uma com severidade e AC/local afetado.
  Sem esse arquivo, **pare** — esta task opera sobre ele.
- A story de origem está acessível (para rastrear cada issue ao seu AC). Se faltar, devolvo ao @qa.

## Passos

1. **Fase 1 — Triagem.** Leio todas as issues do `QA_FIX_REQUEST.md`, classifico por severidade
   (CRITICAL/HIGH/MEDIUM/LOW) e separo o que é minha lane (código/teste) do que é AC/escopo (devolvo
   ao @sm/@po, não corrijo).
2. **Fase 2 — Plano de ataque.** Ordeno as issues: bloqueadores primeiro; agrupo as que tocam os
   mesmos arquivos para evitar idas e vindas. Sem super-engenharia: o plano é uma lista, não um doc.
3. **Fase 3 — Reprodução.** Para cada issue, reproduzo o problema (teste que falha / passo que
   quebra) antes de corrigir. Não corrijo o que não consigo reproduzir — peço evidência ao @qa.
4. **Fase 4 — Correção.** Aplico a correção mínima por issue, reusando o que já existe antes de criar.
5. **Fase 5 — Teste.** Escrevo/ajusto o teste que prova que a issue foi fechada (inclui o caso de
   borda que a quebrou). Issue sem teste verde não está fechada.
6. **Fase 6 — Regressão.** Rodo lint + typecheck + toda a suíte. Corrigir uma issue não pode abrir
   outra. Vermelho não fecha o ciclo.
7. **Fase 7 — Resposta.** Escrevo `QA_FIX_RESPONSE.md` mapeando cada issue → correção aplicada →
   teste que a prova → arquivos tocados. Atualizo a File List da story.
8. **Fase 8 — Roteamento.** Commit local (conventional commit citando o id da story). **Não** dou
   `git push` — delego ao @devops. Roteio o `QA_FIX_RESPONSE.md` de volta ao @qa para re-review.

## Critério de pronto (DoD)

- [ ] Toda issue da minha lane no `QA_FIX_REQUEST.md` foi reproduzida, corrigida e coberta por teste
- [ ] Issues de AC/escopo foram devolvidas ao @sm/@po, não "consertadas" por mim
- [ ] Regressão completa verde: lint limpo, typecheck 0, suíte passando
- [ ] `QA_FIX_RESPONSE.md` escrito com o mapa issue → fix → teste → arquivos
- [ ] File List atualizada; commit local feito, sem `git push` (delegado ao @devops)

## Falha / recuperação

- **Uma issue não reproduz** → não corrijo às cegas; peço ao @qa o passo/evidência de reprodução.
- **Uma issue é de AC/escopo, não de código** → devolvo ao @sm/@po; registro no `QA_FIX_RESPONSE.md`
  como fora de escopo de correção de código.
- **A correção abre regressão** → paro, registro e resolvo antes de fechar o ciclo.
- **3 tentativas falhas na mesma issue** → HALT, marco a issue como bloqueada no `QA_FIX_RESPONSE.md`
  e reporto; não empurro com gambiarra.
