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