Sprint 025 — Review¶
Período: 2026-08-29 (um dia) Herança: retrabalho das US 047/US1–US2 · Feature: 051 PRs: #611 (retrabalho, squash) e #612 (051, squash) — CI verde, revisão pedida ao abrir nos dois, ambos no board.
Resumo¶
| Planejado | Entregue | |
|---|---|---|
| User stories | 4 (2 herdadas + 2 novas) | 4 avaliadas |
| Tarefas | 10 (2 herança + 8 da 051) | 10 executadas |
| Entregáveis aceitos | 4 | 2 (D2 pendências, D3 cadastro) |
Aceitação (registro completo): confirmada pela pessoa mantenedora
em 2026-08-29. #574 e #597 ACEITAS com ressalvas; #573 NÃO ACEITA pela segunda
vez (o retrabalho fechou o contraexemplo e deixou o irmão: frases nascendo em
FUNÇÃO DE ORIGEM — PatternValidator.explicar/1 no domínio e primeira_mensagem/1
— fora do catálogo e fora das pendências); #598 NÃO ACEITA (dois critérios de
borda escritos em spec/contrato/tasks e não entregues: organização na busca de
homônimos e observação terminada dita — com o agravante do comentário no código
contradizendo o contrato sem correção registrada).
O que foi feito¶
| Tarefa | Issue | Entregável | Sucesso |
|---|---|---|---|
| 047/T012 | #609 | Verificador v2 (classe assign, 13 migrados por AST) | não — a classe função-origem ficou de fora, e a US1 caiu de novo |
| 047/T013 | #610 | Pendências com amostragem (L80), US3 alinhada | sim |
| 051/T001–T002, T004 | #599, #600, #602 | Cadastro transacional com temporária no ato | sim |
| 051/T003, T005–T008 | #601, #603–#606 | O elo na área (busca, conflito nomeado, revogação) | não — dois edge cases da spec não entregues |
O que não foi aceito, e o destino¶
Retrabalho nomeado e finito, primeiro na fila do sprint 026 (tarefas novas, nunca reabertura):
- #573: a borda traduz o motivo — PatternValidator devolve tuplas,
humanizar/1completa,primeira_mensagem/1emotivo/1pelo catálogo (os msgids do Ecto já existem em errors.po). 5 frases + 2 helpers. - #598: organização no resultado da busca + marca de observação terminada.
Defeitos e correções no caminho (fora do escopo do sprint, na sessão)¶
- Flake da
API_KEY(restauração assimétrica de env em teste) decidia CI por seed — consertado na raiz (#607) com três seeds fixos como prova. - Gitflow adotado (constituição 1.7.0):
developmentintegra, merge namainé deploy; PRs remirados, branch default trocada. - Hook do impeccable ligado para
.ex/.heex(#615): o detector de design roda a cada edição de página.
Evidências¶
- Gates 14/14 com EXIT no log nas duas branches; CI verde;
mix mensagens.verificarEXIT=0 com a classe assign dentro; 13+6 testes novos verdes; o ciclo associar→revogar→login provado de ponta a ponta; captura da lista com os dois estados ao vivo, olhada. - A aceitação executou as evidências de novo, de forma independente — e foi ela que achou os dois casos que os gates não veem.
Dívida gerada¶
- Rótulos de situação (
origem_rotulo/1) — classe HEEx-pendência por decisão do papel, nomeados nas pendências. - Dois testes prometidos no contrato da 051 e não escritos (contagem de consultas L38 e de temporárias emitidas) — comportamento conferido por leitura.
- Eventos de busca não apagam a temporária (diverge do moduledoc; não reaparece).
- Revisão registrada: zero pela terceira família de PRs — pedido existe, revisão não; a saída estrutural (PR por identidade de agente) segue não decidida.
Lições deste sprint¶
No registro acumulado: L81 (fechar o contraexemplo não fecha a classe — caçar os irmãos pelo padrão antes de entregar retrabalho) e L82 (comentário que contradiz o contrato é a violação documentando a si mesma — divergir exige correção registrada no mesmo commit, e o verificador disso é a aceitação).