Cross-examination Of Code by Adversarial Diverse Agents
Toda IA opina. A Cocada julga.
Qualquer IA revisa o seu codigo e devolve uma lista de achados em tom
confiante — uns reais, varios ruido plausivel. O trabalho de descobrir em
qual achado confiar sobra pra voce. O cocada judge resolve essa parte:
familias de modelo diferentes (Claude, Codex/GPT, Antigravity/Gemini) revisam
o MESMO diff de forma independente, cruzam os achados em cross-exame, e sobra
um veredito classificado — voce so decide onde elas discordam.
| Ferramenta | Pergunta que responde | Como |
|---|---|---|
teste (cargo test, pytest...) |
"o comportamento que eu previ continua valendo?" | roda o codigo |
| revisor IA (1 familia) | "o que PODE estar errado?" | le o diff e opina, com falsos positivos |
cocada judge |
"em quais achados da pra CONFIAR?" | familias diferentes se cross-examinam |
Tese, mecanica e roadmap: docs/JUDGE.md. Medicao com bugs
plantados: eval/.
cargo install cocada # via crates.io
# ou a partir do fonte:
git clone https://github.com/alanpcf/cocada-core
cd cocada-core
cargo install --path . --force
cd /qualquer/projeto/com/git
cocada judge . # julga o diff local (working tree vs HEAD)Pre-requisito por maquina: os CLIs oficiais das familias no PATH e logados
nos planos que voce ja paga — bastam 2 entre claude, codex e agy.
Confira com cocada doctor.
cocada judge . # diff local
cocada judge . --staged # so o que esta em staging
cocada judge . --range main..HEAD # diff da branch
cocada judge . --with c,x,g # escolhe as familias (default: c,x)
cocada judge . --dry-run # plano + prompts exatos, sem chamar modelo
cocada judge . --json # relatorio machine-readable no stdout
cocada judge . --gate # exit 2 se sobrar achado HIGH (uso em CI)Como funciona, em duas ondas de LLM (ambas paralelas):
1. revisao INDEPENDENTE cada familia revisa o diff sem ver as outras
2. convergencia (local) mesmo problema achado por 2+ familias de forma
independente -> confirmado sem gastar chamada
3. CROSS-EXAME (batched) cada familia tenta REFUTAR os achados solo das
outras, todos numa unica chamada por familia
4. veredito confirmado | refutado | EM DISPUTA (sua pauta)
Custo maximo: 2 chamadas por familia, independente do numero de achados. Read-only de fato em Claude e Codex; o agy so tem sandbox (permite escrita no workspace) e o judge avisa quando ele entra no time.
O veredito sai no terminal (disputas primeiro) e fica salvo em
~/.agent-harness/projects/<repo-key>/judge/<timestamp>-report.{md,json}.
O judge julga git diff — qualquer linguagem, qualquer repo. Tres acoples
prontos (receitas completas em docs/JUDGE.md):
cocada judge ~/outro/projeto # binario global
cocada judge . --range origin/main..HEAD --gate # hook pre-push
cocada judge . --gate --json > judge.json # CI/ferramentasNos dois primeiros runs reais, o proprio diff que criou o judge foi julgado:
5 achados reais confirmados em cross-exame (incluindo uma promessa falsa de
read-only e um bug de convergencia dependente de ordem) — todos viraram fixes
com teste. Historia completa em docs/JUDGE.md; medicao
sistematica em eval/.
O judge chama os CLIs oficiais (claude, codex, agy) com os logins
locais. Por padrao tudo usa --auth subscription: as variaveis de API
(OPENAI_API_KEY, ANTHROPIC_API_KEY, credenciais Google etc.) sao removidas
do ambiente dos subprocessos para nao cair em billing por API sem querer.
--auth inherit herda o ambiente de proposito.
Suporte ao judge:
cocada doctor # CLIs no PATH, versoes, env de API
cocada models # modelos/perfis reais por familia
cocada config show
cocada config set codex --model gpt-5.5 --effort xhigh
cocada config set claude --model opus --effort max
cocada config unset codexDefaults ficam em ~/.config/cocada/config.json. Precedencia: flag explicita
(--with c:opus) > default salvo do provider > default do proprio CLI.
Cada execucao real grava em
~/.agent-harness/runs/<repo>-<hash>/<timestamp>-<provider>/:
prompt.txt, command.txt, status.json (atualizado ao vivo), stdout.txt,
stderr.txt, result.json e summary.md. Dry-run nao cria logs nem chama
modelo.
Binario rapido de iniciar, distribuicao sem runtime, controle fino de subprocessos (streaming, timeout, kill de process group, env limpo) e tipagem forte para providers e modos de acesso.
Comandos, subcomandos, flags e aliases em ingles — CLI previsivel e documentavel. Prompts e documentacao em portugues; versao EN dos docs e parte do plano de abertura do repositorio.
cocada judge: julgamento multi-familia de diffs, acoplavel a qualquer repo git — verdocs/JUDGE.md;- eval com bugs plantados em
eval/(corpus + runner + scorer + resultados); - ~5 mil linhas de Rust focadas: o legado da era harness/sala foi removido (vive no historico do git e nos documentos historicos);
- zero warnings de clippy (gate de CI com -D warnings) e 69 testes, incluindo E2E que dirigem o binario real contra providers stub;
- licenca MIT em
LICENSE.