ADR-0083 — Aposentar a frota de agentes residentes; a unidade de autonomia passa a ser gatilho + gate
21/09/2026 · aceita
docs/adr/ADR-0083-aposentadoria-da-frota-de-agentes-residentes.md
ADR-0083 — Aposentar a frota de agentes residentes; a unidade de autonomia passa a ser gatilho + gate
Status: aceita Data: 2026-09-21 Decisor(es): Marcelo Lermen (board) Supersedes: ADR-0027 §"execução pela frota" (o Paperclip permanece como fonte da verdade do trabalho; o que sai é a execução por agentes residentes) · ADR-0077 §"reavaliar em 6 meses" (a reavaliação é antecipada, e o escopo dela muda — ver §Relação com o ADR-0077) Não muda: o Paperclip como quadro e fonte da verdade do trabalho (ADR-0027 §fonte) · a decisão de mantê-lo self-hospedado (ADR-0077 §mérito) · os gates em camadas L1/L2/L3
Contexto
Entre 05/2026 e 09/2026 operamos uma frota de 32 agentes residentes no Paperclip: entidades com identidade própria, sessão viva e iniciativa, que deveriam pegar trabalho do quadro e executá-lo. O ADR-0077 (ratificado em 04/08) decidiu manter o Paperclip self-hospedado e reavaliar em 6 meses, com gatilhos explícitos de reabertura antecipada.
Em 21/09/2026 os gatilhos foram medidos.
O que a medição mostrou
1. Os três proxies de custo do ADR-0077 triplicaram. Rodando os comandos canônicos que ele fixou, no mesmo repositório:
| medida (60 dias) | baseline 03/08 | 21/09 |
|---|---|---|
commits em paths *paperclip* | 14 | 49 |
pickaxe -S paperclip | 45 | 143 |
| por mensagem | 41 | 154 |
Removendo ruído óbvio (bumps de dependência, lotes de lições, handoffs), restam 41 contra 14.
2. O custo não está onde o ADR-0077 procurou. Separando os 41 por natureza: 19 são operação da frota (OAuth, watchdog, deriva de patch de autorização, alerta de agente em erro) e 17 são o fork em si (API, MCP, upgrade, restore). E o aparato conta a mesma história: dos 37 scripts em scripts/paperclip/, 24 existem só para manter credencial viva, vigiar sessão e detectar deriva. Quase dois terços do código não faz trabalho — mantém a possibilidade de trabalho.
3. O que esse aparato sustenta está parado, e não por ociosidade. Dos 32 agentes: 19 ociosos, 8 pausados, 5 em erro. Nenhuma execução desde 09/09. Os cinco com atividade mais recente estão todos em erro, incluindo uma tentativa às 08:49 do próprio dia 21/09. A frota não está adormecida: está tentando e falhando de forma contínua há doze dias.
4. O padrão que funcionou no mesmo período é outro. No dia 21/09, o agente revisor de segurança auditou o PR #52 e encontrou um furo real que o autor não tinha visto (aprovação por label que não era revogada ao remover o label). Ele não tem identidade, não tem sessão e não tem iniciativa: nasce num evento de pull_request, opina sob esquema validado, e um juiz determinístico decide. Mesma coisa no executor disparado por etiqueta em issue.
O diagnóstico
A frota não falhou porque agentes não funcionam. Falhou porque a unidade de autonomia escolhida foi o agente residente, e manter um agente residente de pé exige identidade viva, credencial renovável e máquina ligada. Esse aparato virou o trabalho, e é ele que quebra.
Decisão
A frota de agentes residentes é aposentada. A unidade de autonomia passa a ser o gatilho acoplado a um gate.
- Nenhum processo agentic fica vivo aguardando trabalho. Execução nasce de evento (pull request, issue, agenda, webhook), com a credencial da esteira, e morre no veredito.
- Nenhuma saída de agente vira ação por conta própria. Ela passa por um juiz determinístico que reprova em toda dúvida — sessão que morreu, resposta fora do esquema, aprovação contradita por achado grave.
- O Paperclip permanece como quadro e fonte da verdade do trabalho. O que sai é a execução pela frota, não o registro.
- Os papéis não se perdem: CISO, QA, UX, Doc Writer, Test Writer e Root-Cause já existem versionados em
.claude/agents/e são invocados como subagentes efêmeros. O que se aposenta é a instância residente, não a função.
Relação com o ADR-0077
O ADR-0077 decidiu manter o Paperclip e reavaliar em 6 meses. Esta decisão não o contradiz nesse mérito: o Paperclip fica.
O que ela corrige é o escopo da pergunta. O ADR-0077 tratou "Paperclip" como uma coisa só e comparou manter contra migrar a plataforma inteira. A medição de 21/09 mostra que são duas camadas com economias distintas — o quadro (barato, funcionando, 34 cards em 7 dias) e a execução residente (cara, quebrada, zero entrega). Misturá-las foi o que empurrou a decisão para fevereiro. Separando, a camada cara decide-se agora e a barata permanece.
A data de 2027-02-03 do ADR-0077 segue valendo para o que sobrou dele: o quadro self-hospedado.
Alternativas consideradas
- Consertar a frota e seguir. Recusada: o conserto é renovar credencial, e a credencial vence de novo. O modo de falha é estrutural, não um incidente. Voltaríamos a pagar 24 scripts de sustentação para uma camada que a execução por evento já cobre.
- Esperar 2027-02-03, como previsto. Recusada: os gatilhos de reabertura antecipada do próprio ADR-0077 dispararam. Esperar é pagar mais quatro meses de manutenção por zero entrega, e treinar todo mundo a ignorar um alarme de agente em erro que toca todo dia.
- Aposentar o Paperclip junto. Recusada: não há evidência que a sustente. O quadro recebeu 34 cards em 7 dias e foi onde todo achado de 21/09 ficou registrado. Aposentar o que funciona junto com o que não funciona é o erro simétrico.
Consequências
O que se ganha
- Fim de 24 scripts de sustentação de credencial e sessão, e do alarme diário de agente em erro.
- O modo de falha some junto: não há OAuth a renovar, watchdog a vigiar nem Mac a manter ligado.
- A execução passa a usar a credencial de esteira, que já é rotacionada pelo mesmo caminho dos outros secrets.
⚠️ O que se perde, e precisa estar escrito
Iniciativa. A frota existia para fazer o trabalho que ninguém pediu e que alguém precisaria ter começado sozinho. Execução por evento responde a estímulo; ela não acorda às 3h da manhã porque percebeu que algo deveria ser feito.
Hoje isso é coberto por agenda (cron) para o que é previsível — dead-man switch, vigia de gate, drift de required. O que não fica coberto é o não-previsível: a varredura que ninguém agendou, a pergunta que ninguém formulou. Aceitar esta decisão é aceitar que, por enquanto, isso volta a depender de uma sessão com gente presente.
Não se resolve isso com um agente residente de novo. Se voltar, volta como gatilho agendado com escopo declarado — e aí é uma decisão nova, com esta lição no meio.
Lacuna nomeada
Enquanto os 32 agentes existirem em estado de erro no Paperclip, o alarme de frota continua tocando por eles. Desligar o alarme antes de remover os agentes troca ruído por cegueira; remover os agentes antes de desligar o alarme gera uma janela de ruído. A ordem correta é: remover primeiro, desligar o alarme depois, e o alarme passa a vigiar apenas o que restar.
Rollback plan
A frota não é destruída, é desativada. Os agentes permanecem registrados no Paperclip, pausados, por 60 dias (até 2026-11-20). Nesse período, reverter é reativar e restaurar a credencial — os scripts de sustentação continuam versionados no repositório legado e recuperáveis pelo histórico.
Depois da janela, a reversão passa a ser uma decisão nova, que deve citar esta.
Métricas de revisão (2026-11-20)
| Métrica | Como medir | O que faria reabrir |
|---|---|---|
| Trabalho que deixou de acontecer por falta de iniciativa | itens levantados em sessão que a frota teria pego sozinha, contados no handoff | ≥3 casos concretos em 60 dias |
| Custo de manutenção após a aposentadoria | comando canônico do ADR-0077 em paths *paperclip* | não cair abaixo de 20 commits/60d — sinal de que o custo não era da frota |
| Cobertura por gatilho | eventos agentic ativos em .github/workflows | estagnar em 2 — sinal de que a execução por evento não está substituindo de fato |
Fora de escopo
- O futuro do Paperclip como quadro: segue no ADR-0077, revisão em 2027-02-03.
- A expansão para domínios fora de engenharia (atendimento, vendas, mídias): depende da camada de aceite por domínio, que não existe e não nasce aqui.
Só leitura. Toda mudança nestes documentos é pull request.