Do corpus à prova EN

Curso / Aula 5 de 6

17 min · caso real sanitizado

O grafo de recibos

Objetivo: Ligar cada valor derivado a um recibo re-derivável dos bytes — e escolher o campo certo para cada papel de verificação.

Primeiro, em linguagem simples

Um recibo é a diferença entre “confia em mim” e “confere aí”. Cada número que o pipeline deriva — uma contagem, um span de texto, um alias — aponta para um recibo que um verificador independente recomputa a partir dos bytes crus, sem reutilizar nenhuma autoafirmação de quem construiu.

Na missão real foram 535.326 recibos verificados com 0 problemas — depois de uma sequência honesta de correções que desceu de 3.826 problemas até zero, sem apagar nenhum pelo caminho.

Abra a camada técnica

Cada recibo carrega campos com papéis distintos:

CampoPapel de verificação
snapshot_sha256Prova que os bytes do arquivo não mudaram desde o processamento.
locator bounds (par de offsets)Onde o span vive: byte inicial e final dentro daquele arquivo.
span_sha256Hash do conteúdo do span — útil para integridade, ambíguo para atribuição.
record_idId content-addressed do registro derivado: identidade estável e dedupável.
coverage_rootRaiz de cobertura por item: prova que o item inteiro foi varrido.

O caso do par de offsets. O corpus tem conteúdo duplicado de verdade: aliases de backup e gêmeos por conteúdo. Sob duplicata, dois spans em posições diferentes têm o mesmo span_sha256 — o hash não diz qual ocorrência gerou o registro. A atribuição final foi feita por par exato de offsets: o span agregado pertence ao item se está contido no range declarado do item e o hash do arquivo coincide. Resultado: 1.285/1.285 spans atribuídos contra um sidecar de ground truth; span_sha256 nunca é usado para atribuição.

Controles negativos. O verificador passou 9/9 sabotagens: id alterado, span deslocado, regra removida, lista vazia fraudulenta, HEAD stale, replay de reconciliação. Um grafo de recibos que só aceita os casos bons não prova nada.

Por que “path” não é recibo

Um path pode ser renomeado, movido (lembre o drift da aula 2) ou fabricado. Na missão, 24 aliases efêmeros em paths sintéticos viraram a classe documentada path_presence:"absent": evidência por hash, nunca por path fabricado. O recibo ancora no byte, não no nome.

Simulação determinística · campos sintéticos

Ligue cada campo ao seu papel de verificação

Arraste mentalmente: para cada campo do recibo, escolha o papel que ele cumpre. Um deles é a armadilha da aula.

snapshot_sha256
locator bounds (par de offsets)
span_sha256
record_id (content-addressed)
coverage_root por item
Ligue os cinco campos e verifique. Dica: pense em qual campo sobrevive a conteúdo duplicado.