ADR-022: Evoluir o gate propose/accept (BR-12.3) para política em camadas por confiança
Date: 2026-06-07 Status: Accepted (owner, 2026-06-07) Author: Rômulo Febasi
Context
A BR-12.3: “IA propõe, humano sanciona”: é hoje uma regra dura e
absoluta: toda ferramenta de mutação via MCP grava em fila pendente e só é
aplicada após syn pending accept. Foi a decisão certa para a v0.2–v0.6:
estabeleceu o write-path governado que é a única posição defensável do
produto (proveniência auditável + propose/accept + identidade assinada),
contra um substrato: Markdown-como-verdade, índice descartável, busca
híbrida on-device: que já é commodity (basic-memory, o Memory MCP de
referência da Anthropic, e qualquer servidor MCP de fim de semana fazem o
mesmo).
Uma auditoria estratégica (2026-06-07, cinco lentes: competitiva, IA/ML, comportamental, econômica, arquitetural) expôs duas pressões independentes que convergem sobre o caráter absoluto do gate:
-
Comportamental: o gate vira carimbo no volume. A literatura de automação revisada por pares (Parasuraman & Manzey, Human Factors, 2010; revisão sistemática PMC3240751) é categórica: quando uma fila de decisões imperfeitas cresce, o revisor desenvolve automation complacency:
syn pending acceptvira reflexo. O efeito atinge especialistas igual a novatos e não se treina para fora. Um gate que o usuário aprende a carimbar deixou de ser um gate; a garantia de segurança degrada silenciosamente exatamente onde mais importa. -
IA/ML: o gate absoluto bloqueia autonomia. O
syn agent(SYN-185) pressupõe um loop que roda desacompanhado; um gate que para em cada escrita é incompatível com isso. Ao mesmo tempo, a literatura de write-path de 2026 (mem0 State of Memory; Graphiti/Zep) diz que o problema real não é impedir escrita, é impedir que um erro se torne durável, e a resposta do campo é reversibilidade + proveniência + escopo, não um portão humano universal.
A síntese das duas lentes é a mesma frase: o fosso é proveniência + reversibilidade, não o gate em si. O gate é uma política sobre esse núcleo, não o núcleo.
Mexer na BR-12.3 é decisão de dono: é a regra que define a identidade do produto. Aceito pelo dono em 2026-06-07. A implementação é rastreada por SYN-218 (#209, v0.7); até ela landar, o comportamento em código permanece o gate absoluto.
Decision
Reposicionar a BR-12.3 de regra dura para política em camadas por risco/confiança, mantendo o princípio “IA propõe, humano sanciona” como default, não como invariante universal:
- Cada proposal recebe um score de risco/confiança.
- Escrituras de baixo risco e reversíveis (ex.: linkar duas entidades que já existem) podem ser auto-aplicadas sob política, sempre com undo git-backed e carimbo de proveniência.
- Asserções novas, irreversíveis ou de identidade continuam exigindo
syn pending accepthumano: sem exceção no default. - O núcleo inegociável passa a ser proveniência + reversibilidade: nada
é auto-aplicado que não seja carimbado e desfazível por
syn audit replay. - A política é configurável, com default conservador (no default, nenhuma asserção nova é auto-aplicada).
Implementado em SYN-218 (config [proposals] auto_apply + core::policy;
default manual, opt-in safe para link_entity entre entidades existentes
não-self, carimbado auto-accepted na trilha). Destrava SYN-185 (#177,
syn agent) com segurança.
Consequences
- Melhora: mata o rubber-stamping (a fila deixa de ser uma notificação
descartável; o accept humano só aparece onde ganha o seu custo).
Destrava autonomia (
syn agent) sem abandonar a garantia. Alinha o produto à direção de 2026 (reversibilidade > prevenção universal). - Piora: aumenta a superfície de raciocínio: agora há um scorer de risco que pode errar; um auto-apply indevido é uma regressão de confiança séria. Mitigação: default conservador + reversibilidade universal + testes adversariais do scorer.
- Piora (narrativa): “IA nunca escreve direto” era uma frase de marketing limpa; “IA escreve coisas reversíveis de baixo risco e propõe o resto” é mais fiel mas menos slogan. O reframe de posicionamento (SYN-229) precisa abraçar “auditável e reversível”, não “nunca escreve”.
- Em aberto: a calibração exata dos tiers (o que conta como “baixo risco”) e a UX do scorer. Revisitar após SYN-218 ter dados de uso real e antes de SYN-185 ir a default-on.
Alternatives considered
- Manter o gate absoluto (status quo). Rejeitado se a autonomia for
perseguida: incompatível com
syn agente exposto ao carimbo no volume. Continua sendo a opção correta se o dono decidir que single-user human-gated é o escopo permanente: caso em que SYN-185 deve ser reescopado ou cortado. Esta é a decisão que o ADR pede. - Auto-aplicar tudo com undo (modelo basic-memory/Letta). Rejeitado: abandona o único fosso do produto; iguala o Synapse ao gêmeo já mais adiantado e melhor financiado.
- Tiers fixos hard-coded sem score. Rejeitado: rígido demais; a fronteira entre “linkar entidades existentes” e “asserção nova” precisa de avaliação por proposal, não de uma tabela estática.
- Confiar no modelo do agente para se auto-moderar. Rejeitado: a taxa de sucesso de memory-injection reportada (>95%) mostra que o agente é justamente o vetor; a política tem de ser do store, não do agente.