docs: rewrite README for investigative-journalist readers, add screenshot

This commit is contained in:
2026-09-13 14:07:30 +02:00
parent c7c7d32ab5
commit e8c264bbe2
2 changed files with 37 additions and 65 deletions
+37 -65
View File
@@ -1,78 +1,50 @@
# Pet16704 — Análise do Processo
Visualização interativa da linha do tempo dos autos vinculados **Pet16704** (STF)um ponto por
documento, agrupado pela instituição de origem (Relatoria, PGR, Polícia Federal, Partes e Defesas,
Secretaria e Cartório) e posicionado pela data real de juntada.
Uma linha do tempo navegável de tudo que está nos autos da **Pet16704**, no STF — o processo que reúne
a investigação do colapso do Banco Master (Operação Compliance Zero). São **3.437 documentos**, de
2018 a 2026, organizados por data e por quem os produziu (STF, PGR, Polícia Federal, partes/defesas,
cartório).
**Ver a página publicada:** (preencha aqui o link do GitHub Pages depois do primeiro deploy)
![Linha do tempo da Pet16704](timeline-screenshot.png)
## Como os dados foram montados
## O que dá pra fazer aqui
1. **`docs.json`** — cruzamento de duas fontes do dump original (uma com a instituição de cada
documento, outra com data/texto completo/arquivo-fonte). Ver `pipeline/extract.py`.
- **Ver cada documento no tempo**, agrupado por quem o produziu, com busca por texto ou nº do
documento e filtro por tipo de documento ou por pessoa citada.
- **Clicar em qualquer ponto** para ler o resumo daquele documento e abrir o texto original completo
(extraído por OCR dos autos).
- **Ver o resumo do processo conexo** ao qual aquele documento pertence — são **53 processos
apensados** à Pet16704 (outros inquéritos e petições), cada um com um resumo em linguagem corrente
de quem é investigado, quem são os advogados e o que aconteceu.
- **Consultar quem é citado**: **292 pessoas** identificadas automaticamente nos textos, com o papel
de cada uma (investigado, advogado, autoridade, testemunha etc.) sempre que dava pra inferir com
segurança — sem forçar uma classificação quando o texto não dava sinal suficiente.
- Alternar para uma **visão em tabela**, pesquisável, como atalho para quem prefere não navegar pelo
gráfico.
2. **Tipo de documento** — extraído do nome do arquivo-fonte de cada documento (ex.: "Despacho",
"Petição", "Procuração", "Certidão"), normalizado com acentuação correta.
## De onde vêm os dados
3. **Pessoas mencionadas (`people.json` / `PESSOAS.md`)** — reconhecimento de entidades feito
**localmente, sem usar o Claude para o texto em si**, com o modelo
[`pierreguillou/ner-bert-base-cased-pt-lenerbr`](https://huggingface.co/pierreguillou/ner-bert-base-cased-pt-lenerbr)
(BERT treinado no corpus **LeNER-Br**, de textos jurídicos brasileiros). Rodado sobre os 3.437
textos via `pipeline/run_ner.py`.
Os documentos originais (PDFs digitalizados dos autos) foram convertidos em texto por OCR com o
[liteparse](https://github.com/run-llama/liteparse). Os resumos de cada documento e de cada processo
conexo foram escritos por modelos de IA gratuitos rodados via [opencode](https://opencode.ai). O
reconhecimento de pessoas citadas nos textos usou um modelo especializado em português jurídico
(código e detalhes técnicos em `pipeline/`, para quem quiser conferir).
Depois da extração bruta (435 nomes distintos), foi feita uma limpeza:
- separação de nomes que o modelo juntou erroneamente com "e" (ex. "Fulano e Beltrano" → duas
pessoas), preservando sobrenomes compostos legítimos ("Castro e Silva");
- remoção de nomes de escritórios de advocacia reconhecidos como pessoa por engano;
- descarte de fragmentos de um único token (nomes incompletos, ex. só o primeiro nome);
- junção de variações do mesmo nome por contenção de tokens (ex. "Daniel Vorcaro" →
"Daniel Bueno Vorcaro").
Resultado: **292 pessoas distintas**, listadas em `people.json` (formato bruto, usado pela
página) e em `PESSOAS.md` (tabelas legíveis, agrupadas por papel). O papel processual de cada
pessoa (Relator/Ministro, Outorgante/Parte, Peticionante, Advogado(a), Investigado(a),
Delegado(a) PF, Senador(a), Deputado(a), Alvo de diligência, Perito(a), Testemunha) foi inferido
por frases-gatilho perto de cada menção (ex. "Despacho do Relator X", "Procuração de X
constituindo Y", "em desfavor de X"). **63% das pessoas (185 de 292) ficaram sem papel
classificado** ("Mencionado(a)") por falta de um sinal textual próximo confiável — isso é
esperado e fica visível na própria listagem, não escondido.
**Limitações conhecidas:** isso é reconhecimento automático de entidades em texto livre, não uma
base curada. Pode haver nomes não reconhecidos, variações da mesma pessoa não unificadas, e
classificações de papel aproximadas. Trate como um ponto de partida para busca, não como fonte
definitiva de identidade ou qualificação processual.
4. **Recuperação de datas (`pipeline/recover_dates.py`)** — dos 615 documentos sem data de juntada
identificada no dump original, 366 tiveram uma data recuperada lendo o texto original do próprio documento em
busca da sua linha de fechamento no padrão "Cidade/UF, DD de mês de YYYY." (ex. "Brasília, 10 de
abril de 2026."). Esses casos ficam marcados com `dateInferred: true` em `docs.json` e aparecem
no resumo do documento como "data lida no texto do documento, não da juntada nos autos" — é uma
data real do documento, mas não necessariamente a data em que foi juntado ao processo. Os 249
restantes seguem sem data (fora do gráfico, só na tabela). Duas versões mais permissivas foram
tentadas e descartadas por amostragem manual antes desta: buscar qualquer "DD de mês de YYYY" no
texto pegava datas de citação de leis/decretos ("da Lei 11.419, de 19 de dezembro de 2006") e
prazos de normas citadas ("será exigido a partir de 1º de janeiro de 2017") como se fossem a data
do documento; e um fallback numérico (`dd.mm.aaaa`) pegava números soltos de anexos técnicos
longos (um laudo de vistoria, a validade de um CRECI) sem relação com a data real. Exigir uma
cidade e vírgula imediatamente antes da data eliminou os falsos positivos encontrados.
5. **Autos vinculados (`resumos/parte1/`, `resumos/parte2/`)** — resumos em markdown dos processos conexos citados
ao longo da Pet16704 (Inq 5026, Inq 5035, Inq 5050, Inq 5070, Rcl 88121 e diversas Petições —
PET 15198, 15375, 15478 etc.), um arquivo por processo mais um `INDEX.md` consolidado em cada
pasta. Cobrem partes/investigados, advogados, autoridades e linha do tempo resumida de cada
procedimento. Na página, o resumo de qualquer documento da linha do tempo tem um botão "Ver
resumo do processo" que busca e mostra o arquivo correspondente aqui.
Nada disso substitui a leitura dos autos originais — é um ponto de partida para localizar e cruzar
informação, não uma fonte verificada. OCR erra, resumo automático simplifica, e reconhecimento de
nomes automático pode juntar ou deixar de reconhecer alguém. Sempre que algo parecer relevante,
confira no documento original (tem um link pra ele em cada ponto da linha do tempo).
## Projeto relacionado
[**vorcaros**](https://rafapolo.github.io/vorcaros/) — visualização em grafo da rede societária
(empresas e sócios) ligada às mesmas pessoas que aparecem nesta linha do tempo processual. Os dois
projetos olham o mesmo caso por ângulos diferentes: um pela rede de negócios, este pelo andamento
processual.
[**vorcaros**](https://rafapolo.github.io/vorcaros/) — o mesmo caso visto pelo outro lado: um grafo da
rede societária (empresas e sócios) das mesmas pessoas que aparecem aqui.
## Aviso
## Aviso — leia antes de usar
Este projeto reúne informações de um processo público em curso no STF. Nomes, datas e descrições
refletem o conteúdo dos autos tal como disponibilizado; erros de extração automática (OCR, NER,
digitação no material de origem) podem existir. Não constitui manifestação jurídica sobre culpa,
inocência ou qualquer qualificação processual das pessoas mencionadas.
Este material está **sob sigilo nos autos originais**; o que está aqui é uma organização não oficial
de conteúdo público do processo, para fins de apuração jornalística e pesquisa. Nomes, datas e
descrições refletem o conteúdo dos autos tal como disponibilizado, com os erros de extração
automática (OCR, IA, digitação no material de origem) que isso pode carregar. Nada aqui constitui
manifestação jurídica sobre culpa, inocência ou qualquer qualificação processual das pessoas
mencionadas.
Binary file not shown.

After

Width:  |  Height:  |  Size: 231 KiB