Mineração de Sessões Claude Orientada por EvidênciasLição 7/8
Planejamento limitado

Overlap, hashes, journals e mutação

Um plano só é confiável se cada byte for atribuível a um snapshot estável da fonte.

U2 REAL: PROVENEXEMPLO SINTÉTICO · /demo-claude/
Bytes do arquivo passam por gates de hash, identidade do handle, identidade do caminho e inventário finalstream de bytesCHECKSHA-256CHECKidentidade handleCHECKidentidade caminhoCHECKinventário finalsnapshot estável
Bytes do arquivo passam por gates de hash, identidade do handle, identidade do caminho e inventário final.
Ao final, você consegue
  • Separar integridade de bytes, identidade do arquivo e composição do arquivo.
  • Explicar precedência de journal e janelas ignoradas.
  • Rejeitar snapshots mistos sem saída parcial.
1

Modelo central

Hashes provam quais bytes foram medidos; verificações de identidade provam que vieram do mesmo arquivo; a enumeração final prova que a composição do arquivo não mudou. Journals recebem hashes e contagens estruturais, mas nenhum plano de janelas de transcrição. São decisões distintas de integridade, não uma flag genérica de segurança.

Modelo mental: Um saco de evidência inviolável precisa de número do lacre, assinaturas de custódia e lista de itens. Um checksum sozinho não prova que alguém não trocou o saco inteiro.

A U2 compara `lstat` do caminho, identidade `fstat` do handle antes/depois do streaming e a identidade do caminho novamente após fechar, então repete o inventário. Device, inode, size, mtimeNs e ctimeNs detectam substituição ou mutação. SHA-256 cobre arquivos e cada janela completa. O basename `journal.jsonl` tem precedência de classificação e produz `status: skipped, reason: journal`.

2

Tabela de fronteiras

PerguntaFronteira observadaDonoVeredito
SHA-256Bytes exatosDigest divergenteCruzar identidade do conteúdo
Identidade do handleObjeto de arquivo abertomudança dev/inode/tempo/tamanhoRejeitar mutação da fonte
Inventário finalComposição do arquivoEntrada adicionada/removida/alteradaRejeitar arquivo alterado
journal.jsonlBasename journalSem janelas de transcriçãoApenas hash e contagem
Fonte local primáriapackages/sessions/src/claude-manifest.ts
beforePath === openedHandle
openedHandle === afterHandle
afterHandle === afterPath
finalInventory === initialInventory
// Otherwise: fail closed, no mixed manifest.
Digest do arquivo: SHA-256 sobre cada byte original.Digest do arquivo
SHA-256 sobre cada byte original.
Digest da janela: SHA-256 sobre a janela completa, incluindo overlap.Digest da janela
SHA-256 sobre a janela completa, incluindo overlap.
Identidade: Device, inode, tamanho e metadados em nanossegundos do objeto aberto.Identidade
Device, inode, tamanho e metadados em nanossegundos do objeto aberto.
journal: Um artefato estrutural distinto, não fonte de janelas de transcrição.journal
Um artefato estrutural distinto, não fonte de janelas de transcrição.
3

Laboratório sintético

Escolha uma mudança durante o scan. Qual é o resultado honesto?

4

Recuperação e feedback

Preveja antes de revelar

O arquivo é substituído atomicamente por outro do mesmo tamanho. Apenas tamanho basta?

Não. Identidade de handle/caminho e verificação final do caminho são necessárias para detectar substituição.

Cartões de recuperação

Cartões de recuperaçãoDigest do arquivoAtive para virar
Digest do arquivoSHA-256 sobre cada byte original.
Cartões de recuperaçãoDigest da janelaAtive para virar
Digest da janelaSHA-256 sobre a janela completa, incluindo overlap.
Cartões de recuperaçãoIdentidadeAtive para virar
IdentidadeDevice, inode, tamanho e metadados em nanossegundos do objeto aberto.
Cartões de recuperaçãojournalAtive para virar
journalUm artefato estrutural distinto, não fonte de janelas de transcrição.

Teste seu modelo

O que acontece com `subagents/journal.jsonl` na U2?

A precedência do basename journal torna a política estrutural especial explícita.
5

Ledger de evidências

Contrato · PROVENSCOPE + código-fonte
Implementação · PROVENcódigo + testes focados
Fronteira compilada · PROVENrecibo U2 registrado
Sonda independente · PROVENarquivos/hashes/bytes U2 coincidem

Autoridade: docs/fable-session-mining/LOOP-LOG.md. Testes nunca promovem um recibo real ausente.