o que sobe e o que não sobe

Privacidade

Escrito para você conferir, não para você acreditar. Todo comando desta página roda na sua máquina e mostra exatamente o que está guardado.

O texto do seu prompt nunca sai daqui

O que o Batuta grava do seu turno é o hash do prompt, o número de caracteres e quantas palavras sobraram depois da limpeza. O texto, nunca.

E o hash é feito com um sal local — um número aleatório gerado uma vez na sua máquina, guardado em ~/.batuta/sal com permissão 0600, que nunca é enviado. Sem o sal, ninguém consegue testar um palpite de prompt contra o hash. Nem nós.

O que fica na sua máquina

arquivoo que é
~/.batuta/salnúmero aleatório criado uma vez, que nunca sai daí
~/.batuta/indice.txtnome, descrição e palavras das skills que você já tem
~/.batuta/eventos.jsonluma linha por turno: hash do prompt, comprimento, skills sugeridas e se você usou alguma
~/.batuta/config.txtsuas preferências

Não fica gravado em lugar nenhum: o texto do seu prompt, a resposta do modelo, nome de arquivo do seu projeto, seu usuário, sua máquina.

O que sobe — se você deixar

Enviar dado é opt-in explícito. Vem desligado. Enquanto estiver desligado, nada sai da sua máquina — e o batuta report continua funcionando inteiro, offline. O valor local não é refém do upload.

Se você ligar, o que sobe é o resumo diário agregado por skill — nunca evento cru. 200 turnos por dia viram cerca de 20 linhas, mais ou menos assim:

{
  "schema": "batuta.resumo_diario.v1",
  "dia": "2026-08-24",
  "instalacao": "9f2c1ab4de77e015",
  "skills": [
    { "skill": "systematic-debugging", "rotas": 12, "ativacoes": 9,
      "turnos_ok": 8, "custo_usd": 0.184, "fantasma": false }
  ]
}

Sem prompt. Sem hash de prompt. Sem identificador de turno. Sem caminho de arquivo. O instalacao é derivado do próprio sal, então não carrega seu nome, sua máquina nem sua pasta — serve só para dizer “estas linhas vieram do mesmo lugar”.

Confira antes de decidir

batuta privacidade      # o que está guardado, em português
batuta resumo           # exatamente o que subiria, imprimido na sua tela
batuta config envio sim # só depois de ver o de cima

Apagar tudo

rm -rf ~/.batuta

É isso. Não tem conta, não tem login, não tem servidor guardando um espelho do seu histórico.

O holdout, declarado

Em 5% dos turnos o roteador se cala de propósito. Isso não é bug: é o grupo de controle que permite medir causa em vez de correlação. É declarado na primeira execução, é configurável e é desligável com batuta config holdout 0. Experimento escondido destrói o projeto — então ele não é escondido.