Três camadas Shipped · um adaptador de harness

Cada camada está ali porque a de cima pode falhar

Um arquivo pode ser ignorado. Um hook pode não estar lá. Um pull request não pode ser nenhuma das duas coisas, mas chega tarde demais para impedir qualquer coisa. Nenhuma das três basta, e esse é o motivo inteiro de existirem três.

Camada 1 — o contexto, que aconselha

O bloco do AGENTS.md diz ao agente qual é a task, o que está aberto e o que está fechado. Ele é gerado no gate para não ficar desatualizado, e é honesto no próprio texto sobre ser um conselho: nothing is stopping you, so this one is on you.

Camada 2 — o hook, que nega

Um hook anterior à chamada da ferramenta responde allow, ask ou deny antes de a escrita acontecer. Duas propriedades importam mais do que o mecanismo:

Vale dizer com todas as letras: este mecanismo é commodity. Claude Code, Codex, Cursor, Augment, Factory e Devin CLI expõem todos um hook que pode devolver deny, e naquele que você provavelmente usa ele é gratuito. O que não é commodity é o modelo que ele consulta — owners, expiração e permissão delimitada a uma task declarada.

A admissão que torna o resto crível

Medimos o harness contra sessões reais e ele é fail-open nos quatro modos de falha: crash, timeout, saída malformada, não instalado. Isso não é uma nota de rodapé — é o motivo de as outras duas camadas existirem no formato que têm. Um wrapper fecha três desses modos recusando por conta própria quando o hook não consegue responder, e o quarto — nunca instalado — é invisível de dentro da máquina, então só a CI consegue enxergá-lo.

Um leitor cético descobriria isso de qualquer jeito. Publicá-lo ao lado dos números que ele enfraquece é a coisa mais útil que esta página pode fazer.

Camada 3 — a CI, que recalcula

O required status check lê o mesmo mapa de zones no pull request e recalcula quais zones o diff de fato tocou, contra o que a task declarou. É a única camada que consegue ver trabalho produzido onde o CommitCycle nunca foi instalado.

O limite dela, dito com todas as letras: num plano pessoal privado gratuito a proteção de branch responde 403, então ali esta camada roda em modo aviso e diz isso, em vez de reportar um enforcement que não executou.

Onde o conjunto para

Como as camadas dividem o trabalho está na documentação (em inglês), e o mapa que as três leem é o mapa de zones.