Pular para conteúdo

Implementation Plan: Paridade do Legado em Repositórios Separados

Branch: 002-legacy-repo-parity | Date: 2026-08-04 | Spec: spec.md

Summary

Transformar a referência funcional em apps/ em contratos e jornadas verificadas nos repositórios prontuare-web e prontuare-api. A execução começa pelas jornadas P1 e fecha primeiro as lacunas que hoje fazem a interface depender de clientes ou rotas legadas. Recursos novos e sensíveis (documentos, áudio e IA) permanecem explicitamente indisponíveis até sua fatia própria estar pronta.

Technical Context

Language/Version: TypeScript; Node.js 22 para web; Bun 1.3 para API.

Primary Dependencies: Next.js 15 e pnpm no web; Elysia, Drizzle e Zod na API; Playwright para jornada de navegador.

Storage: PostgreSQL; Redis somente para processamento assíncrono já pertencente ao repositório da API.

Testing: testes de integração Bun na API; typecheck/build nos dois repositórios; Playwright contra web, API e banco locais.

Target Platform: navegador moderno e containers Linux em Dokploy.

Project Type: aplicação web e serviço de API em repositórios separados.

Performance Goals: operações comuns de ficha, agenda e formulário exibem resultado ao profissional em até 2 segundos no ambiente local de validação; falhas externas apresentam estado em até 5 segundos.

Constraints: propriedade individual; dados clínicos nunca aparecem entre usuários; erros públicos possuem mensagem, status e identificador; IA é rascunho revisável; migrations idempotentes no caminho de deploy.

Scale/Scope: paridade de cerca de 14 áreas do inventário, priorizada por jornadas; não inclui corte de dados legados nem colaboração por clínica.

Constitution Check

Gate Status Evidência
Spec antes de mudança PASS spec.md e inventário aprovados pelo owner.
Contrato primeiro PASS Contratos de paridade e erros definidos em contracts/.
Verificação vertical PASS quickstart.md exige API, banco e browser locais.
Segurança clínica PASS Isolamento, consentimento e revisão humana são requisitos.
IA legível PASS Sem repo/serviço separado; estado e cancelamento explícitos.

Project Structure

prontuare-api/
├── src/domains/{auth,profile,clinical,attendance,calendar,forms,plans,ai}/
├── src/db/
└── test/

prontuare-web/
├── app/
├── components/
├── hooks/
├── lib/
└── packages/

apps/                         # referência legada até a paridade aprovada
specs/002-legacy-repo-parity/
├── contracts/
├── data-model.md
├── parity-inventory.md
├── plan.md
├── quickstart.md
├── research.md
└── tasks.md

Structure Decision: Web e API permanecem independentes. Contratos são documentados no workspace e testados contra a API publicada; não se cria novo repositório para worker, agentes ou especificações.

Delivery Phases

  1. Consolidar contrato de sessão, paciente, atendimento, agenda e formulário e substituir chamadas restantes ao cliente legado.
  2. Tornar onboarding/perfil e limite gratuito verificáveis e recuperar consultas brasileiras com fallback manual.
  3. Fechar i18n e estados de erro; testar jornadas P1/P2 reais.
  4. Tratar documentos e assistência IA apenas como fatias posteriores com specs complementares, caso ainda não tenham contrato executável.