| 2026-08-30 | external GPT (OpenAI), semente propria 847231 — amostra colada como texto | 10 | 5 | 5 | 0 | 5 de 10 conferidos por FONTE INDEPENDENTE, 5/5 bateram; 10/10 seguem inconclusivos contra a CVM (o leitor nao abre application/zip). Zero divergencia numerica. UM defeito de trilha de auditoria achado. |
- ★ DEFEITO DE TRILHA: no BPAC11 2024, `contas_cvm_declaradas` dizia 3.11.01 e 2.03-2.03.09 enquanto `contas_realmente_usadas` dizia 3.09.01 e 2.08. A lista saia do DICIONARIO por INDICADOR, cega ao plano de contas da empresa. 1.407 indicadores (2,2%) saiam assim — e justo na superficie bancaria, que o nosso proprio prompt manda atacar. Ele classificou certo: defeito de METADADO, nao divergencia numerica, e se recusou a transformar a inconsistencia em 'ROE errado'. Corrigido: AUD12.
- ★ OBJECAO MAIS FINA QUE JA RECEBEMOS: conferir os 10 sample_score prova que a chave reproduz os scores APRESENTADOS, mas nao que sejam os 10 menores do universo de 63.281 — ele nao recebeu a populacao para ordenar. Detecta chave inventada, nao detecta OMISSAO. Criada a rota /auditoria/universo (1,4 MB, so as chaves) para ele refazer a ordenacao sem nos. AUD13.
- O AUD13 nasceu CEGO para o defeito mais provavel: o ataque 'omite uma linha do universo' PASSOU, porque linha arbitraria quase nunca esta no top-N. Corrigido conferindo a CONTAGEM contra a tabela. Mesmo buraco que ele apontou, um nivel acima: conferir o topo nao prova a populacao.
- Ele tambem separou 'bate a formula declarada' de 'bate a divida liquida gerencial da companhia' na AEGEA 2016 — diferenca de CONCEITO, nao erro. Classificacao correta.
|
| 2026-08-29 | external Claude (Anthropic), semente propria 582917 | 25 | 1 | 1 | 0 | 1 conferido de 25, 24 inconclusivos, e ele recusou converter qualquer inconclusivo em 'passou'. O caso BATEU aritmeticamente com o documento auditado — mas ele registrou RESSALVA METODOLOGICA que se provou um defeito real nosso. FECHADA em 30/08 pelo proprio auditor, com verificacao de ponta a ponta em URLs virgens de cache (n=23 e n=24, que ele escolheu). |
- ★ ACHADO DE DADO, o primeiro vindo de auditor externo desde o Grok. Nosso D&A somava `6.01.01.11 Amortizacao do custo de transacao, agio e desagio` (R$ 67 mi) ao EBITDA da Suzano 2023: +0,34%. Ele nao declarou divergencia porque nao podia mostrar a conta, e registrou a ressalva. Estava certo.
- Causa sistemica: RE_DA casava QUALQUER rotulo com 'amortiza'. Medido: 279 empresa-anos, 226 EBITDAs inflados, 107 acima de 1%, 35 acima de 5%. SERENA ENERGIA 2023 saia +38,9% (R$ 908 mi num EBITDA de R$ 2,3 bi).
- CORRIGIDO (nao marcado): custo de captacao e despesa de financiamento dentro de metrica operacional — nao e ambiguidade da fonte, e erro de leitura nosso. 232 EBITDAs e 223 dl_ebitda mudaram. Invariante AUD09.
- A primeira regex de exclusao teria comido `amortizacao de mais-valia` em 89 linhas — que e amortizacao de ATIVO e entra no EBITDA por definicao. Corrigir demais e o mesmo defeito que corrigir de menos.
- Ele tambem reportou 5x HTTP 502 em /auditoria/amostra e levantou hipotese de rota x n. NAO PROCEDE: 12/12 em 200 no reteste, ~1,6s. Eram os NOSSOS deploys reiniciando o servico enquanto ele testava.
- ★ ACHADO DE PROTOCOLO, e vale tanto quanto o de dado: o prompt publico abria com 'Eu nao sou o dono dela e nao tenho interesse no resultado' — e quem mais cola o prompt somos NOS. O revisor apontou que a auditoria abriu com 'nao sou o dono' e o desfecho chegou em primeira pessoa. Corrigido: o prompt agora manda o auditor tratar o proprio texto como ALEGACAO da parte auditada, e avisa que quem pediu provavelmente e o dono. Invariante AUD10.
- Ele reteste as tres alegacoes do nosso desfecho antes de aceitar e reportou as tres como nao confirmadas — 502 na /amostra, data_version antiga, payload de 142 KB. Estava lendo CACHE, e o proprio `audit_id` prova: ele e hash de data_version|esquema|semente|n, e o que ele citou (AUD-0A42F8CAE42A) e o de ontem; no ar esta AUD-9568CFEECAC9. Reteste nosso: 8/8 em 200 nas duas rotas. EXIGIR verificacao antes de aceitar o desfecho foi o comportamento certo, e a conclusao errada nao tira isso.
- ★ E ELE ACHOU UM ERRO NA NOSSA MENSAGEM: dissemos 'resposta enxuta, so os insumos do indicador'. So `onde_procurar` foi enxugado; `contas_realmente_usadas` continua trazendo todas as contas DE PROPOSITO — o reconstrutor independente depende dela. 142 KB -> 68 KB, nao 60. A afirmacao imprecisa era nossa.
- ★ RETRATACAO DO AUDITOR, publicada por ele com o mesmo destaque do achado: a 'assimetria /amostra x /random' com 8 medicoes era artefato do leitor de paginas DELE. A 1a requisicao caiu durante um deploy real nosso, recebeu 502, e o fetcher CACHEOU O ERRO; as 7 seguintes leram o mesmo 502 congelado. Palavras dele: 'oito medicoes, uma observacao — repetir a leitura de uma URL cacheada nao e replicar o experimento'.
- Ele desenhou o experimento que nao depende de confiar em ninguem: URL nunca buscada nao pode estar no cache dele. Escolheu n=23 e n=24, rodou com o proprio instrumento, e os quatro criterios bateram — inclusive SUZB3 2023 = 19.537.397.000 contra os 19.537.398.000 que ele previu do PDF auditado (R$ 1 mil de arredondamento).
- ★ RESIDUO ADVERSARIAL ENTREGUE E RESOLVIDO: ele apontou que a CYRE3-2014 ainda soma 6.01.01.11 — o MESMO codigo que carregava o erro na Suzano — e nomeou o teste de uma linha: se a regra casa NATUREZA do rotulo esta certo, se casasse CODIGO estaria errado. Conferido: na Cyrela o 6.01.01.11 e 'Despesas comerciais - amortizacao de stand' (stand de vendas, ativo), vale R$ 0, e fica corretamente. Virou caso de teste no AUD09: prova com dado real que o plano de contas da CVM NAO garante semantica por codigo.
- ★ CORRECAO DE 30/08 QUE DESFAVORECE A NOS: a retratacao dele estava certa sobre a REPETICAO (8 leituras de resposta congelada nao sao 8 observacoes) e generosa demais quanto a ORIGEM. O 502 da PRIMEIRA requisicao era REAL e era nosso: a instancia (0,5 CPU / 512 MB) caia por OOM — confirmado por alerta do proprio provedor, 'exceeded its memory limit, which triggered an automatic restart' — e os nossos deploys a reiniciavam por cima. Ele pagou credibilidade por um defeito nosso. Instancia subida para 1 CPU / 2 GB em 30/08: rota de auditoria de 1,9-48,7s para 0,56-1,32s em 10 chamadas, reconstrucao de ~57 min morrendo para 26 min concluindo, zero 502.
|
| 2026-08-29 | external GPT (OpenAI), quarta tentativa — semente propria 731947 | 25 | 0 | 0 | 0 | NAO CONCLUIDA, e o revisor recusou explicitamente transformar limitacao de acesso em 'passou': reportou 0 conferidos, 0 batidos, 25 INCONCLUSIVOS. Leu as paginas publicas (home, 47 KB) mas NAO conseguiu ler /auditoria/amostra/731947/25 — que respondia 200 em 1,4s e tinha 142 KB de JSON cru. Tambem nao abre application/zip, e sem navegador nao tem resolucao de DNS. |
- A rota /auditoria/amostra respondia 200 em 1,4s e ainda assim era ilegivel para a ferramenta do revisor: 142 KB de JSON cru. Ele leu a home de 47 KB sem problema. Peso, nao disponibilidade.
- Metade do peso era defeito NOSSO do mesmo dia: `onde_procurar` repetia as ~22 contas da empresa para um indicador que usa 3. Corrigido para os insumos daquele indicador: 142 KB -> 60 KB.
- A rota passou a servir PAGINA (29 KB) para quem manda Accept: text/html, mantendo JSON para quem pede application/json. Mesmo remedio do /mcp que respondia 406 no navegador. Invariante AUD07.
|
| 2026-08-29 | external Gemini (Google), terceira tentativa | 25 | 0 | 0 | 0 | NAO CONCLUIDA por ausencia total de acesso a rede: nao abre URL, nao baixa zip, nao faz requisicao HTTP. Nada a corrigir do nosso lado — nenhuma mudanca no site alcanca um ambiente sem rede. |
- Ambiente sem acesso a rede: nao abre URL, nao baixa zip, nao faz requisicao HTTP. Terceira tentativa do Gemini, terceira pela mesma causa.
|
| 2026-08-28 | internal investigação do achado aberto da rodada 4 (ITR × DFP) | — | 0 | 0 | 0 | o diagnóstico registrado ontem estava INVERTIDO; dois achados novos com causa conhecida |
- ★ DIAGNÓSTICO INVERTIDO. Ontem registrei '11 empresa-anos com a série trimestral inflada, causa desconhecida'. Era o contrário: a ITR está correta (os isolados somam exatamente o acumulado publicado) e a DFP anual é que está malformada.
- QUSW3 2023 — DFP: receita 67.727.134, custo 0, resultado bruto 67.727.134. ITR 3º tri: receita 57.617.001, custo -41.269.436, bruto 16.347.565. Os 67,7 milhões da DFP batem com o LUCRO BRUTO anual estimado pela ITR, não com a receita: a empresa arquivou a DFP com o lucro bruto na linha da receita.
- ★ ALCANCE MAIOR QUE O ACHADO: 107 empresa-anos publicavam margem bruta de EXATAMENTE 100%, porque a DRE veio sem a linha de custo. Isso não existe em empresa operacional, e o número saía limpo — quem ordenasse a bolsa por margem bruta receberia essas empresas no topo. Agora saem com `custo_ausente_na_dre` (I-B53).
- SÃO DOIS ACHADOS, NÃO UM: das 21 contradições ITR × DFP, só 8 têm custo zero. As outras (OIBR3, TEND3, JSLG3) têm custo real, e a explicação provável é mudança de perímetro de consolidação no meio do ano — contabilmente legítima. Por isso a segunda marca é DESCRITIVA: `anual_contradiz_itr` diz que as duas publicações discordam sem afirmar qual está certa. A tentação oposta quase venceu: declarar a ITR errada porque o anual é o número que nós publicamos.
- MARCAR E NÃO CORRIGIR: não sabemos qual é a receita verdadeira da QUSW3, e inventá-la seria pior que publicar a da fonte.
- ★ E O I-B38 PEGOU UM ERRO MEU NO MEIO: ao inserir os avisos novos, o bloco que suprime valores absolutos ficou pendurado na condição errada, e 89 valores voltaram a ser publicados em exercício de escala divergente. Invariante escrito para uma regra pegou inclusive quem MOVEU a regra de lugar sem querer.
|
| 2026-08-27 | external GPT (OpenAI), terceira tentativa — via conector MCP e navegador | 25 | 0 | 0 | 0 | inconclusivo: sem conector MCP e sem navegação; 0 de 25 |
- TERCEIRA FALHA CONSECUTIVA, sempre pela mesma causa e sempre do lado dele: não tem conector MCP nesta conversa e a navegação devolve cache miss / safe URL error. A ferramenta MCP que criamos para contornar o navegador não resolveu, porque o conector precisa estar instalado na conta.
- Recusou-se pela terceira vez a fingir: 'não vou fingir que consigo chamar auditar_amostra', e registrou 0 de 25 em vez de 0 divergências.
- ★ CONCLUSÃO OPERACIONAL, e é sobre NÓS: três tentativas com a mesma causa raiz é evidência suficiente. Insistir numa quarta seria repetir experimento com variável inalterada. Para este auditor a única via que JÁ funcionou é a amostra colada como texto — foi assim que ele conferiu 5 casos contra fontes independentes na rodada de 25/08.
- ★★ E UMA OBSERVAÇÃO QUE VALE MAIS QUE A TENTATIVA: o valor que este revisor entregou até hoje veio quase todo de REVISÃO DE DESENHO, não de conferência de número. Foi ele que apontou o sorteio posicional, o audit_id, a chave sem ticker, a ressalva estatística e o protocolo aberto. Conferiu 5 números; mudou o desenho do endpoint quatro vezes. Usá-lo como conferidor de conta é usar mal a única coisa que ele faz bem sem acesso.
|
| 2026-08-27 | internal auto-auditoria adversarial por mutação (três rodadas) | 25 | 0 | 0 | 0 | 73% -> 100% -> 88% -> 100%; 7 buracos de cobertura fechados e 20 defeitos reais achados na base |
- RODADA 1 — 15 defeitos injetados, 11 pegos (73%). Quatro sobreviveram, e o primeiro é o mais grave: DOBRAR uma margem líquida sem tocar nos fatos passou. Isso significa que a promessa central do produto (a fórmula publicada é a aplicada) não tinha invariante nenhum — era conferida à mão quando alguém resolvia olhar. Nasceram I-B43, I-B44 e I-B45.
- ★ I-B45 ACHOU 20 DEFEITOS REAIS assim que foi escrito: 18 múltiplos trimestrais com market cap na casa das CENTENAS DE TRILHÕES (VSPT3 a R$ 641 tri com ação a R$ 3,05) e 2 acima de R$ 5 tri. Raiz: a tabela `capital` traz 210 TRILHÕES de ações para a VSPT3 e 54 trilhões para a AZUL, vindas do FRE — a PETR4, maior da bolsa, tem 13 bilhões.
- ★★ A AZUL AQUI NÃO É COINCIDÊNCIA: é o incidente do market cap de R$ 1,67 trilhão que o projeto já registra na /metodologia. Ele foi tratado na camada de INDICADOR e a raiz continuou envenenada, então reapareceu pela série TRIMESTRAL, que não tinha a mesma proteção. Consertar o sintoma no caminho em que ele apareceu deixa o defeito vivo para voltar por outro.
- RODADA 2 — mesmas 15 mutações após os consertos: 15 de 15 (100%). Mas 100% quase sempre significa que o conjunto de ataques é fácil demais, não que o sistema esteja seguro.
- RODADA 3 — 10 mutações DIFÍCEIS (mudanças pequenas e trocas que preservam a forma): 21 de 24 (88%). Três novos buracos. O mais interessante: trocar o ROE de uma empresa pelo de OUTRA passou — valor plausível, faixa normal, série coerente, só o dono errado. O I-B43 cobria apenas as razões simples; ROE e ROA tinham ficado de fora por usarem média de dois exercícios, ou seja, por serem mais trabalhosos. Trabalhoso é exatamente onde o defeito se esconde, porque quem escreve o teste também escolhe o caminho fácil.
- Também passaram: trocar o carimbo de versão por um rótulo inventado (I-B47) e editar uma reapresentação para dizer que os dois valores são IGUAIS (I-B48). O segundo revela uma assimetria fácil de deixar passar: o invariante existente perguntava se toda divergência estava registrada, e ninguém perguntava se todo registro correspondia a uma divergência.
- RODADA FINAL — 24 de 24 (100%), incluindo as difíceis. A ferramenta fica em testes/mutacoes.py e pode ser rodada de novo a qualquer momento; a taxa de sobrevivência é o número que diz quanto os invariantes valem.
- ERRO MEU NO MEIO, e registrado porque a forma importa: escrevi o I-B46 usando pl_total como denominador do ROE quando o correto é o PL dos CONTROLADORES. Ele acusou 2.453 divergências — todas minhas. Um invariante que erra a fórmula acusa a base correta de estar errada, e o caminho natural teria sido afrouxar a tolerância até passar, o que transformaria o teste em decoração no mesmo movimento.
|
| 2026-08-26 | internal sessão UVI Engine (segunda rodada, ponte do PL nas 456 empresas) | — | 3 | 3 | 0 | 1 achado convertido em conserto real; 2 refutados como diagnosticados |
- MÉTODO EXEMPLAR: a v1 do teste deles acusou 13,01% dos pares. Em vez de reportar, olharam a taxa base, viram que era alta demais para ser erro de dado, e acharam o defeito no PRÓPRIO teste (a fórmula ignorava ENTRADA de capital, então IPO virava anomalia). Taxa caiu para 6,29%. Foi a taxa base que denunciou.
- ACHADO 1 (2025 desloca a base inteira: mediana do resíduo salta de ~40% para 64% em 241 empresas) — RESOLVIDO, e não era nenhuma das duas hipóteses deles. Conferimos RDOR3, CPLE3 e LREN3 contra a CVM: batem exatamente. A ponte da DMPL mostra a causa — transações com sócios de -9,68 bi, -5,05 bi e -1,73 bi, com OCI de apenas -246 mi, -186 mi e -44 mi. Não é câmbio (a hipótese que eles não conseguiam casar com as domésticas) nem erro: é PAYOUT alto. O dado que resolveu é exatamente o que eles pediram para expor.
- ACHADO 2 (nove quedas de PL por ordens de grandeza) — a lista deles tinha atribuição de nome errada (quatro linhas viraram 'FGR INCORPORAÇÕES'; a FGR só tem 2025 na base). Mas o achado PROCEDE como gap NOSSO: das 7 quedas reais, 6 batem com a CVM E com o comparativo do ano seguinte (são reais: Marisa em recuperação, Telebrás). A sétima, CEPE5 2019, é o caso de escala já detectado — e mesmo assim publicávamos pl_total = 1.629.052 sem marca nenhuma, porque a regra de escala suprimia indicador e múltiplo mas NÃO o fato. Conserto: o aviso passa a viajar na origem do fato. I-B42.
- ACHADO 3 (16,46% do dump sem ticker seria join falhando) — REFUTADO. 89 das 96 empresas não têm ticker NENHUM: arquivam na CVM sem negociar (Cobrasma, Fiação São José em recuperação). Só 7 têm ticker não-principal. É dado ausente na origem, não junção quebrada.
- PADRÃO QUE SE REPETIU PELA TERCEIRA VEZ, e vale mais que os achados: dep_amort e capex são anexados FORA do laço de itens, então escapam de toda regra nova. Já aconteceu com a recusa de conta conflitante (duas vezes) e agora com o aviso de escala. Quem acrescentar item fora do laço precisa aplicar as regras à mão — e é exatamente ali que elas somem.
|
| 2026-08-26 | internal sessão UVI Engine (outra sessão nossa, a pedido do Valth) | — | 0 | 0 | 0 | dois achados levantados; o principal REFUTADO na verificação, o segundo procedente como defeito de texto |
- LEVANTOU: o pl_total da WEGE3 cai de R$ 23,13 bi (2024) para R$ 18,55 bi (2025) com lucro de R$ 6,78 bi — resíduo de 167% do lucro, o maior da série. Hipótese de erro de processamento, reforçada por 2024 ter vindo baixo (17%) e 2025 alto, assinatura de deslocamento entre exercícios.
- REFUTADO na verificação: nossa base bate EXATAMENTE com o zip da CVM nos três anos, e o comparativo do arquivo de 2025 confirma 2024 = 23.125.217.000. Duas colunas independentes concordam — não há deslocamento.
- EXPLICAÇÃO ENCONTRADA na DMPL, e a ponte fecha ao real: 23.125.217.000 − 9.199.520.000 (Transações de Capital com os Sócios) + 5.893.381.000 (Resultado Abrangente Total) − 1.265.714.000 (Mutações Internas) = 18.553.364.000, idêntico ao publicado. A queda é uma transação de capital com os sócios de R$ 9,2 bi declarada na própria DFP. O ROE de 32,19% está correto.
- PROCEDE: a landing exibia '103 invariantes de dado' ao lado de '176 verificações automáticas' sem dizer que um é subconjunto do outro. Não era contradição factual — a meta description já explicava —, mas um auditor cuidadoso leu como contradição, e isso basta para ser defeito de texto. Corrigido nos dois idiomas para '103 dos 176 testes olham o DADO'.
- SUGESTÃO ESTRUTURAL ACEITA COMO PENDÊNCIA: /fatos não expõe OCI nem dividendos, então a ponte do PL — que é justamente a checagem que pega erro de patrimônio — não é auditável pela API. Um terceiro chega até onde essa sessão chegou e para. Expor os dois fecharia o buraco.
|
| 2026-08-26 | external GPT (OpenAI), segunda tentativa | 25 | 0 | 0 | 0 | inconclusivo: navegação desligada, nem a página de sementes abriu |
- A página de sementes pré-formadas NÃO resolveu o caso dele: o erro é DisabledError, ou seja, a navegação está desligada — não é questão de a URL estar indexada. Nenhuma engenharia de URL nossa conserta isso.
- Escolheu a semente sozinho e se recusou a fingir que sorteou, registrando 0 de 25.
- CONSEQUÊNCIA PARA O DESENHO: para auditor sem navegação, a única via é a amostra colada como texto — o que reintroduz a nossa mão. Mitigado publicando no prompt como detectar amostra maquiada por aritmética (recalcular o blake2b da chave e checar que os 25 scores estão entre os menores do espaço).
|
| 2026-08-26 | external Gemini (Google), segunda tentativa | 25 | 0 | 0 | 0 | inconclusivo: sem navegação no ambiente |
- Segunda recusa consistente em simular a auditoria. Pediu os dados colados em vez de inventar.
|
| 2026-08-25 | external Grok (xAI), rodando o prompt público | 25 | 2 | 2 | 0 | 2 conferidos, 2 bateram, 23 inconclusivos declarados |
- Primeiro auditor externo a de fato alcançar a fonte primária e refazer contas: ARANDU 2020 margem_liquida = -890.000/41.806.000 = -0,021289, batendo com o publicado.
- Declarou 23 casos como inconclusivos em vez de aprová-los, explicando que a reconstrução completa exigiria 11 exercícios, tratamento de escala, comparativos reapresentados e médias de balanço.
- OBSERVAÇÃO NOSSA a partir do caso dele: a EZ INC 2019 tem ativo total de R$ 1.000 e lucro zero, e publicamos ROA = 0,0. Aritmeticamente correto e informacionalmente vazio — indicador sobre empresa sem operação é ruído com aparência de dado. Fica registrado como questão aberta, não como erro.
|
| 2026-08-25 | external GPT (OpenAI), rodando o prompt público | 25 | 0 | 0 | 0 | inconclusivo: não conseguiu recuperar a amostra |
- A ferramenta dele recusa abrir o endpoint por não ser URL indexada. Confirmou que a fonte da CVM está acessível — a barreira é a NOSSA amostra, não a CVM.
- Recusou-se a substituir por outra amostra depois de falhar, apontando que isso quebraria a regra de amostragem. Recusa correta e registrada.
|
| 2026-08-25 | external Gemini (Google), rodando o prompt público | 25 | 0 | 0 | 0 | inconclusivo: sem acesso à web no ambiente |
- Sem navegação, declarou 0 de 25 e citou a Regra 2 do protocolo para justificar não simular dados. O protocolo funcionou como projetado: impediu a auditoria de virar ficção educada.
|
| 2026-08-25 | external revisor externo (modelo de linguagem com navegação) | 75 | 5 | 5 | 0 | 5 de 5 conferidos bateram; taxa da amostra inteira NÃO determinada |
- COPASA 2012: EBITDA publicado bateu ao real com o relatório da própria companhia (R$ 1.143.033 mil).
- Ele recusou extrapolar 5/5 para os 75, e registrou o denominador correto como 75. A recusa é o motivo de esta linha existir com `conferidos: 5` e não `75`.
|
| 2026-08-25 | internal reconstrução própria, por código que NÃO importa a ingestão do produto | 75 | 64 | 63 | 1 | 63 de 64 bateram ao sexto decimal; a única divergência não era erro de conta, e sim ambiguidade de definição |
- AMBIGUIDADE: a fórmula de crescimento não dizia QUAL versão da receita do ano anterior usava. Na Grazziotin 2016 as duas leituras davam 0,69% e 4,37%. Denominador passou a ser o comparativo reapresentado (446 de 4.808 casos mudaram) e a fórmula passou a declarar isso.
- ERRO DE ESCALA NA FONTE: a WEST3 publicava crescimento de +187.251%, porque a empresa declarou ESCALA_MOEDA=UNIDADE com valores em MILHARES. 27 exercícios têm essa divergência; passaram a não publicar valor absoluto nem múltiplo, com carimbo.
- DECISÃO: não corrigimos o valor, nem nos casos em que sabemos qual lado está certo. Número corrigido deixaria de fechar com as contas que ele cita, e número que não fecha com a própria origem é pior que número ausente.
- 11 casos (roic e piotroski) não foram reconstruídos por este caminho — dependem de muitas contas e de dois exercícios. Ficam como lacuna declarada, não como acerto.
|
| 2026-08-25 | external revisor externo (revisão de desenho, não de números) | — | 0 | 0 | 0 | nenhum número conferido; achado de DESENHO |
- DEFEITO NOSSO, achado por nós ao preparar o material para ele e contado antes de consertar: o sorteio era posicional, então qualquer atualização da base desfazia a amostra inteira (as três sementes dele devolveram ZERO casos em comum). O resultado que um auditor publicasse deixava de ser reconferível.
- Corrigido para hash da chave. Ele corrigiu, com razão, uma afirmação nossa: NÃO é verdade que 'remover 31 linhas muda só essas 31' — o que fica imutável é o score de cada chave, e a composição do top-N ainda muda quando um caso sai.
- Sugestões adotadas inteiras: sample_key, sample_rank e sample_score por caso; audit_id por execução; qualidade legível por máquina; e nome honesto (/auditoria/amostra), já que não há aleatoriedade e sim amostragem determinística.
|
| 2026-08-24 | external revisor externo (modelo de linguagem com navegação) | 75 | 0 | 0 | 0 | inconclusivo por limitação de acesso |
- Não conseguiu abrir os arquivos da CVM (a ferramenta dele recusa zip) nem as URLs do endpoint. Recusou-se explicitamente a transformar 'não consegui abrir' em 'os 75 passaram', e manteve a nota.
- DEFEITO NOSSO: o endpoint só respondia com query string, inalcançável para a ferramenta dele. Foi o quarto revisor seguido que não conseguiu testar ao vivo, e nas quatro vezes a barreira era nossa.
- DEFEITO NOSSO: contagens do site sem carimbo de versão faziam cópia indexada antiga parecer página viva.
|