Sessoes 1-6 acumuladas: hardening B2, defesa em camadas, +192 testes

Repositorio estava ha ~5 sessoes sem commit. Consolida tudo desde d088a89.

Ver commit.md na raiz para descricao completa por sessao.

# Numeros
- A# auditoria abertos: 0/30
- V# verificacoes abertos: 5/52 (todos adiados com plano)
- T# testes escritos: 10/10
- Vitest: 192/192
- SQL integration: 33/33
- E2E (Playwright, novo): 5/5
- Migrations: 17 (10 novas Sessao 6)
- Areas auditadas: 7 (+documentos com 10 V#)

# Highlights Sessao 6 (hoje)
- V#34/V#41 Opcao B2: tenant_features com plano + override (RPC SECURITY DEFINER, tela /saas/tenant-features)
- A#20 rev2 self-hosted: defesa em 5 camadas (honeypot + rate limit + math captcha condicional + paranoid mode + dashboard /saas/security)
- Documentos hardening (V#43-V#49): tenant scoping em storage policies (vazamento entre clinicas eliminado), RPC validate_share_token, signatures policy granular
- SaaS Twilio Config (/saas/twilio-config): UI editavel para SID/webhook/cotacao; AUTH_TOKEN permanece em env var
- T#9 + T#10: useAgendaEvents.spec.js + Playwright E2E (descobriu bug no front que foi corrigido)

# Sessoes anteriores (1-5) consolidadas
- Sessao 1: auth/router/session, normalizeRole extraido
- Sessao 2: agenda - composables/services consolidados
- Sessao 3: pacientes - tenant_id em todas queries
- Sessao 4: security review pagina publica - 14/15 vulnerabilidades corrigidas
- Sessao 5: SaaS - P0 (A#30: 7 tabelas com RLS off corrigidas)

# .gitignore ajustado
- supabase/* + !supabase/functions/ (mantem 10 edge functions, ignora .temp/migrations gerados pelo CLI)
- database-novo/backups/ (regeneravel via db.cjs backup)
- test-results/ + playwright-report/
- .claude/settings.local.json (config local com senha de dev removida do tracking)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Leonardo
2026-04-19 15:42:46 -03:00
parent d088a89fb7
commit 7c20b518d4
175 changed files with 37325 additions and 37968 deletions
+278
View File
@@ -0,0 +1,278 @@
# AgenciaPsi — Roadmap em Fases
> Proposta derivada de `ESTRUTURA.md` (o que já existe) + `concorrentes.md` (o que o mercado tem).
> Data: 2026-04-17
> **Decisões estratégicas** abertas pra validação estão marcadas com ⚠️
---
## Posicionamento recomendado (proposta)
Olhando o estado atual e o terreno competitivo, recomendo:
> **"Psicomanager moderno + IA"** — competir diretamente no nicho de psicologia BR (onde já temos 75-80% pronto), ganhar por **UX moderna** (Vue 3 / PrimeVue / dark mode) e **IA nativa** (onde Psicomanager/PsicoPlanner ainda estão correndo atrás). Pricing entry baixo (tipo PsicoPlanner R$59-79/mês solo) + tier clínica pra monetizar rede.
**Por quê esse corte:**
- 🎯 **Foco:** psico-first (e não generalista como iClinic/Amplimed) — o diferencial é conhecer profundamente o fluxo CFP
- 🎯 **Competitividade:** IA é o campo aberto — Amplimed (Amélia) e Jane (AI Scribe) já estão lá; ainda dá pra chegar
- 🎯 **Custo:** solo-dev → priorizar features de **alto ROI por esforço**; deixar TISS/hospital-grade pra depois
- 🎯 **UX:** PrimeVue/Tailwind dá dignidade visual que Psicomanager ainda não tem
⚠️ **Decisão aberta:** se você quer competir por preço-baixo (PsicoPlanner) ou por valor-alto (Jane App), o roadmap muda. Supus mid-market aqui.
---
## Legenda de esforço
- **S** — <1 semana (quick win)
- **M** — 1-3 semanas
- **L** — 3-8 semanas
- **XL** — 2+ meses (feature grande, múltiplas deps)
## Legenda de prioridade
- 🔴 **Bloqueador** — sem isso, não rola lançar a fase
- 🟠 **Alta** — cria valor imediato pro usuário, reduz churn
- 🟡 **Média** — completa a paridade, não é urgente
- 🔵 **Diferencial** — aposta de posicionamento
---
# 🚀 FASE 1 — MVP Launch
**Objetivo:** ter um produto cobrável, confiável, completo o suficiente pra um terapeuta solo trocar Psicomanager/PsicoPlanner pelo AgenciaPsi.
**Timeline sugerida:** 4-6 semanas
**Critério de saída:** 5 usuários pagantes em produção sem churn por "falta de feature básica".
## 1.1 Monetização (bloqueador total) 🔴
Você **não consegue cobrar** os próprios clientes nem as assinaturas SaaS sem isso.
| # | Feature | Esforço | Notas |
|---|---|---|---|
| 1 | **Integração com gateway de pagamento** (Asaas ou Iugu recomendado pro BR — PIX + cartão + boleto nativos) | L | Asaas é o mais barato pra começar; Iugu tem API melhor. Escolha 1. Stripe só se for internacional. |
| 2 | **Cartão on file** (tokenização via gateway) | M | Desdobra de #1 |
| 3 | **Auto-billing recorrente** (baseado na agenda) | M | Trigger: sessão realizada → gera fatura → cobra automaticamente |
| 4 | **Cobrança das próprias assinaturas SaaS** (tenants pagam pelo plano) | M | Aproveita estrutura de `subscriptions` que já existe |
## 1.2 Compliance básico BR 🔴
Não dá pra lançar sem isso ou você pega processo em 6 meses.
| # | Feature | Esforço | Notas |
|---|---|---|---|
| 5 | **Tipo de registro profissional** (CRP, CRM, CRFa, RMS…) — campo obrigatório no cadastro | S | Aparece em recibos/laudos |
| 6 | **Biblioteca de consent forms editáveis** (TCLE, Telehealth, LGPD, Gravação, TCLE menores) | M | Templates pré-prontos; profissional customiza |
| 7 | **Assinatura eletrônica pelo paciente no portal** (simples, com IP+timestamp) | M | Não precisa ICP-Brasil nessa fase |
| 8 | **Nome social** no cadastro (além do nome de registro) — CFP exige | S | Campo adicional; aparece em todas as telas voltadas ao paciente |
| 9 | **Especialidades** no cadastro do profissional (lista + "outra") | S | DB: tabela `specialties` + FK em `profiles` |
## 1.3 UX mínima esperada 🟠
Todo concorrente tem — usuário novo estranha se não tiver.
| # | Feature | Esforço | Notas |
|---|---|---|---|
| 10 | **Busca global no topbar** (paciente, email, telefone) | S | Autocomplete com debounce + highlight |
| 11 | **Recently viewed** (últimos 5 pacientes acessados, por usuário) | S | localStorage ou tabela `user_recent_access` |
| 12 | **Papel timbrado** (portar do UniaoApp como você mencionou) | M | Já existe noutro projeto — só adaptar |
| 13 | **Relatórios com export PDF/Excel** (já tem estrutura, fechar) | M | Fechar os gaps que o MVP assessment apontou |
## 1.4 Fiscal mínimo 🟠
Pra o terapeuta conseguir operar.
| # | Feature | Esforço | Notas |
|---|---|---|---|
| 14 | **Recibo profissional** (PDF gerado, com dados CFP) | S | Já tem base de documentos — só formalizar template |
| 15 | **NFS-e emissão** (integração Focus NF-e ou NFS-e direto da prefeitura) | L | Pode ficar pra 1.5 se apertar prazo; faz diferença pro profissional se diferenciar |
## 1.5 Qualidade pra lançar 🟠
| # | Feature | Esforço | Notas |
|---|---|---|---|
| 16 | **Testes E2E dos fluxos críticos** (cadastro, login, agendamento, cobrança, prontuário) | L | Playwright ou Cypress; prioridade: compra + agendamento |
| 17 | **Responsividade mobile validada** (terapeuta consulta agenda no celular) | M | Auditoria + fix de breakpoints |
| 18 | **Monitoramento de produção** (Sentry + Supabase dashboards) | S | Detectar bugs antes do usuário reclamar |
### 📦 Entregas da Fase 1
- **Produto cobrável** (gateway integrado)
- **Legal safe** (consent forms, nome social, especialidades)
- **UX polida** (busca, papel timbrado, relatórios)
- **Testado** (E2E crítico + mobile)
### ⚠️ Decisões abertas
- **Gateway:** Asaas (barato) vs Iugu (melhor DX) vs Stripe (internacional depois) — recomendo **Asaas** pra começar rápido
- **NFS-e:** incluir na 1.4 ou empurrar pra 2? Recomendo **incluir** — é quick win e diferencia de Psicomanager
- **Pricing:** qual é o seu valor? (R$59 solo como PsicoPlanner? R$99? R$149?) — afeta quanto time você tem pra chegar nas próximas fases
---
# 🏗️ FASE 2 — Paridade Competitiva
**Objetivo:** qualquer usuário avaliando AgenciaPsi × Psicomanager × PsicoPlanner deve ver **paridade ou mais** de features. Nenhum "ah, mas lá tem X" válido.
**Timeline sugerida:** 2-3 meses após Fase 1
**Critério de saída:** feature checklist empatada com top-3 concorrentes nichados.
## 2.1 Comunicação / Engajamento (onde PsicoPlanner ganha hoje) 🟠
| # | Feature | Esforço | Notas |
|---|---|---|---|
| 19 | **Agenda diária automática 7h via WhatsApp** | S | Cron job + template; feature signature do PsicoPlanner |
| 20 | **Confirmação de presença pelo paciente** ("responder SIM") | M | Parser de resposta WhatsApp/SMS → atualiza status |
| 21 | **Rastreamento de engajamento em tempo real** (recebeu/leu/respondeu) | M | Webhooks da Evolution API + dashboard no topbar |
| 22 | **Envio de prescrição/documento via WhatsApp direto** | S | Botão "Enviar via WA" já gerando link temporário |
## 2.2 Prontuário (onde iClinic ganha hoje) 🟠
| # | Feature | Esforço | Notas |
|---|---|---|---|
| 23 | **Templates de nota** (SOAP / DAP / BIRP / evolução livre CFP-style) | M | Biblioteca com templates selecionáveis |
| 24 | **Biblioteca de instrumentos de avaliação** (GAD-7, PHQ-9, BDI, BAI, DASS-21, SRQ-20) com scoring automático | L | Cada escala tem perguntas + score calculado + gráfico de evolução |
| 25 | **Histórico em gráfico/tabela** (evolução de escalas ao longo do tempo) | M | Chart.js já no projeto |
| 26 | **Versionamento de notas** (auditoria de alterações) | M | Log de alterações + diff visual |
## 2.3 Intake / Onboarding do paciente 🟡
| # | Feature | Esforço | Notas |
|---|---|---|---|
| 27 | **Pacote de intake** (formulários + anamnese + consent forms enviados pré-1ª-sessão) | M | Fluxo: terapeuta monta pacote → paciente recebe link → preenche → assina → terapeuta vê tudo |
| 28 | **Upload de arquivo pelo paciente** (exames, relatórios externos) | S | Storage bucket já configurado |
## 2.4 Agenda / Integrações 🟡
| # | Feature | Esforço | Notas |
|---|---|---|---|
| 29 | **Google Calendar 2-way sync** | L | API OAuth + conflict resolution |
| 30 | **iCal feed** (leitura por Apple Calendar / Outlook) | S | Endpoint que serve .ics |
## 2.5 Fiscal avançado BR (onde Amplimed/iClinic ganham) 🟡
| # | Feature | Esforço | Notas |
|---|---|---|---|
| 31 | **Assinatura digital ICP-Brasil** (laudos com validade jurídica) | L | Integração com ValidCertificadora ou similar |
| 32 | **Faturamento TISS básico** (pra clínicas que têm convênio) | XL | Nichado — só se você quiser ir pra tier clínica/rede |
## 2.6 Marketing / Presença 🟡
| # | Feature | Esforço | Notas |
|---|---|---|---|
| 33 | **Perfil público do terapeuta** (página /p/<slug> com bio, horários, agendamento) | M | Já tem agendador público — só enriquecer |
| 34 | **SEO básico** (schema.org/MedicalBusiness + meta tags) | S | Melhora descoberta orgânica |
### 📦 Entregas da Fase 2
- Paridade completa com Psicomanager/PsicoPlanner/iClinic
- **Sem furo comparativo** em review de feature
- Começo de presença pública (perfil + SEO)
### ⚠️ Decisões abertas
- **TISS (item 32):** grande esforço por nichado — só faz sentido se você for atrás de mercado de clínica com convênio. **Recomendo não fazer** nesta fase.
- **ICP-Brasil (item 31):** pesa? Depende do público. Terapeuta solo raramente precisa. Clínica com laudo pericial, sim. **Recomendo empurrar pra Fase 3** se o MVP foi pra solo.
---
# 🧠 FASE 3 — Diferenciação (IA-first)
**Objetivo:** ter 2-3 features que **nenhum concorrente BR tem em paridade**. Vira marketing: "o sistema com IA pra psicólogos".
**Timeline sugerida:** 3-6 meses após Fase 2
**Critério de saída:** você consegue justificar um **tier premium 2x mais caro** que o básico.
## 3.1 IA — Onde compensa correr 🔵
O time de IA geral (Claude, GPT) tá commoditizado — vantagem vai pra quem **integra bem** ao workflow do usuário.
| # | Feature | Esforço | Notas |
|---|---|---|---|
| 35 | **Bot WhatsApp que agenda sozinho** (equivalente Amélia Agendamento) | XL | Stack: Evolution API + LLM + RAG na disponibilidade da agenda. ROI claro: **24/7 sem recepcionista** |
| 36 | **Transcrição de sessão áudio→texto** (equivalente AI Scribe do Jane + Amélia Transcrição) | L | Whisper API local ou Deepgram; paciente consente; transcrição vira rascunho de nota |
| 37 | **Copilot no prontuário** (resumir histórico, sugerir diagnóstico diferencial baseado em notas anteriores, buscar semântica) | L | RAG em cima das notas do paciente |
| 38 | **Gerador de documentos com compliance CFP** (equivalente PsiAssist) | M | LLM com system prompt de CFP + templates |
## 3.2 Teleconsulta nativa 🔵
Se o público-alvo inclui teleatendimento (grande chance pós-pandemia), isso é essencial.
| # | Feature | Esforço | Notas |
|---|---|---|---|
| 39 | **Vídeo nativo integrado** (Daily.co ou Jitsi Meet) | L | Sala gerada por consulta + link no lembrete |
| 40 | **Sala de espera virtual** | M | Profissional admite paciente |
| 41 | **Whiteboard digital + screen share** | M | Daily.co tem nativo |
## 3.3 Rede / Multi-unidade (se posicionar pra clínicas) 🔵
Só fazer se posicionar pra tier **enterprise**. Solo-therapist não precisa.
| # | Feature | Esforço | Notas |
|---|---|---|---|
| 42 | **Multi-unidade / filiais** com Main Office | L | Tabela `clinic_units` + FK em consultas/profissionais |
| 43 | **Salas e equipamentos como recursos** (estilo Jane App) | M | Evita double-booking |
| 44 | **CRM de leads** (captura de landing → funil → matching com terapeuta) | L | Aproveita o perfil público da Fase 2 |
| 45 | **BI avançado** (MRR, cohort retention, LTV por terapeuta) | M | Dashboards dedicados |
## 3.4 UX premium / diferenciação fina 🔵
| # | Feature | Esforço | Notas |
|---|---|---|---|
| 46 | **Website builder pra clínica** (estilo Jane) — sem precisar de Wix/WordPress | XL | Grande mas ROI de marketing enorme |
| 47 | **App mobile (PWA otimizado)** — paciente instala no celular | M | Vue já dá PWA grátis, só polir |
| 48 | **Migração assistida de Psicomanager** (importador de CSV/API) | M | Feature de venda: "deixa o outro, a gente migra" |
### 📦 Entregas da Fase 3
- **IA-nativa** posicionamento (bot WhatsApp, transcrição, copilot) — Amplimed/Jane nível
- **Teleconsulta própria** (se optar)
- Opcional: tier **enterprise** com multi-unidade
- **Website builder** como moat de marketing
### ⚠️ Decisões abertas
- **Foco único ou múltiplas apostas?** Recomendo: **só IA (3.1)** no primeiro semestre da Fase 3. Teleconsulta e Multi-unidade podem esperar Fase 4.
- **Custo de IA:** transcrição (Whisper) + LLM (Claude/GPT) tem custo por uso — precisa embutir no pricing ou cobrar add-on
---
# ❌ O que ficou FORA do roadmap (propositalmente)
Decisões de "não fazer" são tão importantes quanto as de fazer:
- **Prescrição eletrônica de medicamentos** — só psiquiatras usam; mercado nichado demais
- **Marketplace de terapeutas público** (tipo Doctoralia) — é um negócio completamente diferente; seu negócio é gestão, não captação
- **E-prescribing com farmácia integrada** — idem, só pra psiquiatra
- **Controle de estoque** (Ninsaúde/iClinic têm) — irrelevante pra psicólogo
- **Integração com laboratórios** — irrelevante
- **Controle de vacinas** (iClinic tem) — irrelevante
- **Multi-idioma** (SimplePractice tem espanhol) — empurrar pra Fase 4+ quando for pensar LATAM
- **Certificação HIPAA/HITRUST** — caríssima; LGPD suficiente pra BR
- **App iOS/Android nativo** — PWA resolve 90% do caso; nativo só se houver demanda explícita
---
# 📊 Resumo em tabela
| Fase | Foco | Duração | Features | Esforço total |
|---|---|---|---|---|
| **1 — MVP** | Cobrável + legal safe + UX básica | 4-6 semanas | 18 itens | ~3M de backlog |
| **2 — Paridade** | Empatar com competição BR | 2-3 meses | 16 itens | ~4L de backlog |
| **3 — Diferenciação IA** | Virar "o SaaS com IA pra psico" | 3-6 meses | 14 itens | ~5XL de backlog |
---
# 🎯 Decisões estratégicas pendentes (pra você)
Antes de começar, definir:
1. **Pricing** — R$59, R$99 ou R$149 solo? Afeta quanto tempo você tem pra chegar na Fase 2.
2. **Tier clínica** — vai existir desde o MVP ou só na Fase 3? Afeta item 32 (TISS) e 42 (multi-unidade).
3. **Gateway de pagamento** — Asaas (barato) vs Iugu (melhor DX)? Escolher agora.
4. **IA própria ou terceirizada?** — chamar API da Anthropic/OpenAI (rápido, custo variável) ou rodar modelos open-source localmente (lento, custo fixo)? **Recomendo API** pra começar.
5. **Foco na Fase 3** — IA-first, teleconsulta-first, enterprise-first? Você só tem tempo pra **uma** dessas apostas no primeiro semestre.
6. **Data de lançamento do MVP** — se a meta é 2026-06-01, Fase 1 tem que terminar mid-maio. Planejar capacity.
---
# 📎 Referências cruzadas
- **`ESTRUTURA.md`** — o que já existe no sistema (79 features construídas)
- **`concorrentes.md`** — benchmark de 7 players (SP, Psicomanager, iClinic, Amplimed, PsicoPlanner, Ninsaúde, Jane)
- **`mapa-sistema.html`** — visualização interativa do que está feito
- **`memory/project_mvp_assessment.md`** (25/03/2026) — gaps críticos MVP-assessment original
---
**Próximo passo sugerido:** você lê, contesta o que discorda, responde as 6 decisões pendentes lá em cima, e a gente passa pra **backlog executável** da Fase 1 (breakdown task-por-task do que você vai fazer esta semana / próxima).