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:
| Campo | Papel de verificação |
|---|---|
snapshot_sha256 | Prova 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_sha256 | Hash do conteúdo do span — útil para integridade, ambíguo para atribuição. |
record_id | Id content-addressed do registro derivado: identidade estável e dedupável. |
coverage_root | Raiz 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.
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.