🧩
Editor dentro do sistema vem do exbt
O editor que roda hoje no repositório exbt passa a ser parte do sistema: a revisão da composição e o editor de páginas (
O editor que roda hoje no repositório exbt passa a ser parte do sistema: a revisão da composição e o editor de páginas (
exhibit-panel) entram no frontend, como esta aba do filing, com o login do sistema. O gerador do PDF (document-template-node: conversão, numeração, índice) continua um serviço à parte, e deixa de ler o Airtable: petição, documentos e anexos vêm de petition_filings, documents e do Storage. Detalhe na aba Como funciona.
Pronto para gerar o Exhibit List?
94 de 97 itens entram · 2 avisos
94%
Última geração04/08 · 14:22 · v3
Final deadline (protocolo)08/08 · faltam 3 dias
⚠
3 documentos ficariam de fora da compilação2 sem exhibit title preenchido · 1 com status diferente de aprovado
⚠
Diploma and transcripts: página 2 escaneada torta e com borda pretadetectado pelo agente na última geração · corrigir antes de gerar
🟡
Índice e numeração serão recalculados nesta geraçãoseparadores de exhibit não recebem número; ranges do sumário seguem as páginas carimbadas
automático
avisos por IA · advisory · a compilação final é conferida pelo advogado responsável
Todos · 97Entram · 94Ficam de fora · 3Com aviso · 2Por grupo ▾
| # | Página | Exhibit title | Grupo | Documento | Págs | Entra | |
|---|---|---|---|---|---|---|---|
| Forms and Cover · 8 itens | |||||||
| ⠿ | 1 | Form G-1450 ($715 towards I-140) | Forms and Cover | Form G-1450 | 1 | ||
| ⠿ | 2 | Cover Sheet | Forms and Cover | Cover sheet | 1 | ||
| ⠿ | 3 | Form G-28 | Forms and Cover | Form G-28 | 2 | ||
| ⠿ | 4 | Form I-140 Petition + supporting docs | Forms and Cover | Form I-140 | 6 | ||
| Evidence · 86 itens | |||||||
| ⠿ | 5 | Letters of Support | Evidence | Letter of Support (EB1) | 11 | ||
| ⠿ | 6 | Diploma and transcripts pág. 2 torta | Evidence | Doctoral credential | 4 | ||
| ⠿ | 7 | Media / publications | Evidence | Press coverage | 23 | ||
| — | (sem exhibit title) · Bank statement 2024 | Evidence | Bank statement | 3 | |||
| — | (sem exhibit title) · Employment letter | Evidence | Employment letter | 1 | |||
| — | Passport (cópia antiga) | Evidence | Passport | 2 | |||
🚫 Ficam de fora — e por quê
a razão aparece aqui na mesma tela; era a dor principal (só se descobria depois do PDF pronto)
⚠ Bank statement 2024 · sem exhibit title — preencher no documento
⚠ Employment letter · sem exhibit title — preencher no documento
⚠ Passport (cópia antiga) · status não aprovado (substituído pela v2) — correto ficar de fora
✓ 16 documentos do tipo record only não entram no exhibit por definição
Ajustes desta revisão
3 overrides ativos
ordem e inclusão ficam guardadas só aqui (
exhibit_overrides) — o dossiê do caso não é alterado
Diploma and transcripts
arquivo do cliente · 4 páginas
pág. 2 precisa de ajuste
Página 2
1
2 ⚠
3
4
sep.
UNIVERSIDADE FEDERAL · DIPLOMA (scan)
área a manter
Operações nesta página:
rotate +3.2° → 0°
crop 18,30 → 402,566 pt
resize A4 retrato
Escopo do editor: apenas geometria da página (rotate · resize · crop · deletar). Não edita texto, não faz OCR, não junta documentos diferentes — o merge final é do gerador.
🕓 Versões deste arquivo
v2 · 04/08 · Rafael A. ativa
crop na pág. 2 (borda preta do scan) + resize A4
v1 · 02/08 · Cynthia M.
rotate 90° na pág. 3 (landscape → retrato)
original · 29/07 · cliente (APP)
arquivo como recebido — sempre recuperável
o gerador usa a versão ativa; reverter para o original é um clique e não apaga o histórico
| Geração | Quando | Por | Itens | Páginas | Resultado | |
|---|---|---|---|---|---|---|
| v3 | 04/08 · 14:22 | Rafael A. | 94 | 318 | 2 avisos | 📎 abrir |
| v2 | 02/08 · 09:40 | Cynthia M. | 92 | 311 | ok | 📎 abrir |
| v1 | 30/07 · 17:05 | Nilzo G. | 88 | 296 | 4 falhas de conversão | 📎 abrir |
📋 Relatório da última geração (v3)
✓ 94 itens compilados · índice gerado · 318 páginas numeradas (separadores sem número)
⚠ 1 página possivelmente em branco (Media / publications, pág. 14)
⚠ 1 scan torto detectado (Diploma, pág. 2) — corrigir no editor
PDF final no Storage · link de download protegido (SSO do time)
⚙️ O caminho do PDF
gerador
document-template-node (Express :9007) · POST /document/exhibit-list assíncrono, com fila e dedupe- Lê o filing e os documentos (hoje: API do Airtable · no modelo novo:
petition_filings/documentsno Supabase) - Filtra: só documentos aprovados e com campos de exhibit preenchidos (o painel mostra quem sobrou de fora e por quê)
- Baixa cada anexo e converte para PDF A4 — imagens com sharp, Office com PSPDFKit
- Aplica as versões editadas quando existem (rotate/resize/crop/deletar salvos no editor) em vez do arquivo original
- Ordena por grupo → ordem do item → título; aplica os overrides da revisão
- Gera índice e páginas separadoras com Puppeteer (HTML → PDF) e carimba a numeração contínua
- Faz o merge com pdf-lib, comprime e sobe no Supabase Storage; devolve o link protegido
🧱 Onde o estado vive
exhibit_overrides · ordem e inclusão desta revisãoexhibit_edits · operações por página + versão ativaStorage
exhibit-lists · PDFs gerados e versões editadaso dossiê do caso segue sendo a fonte da verdade; aqui só moram ajustes de montagem
🔀 O que falta para o modelo novo
1. Trocar a leitura do Airtable pelas nossas tabelas (entra no desligamento do Airtable)
2. Entrar embutido na tela do filing, com o mesmo login do sistema (hoje é app interno sem auth)
3. Receber do Agente do Filing a ordem sugerida do exhibit e os avisos de página
nada disso exige reescrever o gerador — ele continua sendo a única lógica de PDF
📚 Documentação do módulo
origem: repo
exbt/legalscale-monorepo, com specs próprias. A migração para o sistema está na atividade 40 (specs/40-exhibit-no-sistema/) · specs de lá: visão geral, serviço gerador, painel de revisão, editor de páginas, paginação no download, correções pós-deploy. Boards: fluxo de documentos · fluxo por tecnologias.Protótipo navegável · dados fictícios (PII anonimizada) · Editor de Exhibit no contexto do filing.