English

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; nada vai ao ar sem um clique humano no botão de publicar.

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.