# Checklist de release — modelo técnico reutilizável
> **Exemplo didático**. Não é evidência de implantação, checklist de conformidade nem autorização institucional. Preencher com fatos, logs e responsável reais. Não incluir dados pessoais, segredos nem links privados acessíveis publicamente.

## Identidade e escopo
| Campo | Valor a confirmar |
|---|---|
| Repositório / produto | [nome] |
| Objetivo do release | [requisito / issue / SPEC] |
| SHA de commit completo | [40 caracteres verificados] |
| Artifact digest / build | [digest verificável ou NÃO DISPONÍVEL] |
| Autor / revisor / aprovador | [papéis autorizados] |
| Ambiente de destino | [homologação / produção] |
| Data e janela | [ISO/offset acordado] |
| Mudanças de API / DB | [contratos, migrações e compatibilidade] |
| Estado atual | PROPOSTO / BLOQUEADO / APROVADO / PUBLICADO / REVERTIDO |

## Antes do deploy: evidência por SHA
Preencher cada status somente com resultado real: `PASS`, `FAIL`, `BLOCKED` ou `NOT_RUN`.

| Gate | Resultado | SHA / evidência / executor |
|---|---|---|
| Lint | NOT_RUN | [ ] |
| TypeScript / typecheck | NOT_RUN | [ ] |
| Unitários | NOT_RUN | [ ] |
| Integração real / PostgreSQL quando exigido | NOT_RUN | [ ] |
| Contratos API/eventos | NOT_RUN | [ ] |
| Segurança / dependências / segredos | NOT_RUN | [ ] |
| Build do artefato | NOT_RUN | [ ] |
| Browser E2E | NOT_RUN | [ ] |
| Axe + revisão humana de foco/contraste | NOT_RUN | [ ] |
| Compatibilidade de schema / migrations | NOT_RUN | [ ] |
| Plano de rollback revisado | NOT_RUN | [ ] |

**Regra:** se o gate obrigatório não for PASS no mesmo SHA e ambiente apropriado, a promoção não pode ser declarada pronta. Falha por quota de build não equivale a teste aprovado nem prova por si só bug do código.

## Plano de promoção, migração e recuperação
- Pré-condições: versão atual, contrato de banco, compatibilidade entre consumidores, tráfego e responsáveis
- Etapa expand: adicionar nova estrutura compatível, sem excluir dados antigos
- Etapa migrate: executar transformação validada em lote controlado, logs minimizados e monitoramento
- Etapa contract: remover estrutura antiga apenas quando todos os consumidores estiverem compatíveis
- Interrupção: qual sinal dispara pausa ou reversão? quem tem permissão?
- Rollback de código: qual artefato anterior? qual janela segura?
- Rollback de banco: foi testado? o rollback é reversível ou requer compensação? nunca presumir que `down migration` restaura dados perdidos
- Comunicações: quem precisa saber do início, pausa, regressão e encerramento?
- Contingência: como operar se provedor de build ou integração externa estiver indisponível?

## Após o deploy
| Verificação | Resultado | Evidência |
|---|---|---|
| HTTP smoke de rotas/serviços | NOT_RUN | [ ] |
| Canonical/sitemap quando aplicável | NOT_RUN | [ ] |
| Observabilidade: erros, latência, fila, tracing | NOT_RUN | [ ] |
| Regras e operações principais | NOT_RUN | [ ] |
| Sinais de segurança / auditoria | NOT_RUN | [ ] |
| Recuperação de incidentes / rollback se necessário | NOT_RUN | [ ] |

## Registro de incidente ou mudança de decisão
- Sintoma e hora observada: [ ]
- O que foi realmente medido: [ ]
- Impacto e organizações afetadas, sem PII: [ ]
- Contenção aplicada e responsável: [ ]
- Correlação de trace/log sem credencial: [ ]
- Hipótese, confirmação e causa contribuinte: [ ]
- Reconciliação e verificação de recuperação: [ ]
- Ação preventiva e revisão de testes/runbook: [ ]

## Resultado final e responsabilidade
**Decisão:** [BLOQUEADO / APROVADO PARA PROMOÇÃO / PUBLICADO E VERIFICADO / REVERTIDO].

**Responsável / data / evidência real:** [ ].

Não declarar `PUBLICADO E VERIFICADO` apenas porque a PR foi integrada na Main, o pipeline mostrou uma etapa verde ou a URL do preview respondeu.
