Files
sar/design-artifacts/A-Product-Brief/dialog/constraints.md
julian 17c08e6392 chore: initial monorepo scaffold + WDS Phase 1+2 artifacts
- Nx 22.7 monorepo (pnpm 11.1, TypeScript 5.9, Node 24)
- apps/api: NestJS 11 (CJS conforme CODING-RULES.md PGD-DB-004)
- apps/web: React 19 + Vite 8 (ESM)
- libs/shared/api-interface: Zod contract base
- Docker Compose dev: Postgres 18, Valkey 8, MinIO, Mailpit
- WDS artifacts:
  - design-artifacts/A-Product-Brief/ (5 docs canônicos + 16 dialogs)
  - design-artifacts/B-Trigger-Map/ (hub + 4 personas + feature impact)
- Stack canon: STACK.md v2.2 + CODING-RULES.md v2.0 + brand.md
- AGENTS.md + README.md como entrada para devs/agentes

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 14:34:20 +00:00

8.6 KiB

Constraints — SAR (Força de Vendas)

Confirmed: 2026-05-26 Step: 10 — Constraints

Reposicionados como parâmetros de design — o que dá forma ao SAR. Fixo = certeza estratégica; Flexível = decidimos depois.


⚠️ Tensão estratégica explícita (flagueada por Saga)

O combo decidido:

  • Concept ambicioso (4 cockpits + WhatsApp nativo + IA estratégica + multi-tenant + real-time)
  • MVP em 3-4 meses
  • Solo founder mode (Julian full-time até 1º cliente)

A matemática não fecha sem trade-off. Solo + 3-4 meses não comporta o concept completo no MVP.

Resolução proposta (a confirmar em Phase 3 PRD)

MVP mínimo defensível (refinar em Phase 3):

  • Rep cockpit (Rafael — primária, mobile-first) — obrigatório
  • Supervisor cockpit (Sandra — influenciadora-chave da venda) — obrigatório, mas em forma simplificada
  • Arquitetura multi-tenant BD-por-workspace — fundacional, não dá pra adiar
  • WhatsApp — versão básica (envio de notificações; recebimento e conversa bidirecional pode ser fase pós-MVP)
  • 🟡 Dono cockpit (Daniel) — dashboard simples no MVP; IA estratégica entra pós-MVP (validar primeiro cliente)
  • 🟡 Admin cockpit (Alice) — cadastros essenciais + pautas; editor no-code de campanhas entra pós-MVP

Justificativa: 1º cliente do MVP é referência interna ou parceiro próximo (não cold lead). Pode aceitar limitações em troca de preço/condições especiais. Quando o 1º cliente renova (north star MVP), Julian contrata 1-2 devs e completa IA + editor no-code + cockpits ricos.

Alternativa (se o trade-off for inaceitável):

  • Reduzir solo period — contratar 1 dev mesmo antes do 1º cliente
  • OU esticar MVP para 5-6 meses
  • OU reduzir concept (sacrificar 1 cockpit ou um diferencial)

Timeline

Fixo

  • MVP em produção com 1º cliente real: 3-4 meses (a partir de 2026-05-26)
  • North star MVP: 1º cliente renova em mês 6-7
  • Janela de mercado: 2-3 anos para entrincheirar antes de saturação SaaS força de vendas BR
  • 10 clientes pagantes: ~mês 12

Flexível

  • Ordem das features dentro do MVP
  • GA público / fim de beta (depende de qualidade do MVP)
  • Sem deadline externo rígido (não há feira/contrato amarrando data)

Implicação de design

"Build to learn, not to plan." MVP minimalista, instrumentado para medir desde dia 0.


Budget

Fixo

  • Stakes: small-business (PME software house, 11-50 pessoas) — não é Series A
  • CAC payback < 12 meses (Step 8) — limita o quanto se pode gastar para adquirir cada cliente
  • Aquisição inicial baixa-fricção: indicação + SEO antes de ads pagos pesados
  • Sem orçamento para infra de luxo — STACK.md self-host Proxmox já calibrado para isso

Flexível

  • Tamanho do time escala com tração
  • Investimento em marketing escala com receita
  • Eventos/feiras escolhidos seletivamente

Implicação de design

Stack canônica self-host (Proxmox) + multi-tenancy bem feita = custo de infra por workspace baixíssimo. Crescimento sustentável.


Recursos humanos

Fixo (estado atual)

  • Julian: PO + Tech Lead + Champion + único dev (solo founder mode até 1º cliente)
  • Sem time de design dedicado — estreia em processo UX formal via WDS
  • Atendimento/SDR inicial = Julian

Premissa pós-MVP (a confirmar quando 1º cliente fechar)

  • Contratar 1-2 devs adicionais para acelerar IA + editor no-code + cockpits ricos
  • Atendimento eventualmente separado

Flexível

  • Quem são os devs adicionais (interno JCS / freelance / contratação)
  • Timing de profissionalização do atendimento

⚠️ Implicação crítica

Solo founder mode é o constraint mais apertado do projeto. Toda decisão de escopo no MVP precisa respeitar isso. Tudo que "pode esperar pra fase 2" → vai pra fase 2.


Técnico — STACK.md v2.2 (FIXO por escolha do PO)

Camada Decisão
Runtime Node 24 LTS · pnpm 11.1 · TypeScript 5.9
Monorepo Nx 22.7 (apps/api + apps/web + libs/)
Backend NestJS 11.1 · Prisma 7 · PostgreSQL 18 · BullMQ · nestjs-cls
Frontend React 19.2 · Vite 8 · Ant Design 6.4 · TanStack Query/Router · Zustand
API REST + OpenAPI 3.1 + RFC 9457 · Zod 4 (catalog) · nestjs-zod
Auth master-login (IdP próprio) · jose · argon2id
Multi-tenancy BD-por-workspace (ADR 0006)
Real-time Socket.IO 4 + redis-adapter (Valkey) · SSE nativo NestJS
Secrets HashiCorp Vault (KV v2) self-host
Observabilidade Pino + OpenTelemetry · Grafana Cloud LGTM · Sentry
Filas BullMQ 5.77
Uploads MinIO (S3-compat) + ClamAV worker · sharp
Email Resend (SaaS) + React Email via BullMQ
Infra Proxmox on-prem BR (ADR 0004) · Docker Compose · Ansible deploy
CDN Cloudflare + Nginx para SPA estática

Flexível (decidir em Step 29 — Integrations)

  • Provider de pagamento: Stripe / Iugu / Pagar.me / Gerencianet
  • Provider de IA: OpenAI / Anthropic / local
  • WhatsApp Business API: oficial Meta vs intermediário (Z-API, Twilio, Gupshup)
  • Analytics de produto: PostHog self-host? Amplitude? Misto?

Implicação de design

"STACK.md é fonte da verdade. Nada de propor PostgREST, Supabase, Next.js, trocar AntD por shadcn." Decisões fora da tabela exigem RFC.


Brand — brand.md (FIXO por escolha do PO)

Fixo

  • Paleta: JCS Blue #004a99 como único destaque cromático
  • Tipografia: Plus Jakarta Sans (pesos 400/500/600/700/800)
  • Ícones: Font Awesome 6.4.0
  • Gráficos: Chart.js
  • Radius: 12px (md) / 20px (lg)
  • Sombra padrão: 0 4px 25px rgba(0,0,0,0.05)
  • Layout base: topbar 80px + sidebar 260px fixa (cockpits Sandra/Daniel/Alice)
  • Tom visual: Apple-inspired, clean, minimalista

Flexível (Phase 6 Design System detalha)

  • Variações por cockpit — especialmente Rafael mobile-first (navegação inferior, single-column, touch-friendly)
  • Tokens secundários (estados de feedback) dentro da paleta JCS
  • Tom de voz textual (Steps 13-15)
  • Imagery (Step 25)
  • Dark mode (desejável especialmente Rafael à noite)

Implicação de design

brand.md é a base. Phase 6 (Design System) estende com variantes por cockpit, não substitui.


Regulatório / LGPD (FIXO — STACK.md §22)

Item Decisão
Base legal Execução de contrato (cliente-empresa é controlador; SAR é operador)
Isolamento Físico — cluster PG dedicado por workspace (ADR 0006)
Datacenter BR (Proxmox on-prem) — elimina exposição ao CLOUD Act US
PII Criptografada — MinIO SSE + pgcrypto
Logs Redact agressivo (CPF, cardNumber, password, authorization, cookie)
Auditoria Art. 18 LGPD (acesso/correção/eliminação de dados pessoais)
Hash em targeting de flags Para feature flags com info pessoal

Implicação adicional para WhatsApp + IA

  • DPA (Data Processing Agreement) obrigatório com providers externos (Meta, OpenAI/Anthropic)
  • Hashar dados de cliente antes de mandar para IA (não enviar nome, CPF, telefone real)
  • WhatsApp: cliente do SAR opt-in explícito do contato final (cliente-do-cliente) antes do primeiro envio

Dependências externas (risco fixo, mitigação flexível)

Dependência Risco Mitigação
Meta WhatsApp Business Mudança de regras → integração quebra Arquitetura plug-in; alternativas Telegram/SMS no roadmap
OpenAI / Anthropic / IA externa Mudança de pricing, quota, política Abstração de provider; capacidade de trocar
Resend (email) SaaS pode mudar tier Migrar para SES/Mailgun; abstração de envio
Cloudflare (CDN) SaaS muda preço/política Migrar para outro CDN; impacto baixo
Provider BR de pagamento Falha/lentidão pode bloquear cobrança Multi-provider com fallback (Step 29)

Resumo: o que o constraint map nos diz

  1. MVP precisa ser radicalmente priorizado — solo + 3-4 meses não comporta o concept completo. Refinar em Phase 3 PRD.
  2. Rafael + Sandra são obrigatórios no MVP; Daniel e Alice entram em forma simplificada.
  3. IA estratégica entra pós-MVP — depois do 1º cliente validado.
  4. Editor de campanhas no-code (Alice) entra pós-MVP — pode usar tela direta no MVP.
  5. Stack canon JCS + brand.md são parâmetros, não restrições negativas — eliminam decisões e aceleram desenvolvimento.
  6. LGPD by design alinha com o concept multi-tenancy físico — não é overhead, é diferencial competitivo.
  7. Solo founder mode é o constraint mais apertado — todo escopo precisa respeitar isso. Tudo que pode esperar → espera.