# O placar da peça — metodologia da comparação

Todos os vinte casos são inteiramente fictícios, inclusive nomes, documentos e números. Não use as peças como orientação para processo real.

## O que está sendo comparado

Um experimento por API, montado pela própria Verbentia, com a mesma entrada JSON em dois caminhos. Não é auditoria externa, amostra aleatória do mercado nem retrato de todos os chats comerciais.

- **Verbentia:** motor `packages/pecas` do repositório `kawazoi/verbentia-app`, commit `ec68657`, usado na terceira revisão. A configuração escolhe `pecas-gpt54`, esforço `low`, até 120 s por chamada e 200 s pela peça. O motor pode fazer novas tentativas e várias chamadas para estruturar e redigir. A saída Markdown montada é preservada sem edição; marcas fazem parte da saída. Os registros indicam eventuais falhas por etapa.
- **Chat genérico:** uma chamada à mesma implantação. Mensagem única de usuário: “Escreva uma petição inicial para este caso.”, seguida da mesma entrada JSON completa. Nas quatro defesas, a instrução é “Escreva uma contestação para este caso.” para preservar a tarefa. Sem mensagem de sistema, busca, ferramentas, regras da Verbentia ou reparo do texto. Máximo de 16.000 tokens de conclusão, esforço `low`, até 120 s. Não há ajuste de temperatura. O prompt exato e o texto cru estão nos arquivos de cada caso.
- **Modelo:** GPT-5.4, versão `2026-03-05`, conforme leitura da implantação na Azure da Verbentia em 18/10/2026 (`modelo.json`). Os registros do chat guardam também a identidade devolvida pelo provedor. A implantação não foi modificada nesta tarefa.
- **Entradas:** vinte casos do banco original de avaliação da Verbentia: 5 trabalhistas, 5 consumidor/bancário, 4 cíveis, 4 contestações e 2 originalmente fora da tabela de lei (BPC/LOAS e alimentos). As entradas públicas preservam o aviso de ficção acrescentado ao banco. As seis revisões históricas usaram os relatos originais, sem esse aviso adicional.
- **Seleção:** uma geração por caso e caminho, em sequência. Nenhuma amostra escolhida por desempenho. O motor mantém as tentativas internas próprias; o chat não tem reparo de conteúdo. Uma retomada preserva cada registro já salvo, mesmo que seja uma falha. Resposta cortada fica parcial; ausência de saída fica falha. Nada é convertido em zero de qualidade.

O motor congelado é anterior às ampliações posteriores de lei, jurisprudência e regras por área. A comparação não descreve automaticamente a versão atual em produção. Os tempos nos registros são técnicos, sem navegador; não são usados para afirmar vantagem de velocidade. Quantidade de chamadas, horários e tamanho das saídas diferem. Custo em reais: **não verificado**.

## Conferência das citações

O H1a (Conferidor) não estava disponível no início da rodada. Usamos diretamente o leitor determinístico `packages/pecas/src/lei/citacao.ts` e sua tabela, ambos de `ec68657`, nos dois textos. A cópia utilizada está no ZIP de fonte; `lib/qualidade/medir.ts` adapta apenas a entrada Markdown e coleta as saídas do leitor. A tabela contém fonte e data de obtenção; sua presença não garante atualização posterior.

**A régua e o leitor são da própria Verbentia.** O motor congelado já chama esse mesmo leitor em `packages/pecas/src/montar.ts`, antes de entregar a peça: confere as referências, insere links do Planalto e marcas `[CONFERIR]`. A coluna Verbentia mostra também o efeito desse preparo; não é uma régua externa. O chat genérico não recebeu instrução para incluir links. Assim, 20 de 20 textos com link na Verbentia e 0 de 20 no chat descrevem a diferença de montagem e de instruções, não uma vantagem jurídica demonstrada. Aplicar o leitor aos dois textos não elimina essa diferença.

1. Retiramos o destino dos links Markdown, conservando o rótulo visível, e retiramos `**` de negrito.
2. Cada chamada ao callback de confirmação conta uma ocorrência de referência reconhecida e presente na tabela, incluindo a parte indicada. Repetições continuam contando. Uma citação de vários artigos pode gerar mais de uma confirmação.
3. Cada aviso novo inserido pelo leitor conta uma ocorrência não confirmada. A causa fica no detalhe: fora da tabela, identificação incompleta ou precedente não verificado. Uma menção composta pode resultar num único aviso. Não usamos as duas contagens para calcular um percentual de acerto.
4. Avisos `[CONFERIR]` já presentes são preservados em lista separada e não viram nova falha nem confirmação. Marcadores `[PREENCHER]` são contados literalmente; outras grafias de lacuna podem escapar.
5. Contamos separadamente ocorrências de URLs nos domínios do Planalto, STF, STJ e TST, incluindo a variante `www`. Isso só registra presença de link. Não afirma que a página respondeu, que a referência existe ou que está atualizada. Subdomínio de terceiro com nome parecido não conta.

**Limites essenciais:** o leitor não busca precedentes nos tribunais, não reconhece toda forma de escrever uma referência, não julga pertinência jurídica e não compara uma transcrição livre com o texto oficial. “Não confirmada” não significa “inexistente” ou “inventada”. A contagem de citações inexistentes continua **não verificado**, assim como fatos inventados e a honestidade de cada marcador. Não presumimos que zero avisos signifique zero erros. Cada saída está disponível para leitura integral.

Um artigo em transcrição pode receber “artigo sem a lei” se a identificação da lei estiver em outra linha. As duas saídas passam pela mesma regra; o total de avisos não é uma nota de qualidade. A leitura pontual do caso 03 apresentada na página compara trechos literais com a entrada, sem contar ou generalizar para as outras peças: links do Planalto na Verbentia, cidade correta no endereçamento do chat e afirmação de procuração anexa sem suporte na entrada.

Os controles automatizados incluem artigo existente e parte existente (controle positivo), artigo fora da tabela, precedente não verificado, referências repetidas, formatação e avisos já presentes. Um zero sem controle positivo não é prova.

Nos arquivos JSON, `null` significa **não verificado**, nunca zero. Zero só é usado para uma contagem efetivamente executada pelo leitor dentro dos limites acima.

## As notas históricas são outro conjunto

As médias 5,3 → 6,1 → 7,2 são das três revisões de **seis casos**, não destes vinte textos novos. Revisão por outro agente de IA da Verbentia, independente da implementação. Não foram dadas por advogado humano nem por empresa auditora. Não atribuímos nota nova nesta tarefa.

Ao lado das notas publicadas com uma casa, mostramos as mesmas médias com duas: **5,3 — 5,33**, **6,1 — 6,08** e **7,2 — 7,17**. “Sem arredondar para uma casa” distingue essas duas precisões; as divisões completas são 32 ÷ 6 = 5,333…, 36,5 ÷ 6 = 6,0833… e 43 ÷ 6 = 7,1666…. Os valores com duas casas também estão arredondados nessa precisão. Não são notas novas.

Cada critério e a nota final estão nos extratos públicos das revisões. A régua histórica não fixa pesos numéricos: a nota final é o juízo do revisor, priorizando fidelidade e lei. A convenção ponderada criada depois para o banco de vinte não recalcula as notas antigas.

Na terceira revisão, a primeira amostra deu 7,2; a confirmação deu 6,9, e a média das duas rodadas deu 7,0. BPC/LOAS teve 5,5; a terceira amostra da defesa da loja, 6,5. As peças que sustentam a terceira revisão, inclusive confirmação e amostras extras, estão em `historico-revisao-3/` no pacote. Os extratos preservam as notas e ressalvas de qualidade e omitem orientações de campanha e comparações hipotéticas não executadas. Na terceira revisão, também sai o roteiro interno de reprodução. A seção “A recomendação de modelo” permanece, incluindo as estimativas de tempo para protocolar dos dois modelos; só seu caminho interno de arquivo foi retirado. Esse tempo é uma estimativa do revisor de IA, não uma medição de trabalho de advogado humano. Os custos dessa revisão histórica são estimativas, não valores de fatura; o custo do comparativo novo continua não verificado. As seções “Os 5 próximos consertos da 2ª revisão, um por um” e “Defeitos novos” são integrais, inclusive os sete itens. Nos cinco próximos consertos, só a instrução de implantação foi resumida como verificação pendente da versão medida na tela e de dez peças simultâneas; os quatro consertos de qualidade permanecem. A comparação histórica com um chat genérico continua não verificada. Não há instrução de campanha ou variável de implantação no extrato.

## Marca de ficção sem alterar os originais

As entradas e os textos Markdown baixados pela página recebem `ficticio-` no começo do nome do arquivo. As revisões baixam como `revisao-1-casos-ficticios.md`, `revisao-2-casos-ficticios.md` e `revisao-3-casos-ficticios.md`: os casos são fictícios; as revisões e suas notas são reais. Esses nomes são sugeridos pelos links da página. Os links dos textos também dizem “Markdown fictício”. Os nomes e documentos dos exemplos públicos foram mascarados: Ana Ribeiro Fictícia e documentos com dígitos inválidos substituem identificadores históricos. Notas, conclusões e registros históricos em docs permanecem preservados. Os extratos e esta metodologia são documentos públicos editáveis, com seus registros de integridade atualizados no manifesto; os registros dos relatórios internos originais em `origem.json` permanecem intactos.

O download do pacote sugere o nome `casos-ficticios-evidencias.zip`. Dentro dele, todos os arquivos ficam sob `casos-ficticios/`, com o aviso `AVISO-FICTICIO.md`; assim, textos históricos e prompts também levam a marca no caminho extraído, com identificadores mascarados e hashes atualizados. Os caminhos de `sha256.json` são relativos a essa pasta. O acesso direto à URL dos arquivos serve os bytes públicos mascarados e o nome do arquivo; a marca no download individual é oferecida pelos links da página. Para redistribuir um texto cru, conserve o nome com `ficticio-` ou a pasta com o aviso.

## Reproduzir e conferir integridade

- Sem IA nem credenciais: instalar as dependências do site (`npm ci`), rodar `bun scripts/qualidade/medir.mts` para remedir as saídas congeladas e `bun test lib/qualidade` para conferir os controles e a integridade dos arquivos. O resumo público e a cópia consumida pela página são gerados pelo mesmo comando. Remedir atualiza apenas o instante da medição e as contagens; não reescreve os textos.
- A fonte completa desta entrega contém `scripts/qualidade/preparar.py`, `gerar.mts`, `medir.mts` e `empacotar.py`. Para repetir uma geração paga, é preciso acesso próprio autorizado ao modelo e às dependências do app. O gerador inclui uma receita de credencial específica da máquina da Verbentia; não distribui chave. Para outra máquina, usar receita própria. Não repita chamadas pagas para verificar os arquivos existentes.
- O pacote `leitor.zip` contém o leitor e a tabela congelados e o adaptador de medição. A fonte de medição também é distribuída em `medir.ts`. O gerador só é necessário para repetir chamadas ao modelo; a identificação da versão do motor está em cada registro.
- `sha256.json` lista os arquivos públicos da rodada. O hash de cada entrada e de cada texto também aparece no registro da geração. O pacote `evidencias.zip` inclui o mesmo manifesto; ele próprio fica fora do manifesto para evitar autorreferência. SHA-256 detecta alteração de arquivo; não prova qualidade nem autoria independente.

Não houve publicação, alteração de produção ou mensagem a pessoa real nesta tarefa.
