Sprint 024 — Mensagens e o botão da chave¶
Período: 2026-08-28 a 2026-09-04 Features: 047-mensagens-internacionalizadas e 048-botao-sem-chave-desabilitado Planos: 047/plan.md · 048/plan.md
Objetivo do sprint¶
Tudo o que a plataforma fala às pessoas sai do código e entra num catálogo com verificação nos gates (047), e os botões de geração dizem ANTES do clique quando falta a chave do provedor — com a guarda de domínio que a medição revelou faltar (048). Duas features, duas branches, dois PRs — nunca misturadas (constituição).
Lições aplicadas¶
Do registro acumulado, consideradas neste sprint:
| Lição | Origem | Como está sendo aplicada |
|---|---|---|
| L60 | Sprint 016/022 | forma completa em todo gate: > log 2>&1; echo "EXIT=$?" >> log |
| L71 | Sprint 022 | busca dirigida nos dois planos: 047 prova que NENHUM teste de texto quebra (msgid = frase atual); 048 mapeia os testes de gerar_perfil e run_now |
| L03 | Sprint 001 | verificador da 047 e guarda da 048 nascem pelo teste da violação |
| L38 | Sprint 009 | 048: 1 leitura de credencial por mount, nunca por linha; 047: zero consulta |
| L61 | Sprint 021 | 047: lacuna de tradução cai no msgid (nunca chave crua); 048: sem chave vira ramo com frase, não erro tardio |
| L72 | Sprint 023 | aplicada preventivamente: a iteration 024 foi criada reenviando as três vigentes, com as 34 atribuições capturadas ANTES e reatribuídas DEPOIS, conferidas por consulta (15+19 antes = 15+19 depois) |
| L75 | Sprint 023 | conferência por CONTEÚDO antes de qualquer squash-merge; foi ela que resgatou a emenda 1.6.0 (#571) horas antes deste sprint |
Sprint no GitHub¶
Iteration: Sprint 024 — Mensagens e o botão da chave · 2026-09-05 · 7 dias (id 1dbd69cf)
Projeto: The Band
Nota de calendário: as datas da iteration seguem a grade do campo (022 e 023 ocupam até 2026-09-04); o período REAL do sprint é o do cabeçalho deste documento.
Reparo preventivo registrado (L72): acrescentar a 024 exige reenviar a lista
inteira — os ids a00ce208/a61c4aa5 viraram 19bfe13e/d56dc05c e os 34 itens
foram reatribuídos na hora, conferidos por consulta.
Limitações herdadas: tipos Epic/User Story seguem inexistentes na
organização (criar exige aval); hierarquia por sub-issues não usada — tarefa
referencia a US no corpo. Priority do projeto só tem P0/P1/P2 — a US3 da 047
(P3 na spec) recebe P2 no campo, com a prioridade real dita aqui.
User stories selecionadas¶
| # | User story | Feature | Issue | Priority | Estimate | Critérios |
|---|---|---|---|---|---|---|
| US1 | Toda mensagem de erro sai de arquivo de tradução | 047 | #573 | P1 | 5 | 3 |
| US2 | Mensagens do sistema no mesmo regime | 047 | #574 | P2 | 3 | 2 |
| US3 | Um idioma escolhido, dois disponíveis | 047 | #575 | P2 (P3 na spec) | 3 | 2 |
| US1 | O botão desabilitado diz o que falta | 048 | #587 | P1 | 3 | 5 |
Priority é a importance da SRO; Estimate é a complexity. Em branco =
desconhecido, não zero.
Tarefas¶
| # | Tarefa | Atende | Issue | Estimate | Estado |
|---|---|---|---|---|---|
| 047/T001 | Abrir baseline dos gates | US1 | #576 | 1 | feito |
| 047/T002 | Configurar locales e domínios do catálogo | US1 | #577 | 1 | feito |
| 047/T003 | Verificador de literais, pela violação | US1 | #578 | 3 | feito |
| 047/T004 | O gate mensagens no catálogo | US1 | #579 | 1 | feito |
| 047/T005 | As mensagens da 045 migram sem mudar um byte | US1 | #580 | 2 | feito |
| 047/T006 | Flashes de erro dos LiveViews para errors | US1 | #581 | 5 | feito |
| 047/T007 | Confirmações e avisos para sistema | US2 | #582 | 3 | feito |
| 047/T008 | Pendências de tela, medidas e nomeadas | US2 | #583 | 1 | feito |
| 047/T009 | O relatório de lacunas | US3 | #584 | 2 | feito |
| 047/T010 | A troca de idioma provada | US3 | #585 | 2 | feito |
| 047/T011 | Gates verdes e PR no padrão | US3 | #586 | 1 | feito |
| 048/T001 | Abrir baseline dos gates | US1 | #588 | 1 | feito |
| 048/T002 | A guarda do domínio, pela violação | US1 | #589 | 2 | feito |
| 048/T003 | A página da pessoa diz antes do clique | US1 | #590 | 3 | feito |
| 048/T004 | A geração mensal diz antes, tenant-only | US1 | #591 | 2 | feito |
| 048/T005 | Gates verdes e PR no padrão | US1 | #592 | 1 | feito |
Tarefa não recebe Priority: herda a da user story que atende.
Estados: a fazer · em andamento · feito · bloqueado · não iniciado
Fora do escopo deste sprint¶
- Texto HEEx das telas (notices, estados vazios, títulos) — fica ENUMERADO em
specs/047-mensagens-internacionalizadas/pendencias.md(T008), queimado em sprints futuros; o verificador v1 cobre os ralos deput_flash(fronteira do contrato). - Tradução pt completa — nasce pelas recusas (T010); o resto fica visível no relatório de lacunas, nunca silencioso.
- 050 (produção) — especificada e adiada por decisão da pessoa mantenedora ("faça o deploy depois").
- 049 (entrar com GitHub) — depende da 050.
- #568 (gestão da marca de administrador) — backlog, precisa de spec.
- PubSub de credencial (048) — rejeitado no plano: problema não existe (princípio VIII).
Riscos e dependências¶
- 047/T006 toca 12 arquivos com 55 chamadas — o risco é mudar UM byte de texto; a defesa é a suíte inteira como sentinela (L71) e o contrato que proíbe.
- O gate novo da 047 nasce vermelho de propósito até T007 — a run completa dos gates só é cobrada em T011; PRs intermediários não existem (um PR por feature, no fim dela).
- 048 muda o contrato de
Profiles.request/3— quem mais o chama precisa tratar:sem_chave(busca dirigida no plano diz: só as duas telas). - As duas features tocam
people_live/show.ex— 048 entra DEPOIS do merge da 047 ou faz rebase; nunca as duas abertas sobre o mesmo arquivo sem ordem declarada.
Definition of Done do sprint¶
Além da DoD por tarefa:
- [x] quality gates verdes nas duas branches (forma L60, EXIT no log) — 14/14 nas duas, EXIT=0
- [x] base de conhecimento válida (parte dos gates)
- [x] issues #573–#592 encerradas à mão com evidência (PRs no padrão 1.6.0 não fecham sozinhos)
- [x]
sprint-review.mdescrito - [x]
licoes-aprendidas.mdatualizado — L76–L79