@@ -51,6 +51,21 @@ gh api repos/{owner}/{repo}/issues/<n>/timeline --jq '.[]|select(.event=="closed
5151gh pr view < n> --json comments --jq ' [.comments[]|select(.body|test("pass=9|pass=10"))]|length'
5252```
5353
54+ ** Em 08/09/2026 a varredura rendeu mais seis, e o padrão ficou nítido:** #612 (@CristianoFF43 ,
55+ fechado ** 29 minutos** depois de abrir), #622 (@rafaelbatistazz , ** 3min34s** ), e #421 /#423 /#424 /#425
56+ (@rafaeskytrabalho , ** os quatro no mesmo segundo** ). Comentários humanos nos seis: ** zero** . Dentro
57+ deles, nove consertos com teste e fragmento — entre os quais o lembrete de compromisso que nunca
58+ dispara, a IA sem onde gravar campo personalizado, e o fuso do dia civil que faz o horário oferecido
59+ sumir da consulta seguinte. As frases com que fecharam ("aberto no repo errado", "cancelando",
60+ "ruído") são de gente pedindo desculpa por existir. ** Nenhuma tinha errado.**
61+
62+ ** A terceira pergunta, que faltava aqui e é a única que decide:** * o defeito ainda está vivo na
63+ ` main ` de hoje?* Não se responde por semelhança de nome de arquivo, e ** rastro não é resgate** —
64+ ` git log --grep="#<n>" ` achar commit prova que alguém mexeu no assunto, não que o conteúdo entrou
65+ (um resgate desta casa levou 3 de 16 arquivos, corretamente). E um teste na ` main ` com nome parecido
66+ não é o mesmo teste: ` barra-lateral-nao-flutua ` e ` barra-lateral-nao-perde-o-sticky ` medem coisas
67+ diferentes. Leia o diff dele e confira a linha.
68+
5469** Fechado pelo autor + zero veredito nosso = recuperar.** Em 06/09/2026, @maugarciasa fechou #595 e
5570#596 ** no mesmo segundo** , duas horas depois de abrir. Levavam três consertos medidos ** em
5671produção** : um id de modelo fixo (` claude-haiku-4-5 ` ) que matava o flywheel em toda instalação
@@ -145,6 +160,18 @@ cobrem o artefato que o self-hoster instala. Um triador que a lesse declararia "
145160obrigatórios" tendo rodado 3 de 5, dentro do próprio documento que o ` CLAUDE.md ` aponta
146161como o lugar onde medir contra a régua errada é o modo de falha número um.
147162
163+ ** A prévia precisa virar worktree, senão não se roda nada nela.** ` merge-tree ` devolve uma * tree* ,
164+ e tree não se faz checkout. São dois comandos, e sem eles o passe 3 fica na teoria:
165+
166+ ``` bash
167+ T=$( git merge-tree --write-tree origin/main < sha-do-pr> )
168+ C=$( git commit-tree $T -p origin/main -p < sha-do-pr> -m " prévia do merge (não publicar)" )
169+ git branch -f previa/< n> $C && git worktree add ../wt/previa-< n> previa/< n>
170+ ```
171+
172+ Apague os dois no fim (` git worktree remove ` , ` git branch -D ` ) — eles não vão a lugar nenhum, e o
173+ passe 12-bis cobra o disco.
174+
148175Meça exit code ** direto** . ` cmd | tail ` devolve o exit do ` tail ` — verde falso.
149176
150177---
@@ -544,6 +571,16 @@ escrito código para um defeito inexistente.
544571** Nenhum pedido sai sem a medição que prova o defeito, anexada ao pedido.** Se você não mediu, não é
545572pedido: é pergunta, e vai redigido como pergunta.
546573
574+ ** E há uma classe de afirmação que nunca é publicável: a que se apoia em ausência de registro
575+ público.** Medido em 08/09/2026: a spec do PR #628 dizia que uma decisão de produto fora * "tomada
576+ diretamente com o dono do produto"* , e não havia issue, discussão ou comentário registrando isso. O
577+ veredito em rascunho dizia * "decidiu no lugar do dono"* . O cético derrubou, e com razão: a
578+ explicação concorrente — ** a conversa aconteceu em canal privado** — não é eliminável por quem tria.
579+ Só o dono elimina.
580+
581+ * Não achei registro* mede a ** sua busca** , não a ** conduta dele** . Vira pergunta ao dono antes de
582+ publicar; ao contribuidor vai marcada como pergunta, com essas palavras.
583+
547584---
548585
549586## 8. Reconciliação
@@ -694,6 +731,22 @@ VERSÃO: <patch | minor | major | nenhuma> — <o que o dono da VPS precisa
694731Ausência de dado herda a frase otimista de quem escreve; escrever o vazio explicitamente é o que
695732impede isso.
696733
734+ ** Há um segundo campo que o cético cobra, e ele é sobre o TOM: de quem é a dívida.** Para cada
735+ bloqueador, antes de escrever, responda — * existia uma guarda que deveria ter pego isto, e ela
736+ estava cega?* Se sim, o bloqueador é ** nosso** , ele não tinha como saber, e o texto muda de "faltou"
737+ para "a nossa guarda não enxerga, e eu conserto".
738+
739+ Medido em 08/09/2026, no PR #628 : ** dois dos cinco bloqueadores que eu ia cobrar dele eram nossos.**
740+ As duas guardas de packaging (` canal-stable-move-em-bloco.test.ts:78 ` e
741+ ` packaging-artefato-do-cliente.test.ts:226 ` ) trazem a lista das nossas imagens ** escrita à mão** e
742+ fazem ` toContain ` sobre ela — uma quarta imagem é invisível por construção, e as duas passaram. Ele
743+ tinha atualizado todos os gates que sabem contar. O terceiro era uma regressão de tradução nascida
744+ no ** commit de merge** dele, colateral de conflito num hunk vizinho: sem a atribuição, lê como
745+ desleixo.
746+
747+ O custo de errar essa separação é assimétrico. Cobrar dele o que é nosso queima quem contribuiu de
748+ graça; assumir o que é dele não custa quase nada.
749+
697750Aplique a label do desfecho: ` triagem:pronto ` , ` triagem:bloqueado ` ou ` triagem:decisao ` .
698751
699752---
@@ -889,6 +942,20 @@ Cada um destes foi cometido de verdade nesta casa, e é por isso que estão escr
8899429 . ` NÃO MEDIDO ` ausente. É campo obrigatório.
89094310 . Exigir sem medir (passe 7).
89194411 . Tratar rede de segurança como durável só porque existe. Tag, backup e réplica também se medem.
945+ 12 . ** Ler este arquivo do disco.** É o modo de falha nº 1 aplicado ao próprio procedimento, e ele
946+ foi cometido em 08/09/2026: a árvore de trabalho estava numa branch cujo ` TRIAGEM.md ` tinha
947+ ** 319 linhas** enquanto o do ` origin/main ` tinha ** 1800** . Vinte seções nunca foram lidas —
948+ inclusive o 0-bis, que a triagem reinventou do zero achando que era passe novo. A primeira linha
949+ da sessão é ` git show origin/main:triagem/TRIAGEM.md ` , e o controle é ` wc -l ` nos dois.
950+ 13 . ` gh run view --log-failed ` devolve * "run is still in progress"* enquanto ** outro job do mesmo
951+ run** estiver pendente — e isso lê como "não consegui medir". Meça pelo job (` --job <id> --log ` )
952+ ou espere o run inteiro fechar.
953+ 14 . Contar o vermelho do CI pela lembrança em vez do rodapé de agora. Um veredito de 08/09/2026
954+ dizia dois portões vermelhos quando eram ** três** : o ` e2e ` estava pendente na hora da medição,
955+ fechou vermelho depois, e ficou em ` NÃO MEDIDO ` . ** Reconfira ` gh pr checks ` imediatamente antes
956+ de publicar** — o alvo se move enquanto você escreve.
957+ 15 . Publicar afirmação apoiada em ausência de registro público (passe 7).
958+ 16 . Cobrar do contribuidor bloqueador cuja guarda nossa estava cega (passe 9).
89295912 . ** Fila medida em paralelo satura a máquina, e a saturação mente em vermelho.** Medido em
893960 2026-09-03: sete agentes de triagem rodando ao mesmo tempo levaram o ` load average ` de 0,9 para
894961 ** 90,7** , e nesse regime o ` next build ` morreu duas vezes com ` ELIFECYCLE 143 ` — ` SIGTERM ` , não
0 commit comments