Skip to content

Repository files navigation

Leitor de certidão de casamento

Aplicação Next.js para leitura determinística de certidões, preparada para futura incorporação ao divorcio.app. O processamento generativo é opcional e permanece desligado por padrão.

Estrutura

  • src/app/: rotas, layouts e Route Handlers do App Router;
  • src/components/: componentes do produto; primitives shadcn/ui ficam em ui/;
  • src/lib/domain/: contratos, representação intermediária, classificação, parsers, agregação e validação cruzada;
  • src/lib/pipeline/: adaptadores server-side de PDF, imagem e OCR;
  • tests/e2e/: jornadas críticas executadas no navegador;
  • tests/fixtures/: documentos exclusivamente sintéticos e seus manifestos;
  • scripts/: geração/verificação de fixtures e spikes reproduzíveis;
  • private-samples/: homologação local com documentos privados; ignorada pelo Git;
  • docs/: ADRs e relatórios sem PII.

Desenvolvimento

npm ci
cp .env.example .env.local
npm run dev

Os defaults seguros funcionam sem .env.local. Para executar todos os checks que não dependem de navegador:

npm run check

O E2E requer o Chromium do Playwright:

npx playwright install chromium
npm run test:e2e

Scripts da prova técnica continuam disponíveis por npm run phase0:check e npm run spike:private.

Pipeline técnico

Para executar apenas os testes de domínio, PDF, imagem e OCR:

npm run test:pipeline

O laboratório visual usa exclusivamente as fixtures sintéticas e só existe no servidor de desenvolvimento:

npm run dev

Abra http://127.0.0.1:3000/pipeline-lab. A página compara a fotografia original com as variantes equilibrada e limiarizada, mostra a confiança do OCR e expõe a decisão entre camada textual e fallback por página. Ela também mostra os campos extraídos dos modelos estruturado e inteiro teor, sua confiança e o resultado da validação de CPF/data. A rota responde como não encontrada no build de produção. A arquitetura e os invariantes de manutenção estão em docs/pipeline/technical-pipeline.md.

Compatibilidade conhecida

O projeto fixa ESLint 9.39.5 porque os plugins react, jsx-a11y e import transitivos do eslint-config-next 16.3 ainda não são compatíveis com ESLint 10. A atualização deve ser refeita quando essa cadeia declarar e comprovar suporte; ESLint 10 foi testado e falhou ao carregar react/display-name.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages