Pull request¶
Antes de abrir¶
- Branch no padrão 🔒 (Branches) e saída da
devatualizada - Você leu o diff inteiro, arquivo por arquivo:
git diff dev...HEAD - Suíte local verde (Testes e qualidade local)
- Nada fora do escopo da subtarefa no diff
- Mudou
models.py? Nenhum arquivo emalembic/versions/🔒 e a seção "Banco" preenchida (Mudar o banco) - Você sabe explicar cada linha do diff sem ajuda (Definition of Done)
Alvo e título¶
- Alvo:
dev(já vem selecionado). Só PR de release ouhotfixaponta paramain. Nos repos de documentação, o alvo émain. - ✅ Título: o mesmo padrão do commit —
feat: permitir filtrar respondentes por país. O GitHub sugere o nome da branch como título (Feat/48 integracao com backend): troque antes de criar.
Descrição¶
Copie e preencha. Seção que não se aplica fica com a frase indicada, não em branco — seção vazia faz o revisor perguntar se você esqueceu.
## O que muda
<uma frase: o que o sistema passa a fazer>
## Por quê
<o motivo. O link do ClickUp não substitui isto>
## Como verificar
1. <passo copiável: comando, rota, tela>
2. <o que deve aparecer>
## Premissas
- 🟡 P-NNN — <interpretação adotada>
<ou "nenhuma">
## Banco
- O que mudou: <tabela/coluna/tipo/índice/constraint>
- Ajustes manuais na migration temporária: <rename `a` → `b` · backfill de … ·
`server_default` em … > ou "nenhum ajuste manual"
<ou "models.py não mudou">
---
IA: <ferramenta — o que fez> ou "nenhuma"
Tarefa: <link do ClickUp>
| Seção | Marca | Por quê |
|---|---|---|
| O que muda · Por quê · Como verificar | ✅ | está na cartilha dos repos. "Como verificar" é o roteiro do revisor: sem ele, a review vira adivinhação |
| Tarefa (link do ClickUp) | ✅ | cartilha dos repos |
| Premissas | ✅ | decisão de produto tomada sem a cliente precisa estar à vista de quem revisa (Premissas) |
| Banco | ✅ | ADR-0009: o PR de tarefa sobe sem migration, e esta seção é o único jeito de quem consolida saber o que o autogenerate não sabe |
Linha IA: |
🟡 | proposta, ainda não adotada por todo o time (Em consolidação) |
A seção Banco não é opcional quando models.py muda
Um rename de coluna, feito pelo autogenerate, vira drop + add e perde o dado
da coluna. Quem escreve a migration consolidada só sabe que era um rename se você
disser aqui.
Peça a review¶
A um colega que conheça a parte do código que você mexeu — qualquer pessoa do time pode
aprovar. Sem saber a quem pedir, peça ao time creed-educa-ai/maintainers
(Quem é quem):
gh pr create --base dev --reviewer creed-educa-ai/maintainers
Para mergear 🔒¶
| Exigência | Onde é aplicada |
|---|---|
| 1 aprovação de outra pessoa (não dá para aprovar o próprio PR) | ruleset |
CI qualidade verde |
check obrigatório |
Check nome-da-branch verde |
check obrigatório |
| Todas as conversas resolvidas | ruleset |
| Aprovação descartada se chegar commit novo depois dela | ruleset |
Existe uma saída de emergência: o papel admin está na lista de bypass do ruleset e mergeia sem aprovação. Ela anula a única revisão que o projeto tem, então serve para destravar setup ou incidente — não para pular a fila.
Tamanho¶
PR pequeno é revisado no mesmo dia; PR enorme espera e volta com comentário raso. Uma subtarefa bem cortada cabe num PR que se lê de uma vez. Se o seu não cabe, provavelmente são duas tarefas — converse com quem especificou antes de abrir.