Sprint 013 — Review
Período : 2026-08-13 · Features : 014 e 015
PRs : #286 e #287
Resumo
Planejado
Entregue
Features
2
2
Tarefas
12
11 — a 12ª precisa da chave mestra
Requisitos funcionais aceitos
23
23
Critérios de sucesso aceitos
14
9 — cinco pendem de coleta
O que foi feito
Tarefa
Entregável
Aceito
014-T001 a T005
ligação condicional no detalhe da issue e da equipe; 7 testes
sim
015-T001
consulta alargada, com __typename e id
sim
015-T002
pessoa nascendo da coleta, com o contexto fiado entre repositórios
sim
015-T003
bot recusado, por Mapper.account_type/1 chamado
sim
015-T004
idempotência, com collected_at preservado
sim
015-T005
evidência de equipe intacta — trabalhar não é pertencer
sim
015-T006
worked at na página da pessoa, com a evidência e sem a palavra membro
sim
O que não foi feito
Tarefa
Motivo
Destino
015-T007
exige coleta com a origem respondendo, e a chave mestra
pessoa mantenedora
Evidências
mix gates → 10 gates verdes, código de saída 0
542 testes, 17 novos
39 → 38 consultas no detalhe da issue (a ligação não custa consulta)
O que a análise achou antes do código
Achado
Consequência se passasse
ctx.pessoas montado uma vez
vínculo em alguns repositórios e não em outros, na mesma execução, sem erro
gravar_issue lê o mapa na mesma passada
author_person_id nulo com a pessoa existindo
replace_assignees usa o mesmo mapa
o defeito atingiria designado, e a spec só falava de autor
O erro de processo deste sprint, e ele é meu
Empurrei as duas features na mesma branch , e o PR #284 nasceu com os dois diffs — contra o
AGENTS.md §17 e contra o que o meu próprio backlog dizia na segunda seção: "dois PRs, um
sprint" .
Corrigido sem reescrever histórico: duas branches novas a partir da main, por cherry-pick, e o #284
fechado explicando. Nada se perdeu.
Por que aconteceu : a 015 começou como continuação da conversa da 014 — a decisão de criar as
pessoas saiu de medir a 014 —, e a continuidade da conversa virou continuidade da branch.
Dívida gerada
Dívida
Por quê
as issues antigas só ganham autor na próxima coleta
o payload guardado não tem o id; reprocessar não inventa o que não foi pedido
worked at mostra a organização, não o papel
papel organizacional é #99/#100, e o GitHub não fornece
Lições deste sprint
L52 — continuidade de conversa não é continuidade de branch;
L53 — o teto de um teste de custo vem da medida dos dois lados, nunca de escolha.