Nota
Somente leitura por construção
O jeito mais confiável de garantir que o site nunca escreve no CMS não foi regra nem review: foi um tipo de busca sem lugar para pôr uma escrita.
Agentes de IA escrevem boa parte do código deste site. O site lê um CMS. A pergunta que me importava era simples: como garantir que nenhum caminho de código publica nada, nem por bug, nem por um agente confiante demais?
A resposta comum é disciplina. "O site não deve escrever no CMS", escrito no README, no prompt do agente, na cabeça do revisor. Disciplina depende de todo mundo lembrar dela para sempre. E prompt, um agente contorna.
A resposta que escolhi foi estrutural. A função de busca do site recebe um tipo que aceita uma URL de consulta e nada mais. Não existe parâmetro para método HTTP, para corpo ou para header. Quem quiser escrever no CMS a partir do site precisa antes mudar esse tipo, e essa mudança grita num diff.
O cliente oficial do CMS faz o oposto: create, patch e delete moram no mesmo objeto que faz a leitura. Por isso ele ficou fora do site. Só existe no Studio, a superfície onde o humano edita, autenticado na conta dele.
E toda consulta pede apenas conteúdo publicado. Rascunho é invisível para o site. Um agente pode gerar rascunho o dia inteiro; para ir ao ar, o texto passa por um programa que roda fora do site e só publica o que sobrevive a duas checagens: nenhum termo confidencial no texto, e a nota presente nos dois idiomas.
Esse último passo já foi um clique meu no botão de publicar. Tirei. Ele não julgava nada que as checagens já não julgassem, e clique que não julga vira carimbo. A palavra final continua minha, um passo antes: no texto que eu escrevo e no código que eu aprovo.
Num sistema em que agentes escrevem código, impossível por construção vale mais que proibido por disciplina. Quando uma regra importa de verdade, procuro o lugar onde ela vira forma: um tipo, um schema, uma permissão. Uma frase de README se perde no refactor. Um tipo, o compilador cobra em todo build.