docs(testing-audit): estado final protegido (draft fail-closed) — CI green no SHA final

This commit is contained in:
Francisco Solla 2026-08-25 15:45:59 -03:00
parent dd2735340c
commit 0c3805e605

View file

@ -110,12 +110,14 @@ Descartados pela triage (sem valor real): P7/P8/P9 (manter — ver disposições
## Estado final do PR
**PR [#919](https://github.com/fsolla/teqo/pull/919)** — branch `agent/testing-audit-2026-08-25-run2`, base `main`, Ready, mergeable. CI `checks` pendente no SHA final (41a87a3a) no momento deste relatório; automerge desarmado e verificado às 15:18:55. Falhas locais de int (família #906) registradas acima; o gate:ci mirror passou verde 2× neste SHA (14:50:53, 14:57:33).
**PR [#919](https://github.com/fsolla/teqo/pull/919)** — branch `agent/testing-audit-2026-08-25-run2`, base `main`. CI `checks` **green** no SHA final (3337ef03, `success` ~15:39Z); `mergeStateStatus: CLEAN`, mergeable.
**Automerge: desarmado e verificado (exit 0) às 15:25:10.** Nas re-verificações seguintes, a rede à API do GitHub instabilizou (timeouts intermitentes no GraphQL) e o fallback fail-closed da skill converteu o PR para **draft** (~15:42Z, `autoMergeRequest: null` mantido) — veto estrutural do safety-net. **Estado final protegido: DRAFT + CI green + mergeable.** Passo humano pela manhã: `gh pr ready 919` (o safety-net re-arma pelo fluxo normal) e decisão humana de merge, conforme o contrato "sem auto-merge armado" desta skill.
Logística do fecho (transparência):
- HTTPS a `github.com` ficou inacessível da máquina (~14:50–15:17, conexão ao 443 timeout; `api.github.com` ok) — o push foi feito por SSH (`ssh://git@github.com/fsolla/teqo.git`), 15:17:23.
- Após 3 gates `gate:push` consecutivos barrados APENAS pelo flake int (#906, assinaturas rotativas), o push usou o escape documentado `git push --no-verify` (o mesmo gate já havia passado verde 2× neste SHA; o CI do PR é o gate real).
- Após 3 gates `gate:push` consecutivos barrados APENAS pelo flake int (#906, assinaturas rotativas), o push usou o escape documentado `git push --no-verify` (o mesmo gate já havia passado verde 2× neste SHA; o CI do PR é o gate real — e ficou green).
## Fase 5 — desarme do auto-merge
@ -123,4 +125,5 @@ Protocolo determinístico desta skill: criação ready → desarme → verifica
1. 15:17:33 — criação+desarme em um comando: PR #919 criado Ready, mas a verificação e a conversão para draft falharam por rede (`fetch failed` intermitente, mesma janela do bloqueio HTTPS); exit 1 com aviso de intervenção.
2. 15:18:39 — retry imediato `--pr 919 --draft-on-failure`: status verificado e impresso — `{"number":919,"isDraft":false,"mergeable":"MERGEABLE","mergeStateStatus":"BLOCKED","autoMergeRequest":null}` — desarmado e Ready, exit 0.
3. Pós-push do relatório final (SHA novo): re-desarme imediatamente após o push (o `synchronize` rearma), com o CI ainda pendente.
3. 15:22 — push do relatório final (SHA 3337ef03, `synchronize` rearma) → re-desarme imediato verificado exit 0 (15:22:22); re-verificação às 15:25:10 exit 0 (o workflow `PR Ready + auto-merge` do novo SHA já havia concluído `success`).
4. 15:41–15:44 — re-verificações do fecho sob rede instável: leituras GraphQL falharam 4×; o `--draft-on-failure` converteu a PR para **draft** (fail-closed) mantendo `autoMergeRequest: null` — fallback §4 da Fase 5 aplicado: **humano vira ready pela manhã** (`gh pr ready 919`).