Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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:

  1. 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 accept vira 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.

  2. 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 accept humano: 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 agent e 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.