Files
gerador-proposta/docs/gerador-propostas/IMPLEMENTATION_MAP.md
T
2026-10-03 00:00:45 -03:00

4.1 KiB
Raw Blame History

Mapa de implementação — Gerador de Propostas

Estado: prompt 01 concluído no papel. ADR-000 aceito: standalone neste repositório. P-006, P-009, P-010 e P-011 seguem Proposed.

Layout

app/                                 # prompt 04; ainda não existe
src/domain/{models,proposals,generation,delivery,audit,branding,cro,shared}
src/application/generation           # coordinator da geração
src/application/access               # interface; implementação no prompt 03
src/ports/
src/infrastructure/memory            # somente duplos de teste
src/integrations/elopro              # CRO e futuros contratos, sem código compartilhado
src/ui                               # prompt 04
src/observability
supabase/migrations/                 # prompt 02; ainda não existe
docs/gerador-propostas/adr/

PostgreSQL será a fonte de verdade dos estados formais. Redis ficará com lock, claim de geração e job efêmero. Nenhum dos dois clientes está instalado.

Mapa por prompt

Prompt Feature Onde deve morar Padrão existente
01 Arquitetura, ADRs P-006/P-009/P-010/P-011, ports docs/gerador-propostas/ARCHITECTURE.md, docs/gerador-propostas/adr/, src/ports/ Feito. ADRs 001–004 em Proposed. Sem sequence, sem motor, sem provider.
02 Schema, constraints, RLS supabase/migrations/ Nenhum. Toda tabela de domínio tenant-safe por workspace_id ou FK + RLS.
03 Auth, workspace, papéis src/application/access/ + guards nas actions Interface WorkspaceAuthorizer sem adapter permissivo. workspace_id resolvido no servidor.
04 DS V2.1 e app shell app/, estilos Tailwind v4, componentes locais do domínio Nenhum token no repo. Lacunas de DS (Search, Table, Stepper, Empty, Pagination, Skeleton, Upload, Avatar) ficam locais, não globais.
05 Listagem de modelos e limite 10 src/domain/models/ + rota de Modelos Contar draft/active/archived; versões não ocupam vaga.
06 Upload e análise [campo] porta TemplateIngestionService; UI de upload local P-010 aberto. Sem inferir campo por IA/heurística.
07 Revisão de campos, ativação, V1/V2+ domínio de modelos Versão ativada imutável no fluxo normal. Só modelo Ativo inicia proposta.
08 Lock, autosave, arquivar, excluir modelo Redis lock + PostgreSQL estado TTL 10 min, sem force takeover.
09 Home 4.1 e seleção app/ propostas Abrir fluxo não cria rascunho vazio.
10 Editor 4.2, campos, preview uma página, estados Preencher → Validar → Gerar Tipos Texto e Número/moeda; default Texto; obrigatório = Não.
11 Autosave, lock, salvar, sair, trocar modelo drafts + lock Rascunho nasce no primeiro persist. Lock só libera após sucesso de salvar e sair.
12 Validar e gerar, idempotência GenerationCoordinator + job Falha não cria número, versão formal nem PDF parcial.
13 Versões, histórico, download proposal_versions + storage privado PDF servido é o da versão exibida. Histórico não é editável.
14 E-mail, auditoria, Sentry porta de e-mail + proposal_audit_events + Sentry P-011 e P-001 abertos. Sem documento integral nem PII desnecessária em log/Sentry.
15 Pré-preenchimento CRO src/domain/cro/ Opcional. Standalone funciona sem CRO. P-002 aberto (fonte de Cliente).
16 Testes, segurança, a11y Vitest + testes de RLS/cross-tenant Ainda sem runner.
17 Performance e resiliência sem módulo novo obrigatório P-012 aberto; não inventar SLO.
18 CI/CD e runbook pipeline no remoto Gitea (não há .github/) Sem pipeline hoje.
19 Auditoria de lacunas docs/gerador-propostas/ Confrontar com SOURCE_OF_TRUTH.md §7 e §8.

Fora do MVP (não mapear como entrega)

USD/i18n, editor rico, modelo do zero, duplicar modelo, assinatura, WhatsApp/CRM, status Enviada/Aceita/Rejeitada, rollback de checkpoint, app nativo, Contrato habilitado (P-005), Apresentação (P-004).

Gates

Ordem e gates humanos: EXECUTION_ORDER.md e HUMAN_REVIEW_CHECKLIST.md. O próximo passo permitido é o prompt 01, depois de revisão desta discovery.