- 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>
146 lines
9.5 KiB
Markdown
146 lines
9.5 KiB
Markdown
# Feature Impact Analysis — SAR
|
||
|
||
**Phase 2 — Trigger Mapping · Workshop 5**
|
||
**Created:** 2026-05-27
|
||
|
||
> Matriz **Features × Driving Forces × Personas** que prioriza o MVP. Resolve a tensão "concept ambicioso + solo founder + 3-4 meses" do Constraints (Step 10).
|
||
|
||
---
|
||
|
||
## Princípios de priorização
|
||
|
||
1. **Feature de alto impacto** = atende driving forces de **alta score** (Freq × Int × Fit) de **múltiplas personas**.
|
||
2. **Feature de unfair advantage** (Step 9) = atende força que **só o SAR resolve bem** no mercado.
|
||
3. **Feature P0** = atende **medo absoluto** (ex: R-3 "Perder pedido por bug ou sem sinal" do Rafael). Falhar aqui é morte instantânea do produto.
|
||
4. **Feature pós-MVP** = atende força importante mas **não bloqueia validação do PMF** (north star MVP é renovação, não cobertura completa).
|
||
|
||
---
|
||
|
||
## Mapa de features pilares do MVP
|
||
|
||
### 🔴 P0 (absoluto — produto não roda sem)
|
||
|
||
| Feature | Personas atendidas | Forças (top hits) | Por quê P0 |
|
||
|---|---|---|---|
|
||
| **Lançamento de pedido offline com sync (PWA + IndexedDB queue)** | Rafael | R-3 (5/5×5/5) · R+4 · R-5 | Perder pedido = perda de confiança catastrófica do Rafael. North star MVP impossível sem isso. |
|
||
| **Multi-tenancy BD-por-workspace (ADR 0006)** | Todos (arquitetural) | Habilita BG-4 (coexistência ERPs) | Fundacional. Não pode ser retrofit. |
|
||
| **Auth via master-login + RBAC por cockpit** | Todos | Pre-req de todas as personas | Sem segmentação por papel, não existe "4 cockpits". |
|
||
| **Real-time entre cockpits (Socket.IO + Valkey)** | Sandra · Daniel · Rafael | S-1 · S+2 · D-1 | Sem real-time, promessa-mãe "visibilidade em tempo real" quebra. |
|
||
| **Idempotency-Key em todos POST críticos** | Rafael · Sandra | R-3 · S-1 | Pedido duplicado é falha de produção. |
|
||
|
||
### 🟢 MVP core (Rafael + Sandra completos)
|
||
|
||
| Feature | Personas | Forças (top hits) | Score impacto |
|
||
|---|---|---|---|
|
||
| **Visão 360° do cliente** (timeline, histórico, contatos, pedidos, comissão) | Rafael · Sandra · Daniel | R+2 · S-4 · D-4 | ALTO — 3 personas, todas com score alto |
|
||
| **Lançamento de pedido < 60s mobile** | Rafael · Sandra (vê em tempo real) | R+2 · R+4 · R+5 · S+2 | ALTO — central pro PMF |
|
||
| **Comissão visível em tempo real (rep + FLEX rateio)** | Rafael | R-4 (5/5×4/5×5/5) | ALTO — força com freq máxima |
|
||
| **Funil de propostas (kanban pessoal)** | Rafael | R+2 · R+5 | MÉDIO-ALTO — diferencial vs concorrentes |
|
||
| **Lista de inativos com alerta proativo (>60d)** | Rafael · Sandra · Daniel | R-1 · S-4 · D-4 | ALTO — promessa-mãe materializada |
|
||
| **Agenda + check-in GPS** | Rafael · Sandra (visão consolidada) | R-2 · R+4 · S+2 · S+6 | MÉDIO-ALTO |
|
||
| **WhatsApp nativo (envio de notificações ao cliente final)** | Rafael · Sandra · cliente final | R+5 · R-6 · S-2 | ALTO — diferencial declarado |
|
||
| **Share API (compartilhar pedido via WhatsApp do celular)** | Rafael | R+5 · R-6 | MÉDIO |
|
||
| **Push notifications (Sandra: aprovação; Rafael: pedido aprovado)** | Rafael · Sandra | S-1 · S-2 · R-2 | ALTO — substitui WhatsApp informal |
|
||
| **Fila de aprovações com contexto** | Sandra | S-2 · S+3 | ALTO — diferencial declarado |
|
||
| **Mapa de calor da equipe (privado, só pra Sandra)** | Sandra | S+6 · S+1 · S-5 | MÉDIO — cuidado com R-7 (não punitivo) |
|
||
| **Watchlist de clientes-chave com alerta automático** | Sandra · Daniel | S-4 · D-4 | ALTO |
|
||
| **Dashboard "tela do dia" (Sandra)** | Sandra | S+2 · S+4 · S-1 | ALTO — UX central da Sandra |
|
||
| **Dashboard executivo (Daniel) simplificado** | Daniel | D+1 · D+2 · D-1 | ALTO — mas simplificado no MVP |
|
||
|
||
### 🔵 MVP suporte (Alice e Daniel simplificados)
|
||
|
||
| Feature | Personas | Forças | Score impacto |
|
||
|---|---|---|---|
|
||
| **Cadastro completo de produto (form denso)** | Alice | A+1 · A-2 | ALTO — produto não roda sem catálogo |
|
||
| **Cadastro completo de cliente** | Alice · Rafael (também cria no campo) | A+1 · R+2 | ALTO |
|
||
| **Cadastro de rep (permissões, região, comissão)** | Alice | A+1 | MÉDIO-ALTO |
|
||
| **Pauta de preço com versionamento** | Alice | A+4 · A-2 · A-4 | ALTO — auditoria habilita confiança |
|
||
| **ICMS-ST manual por UF (sem assistente IA)** | Alice | A-3 | MÉDIO — viabiliza operação, mas não brilha |
|
||
| **Auditoria em entidade (histórico de mudanças)** | Alice · Daniel · Sandra | A+4 · A-4 · D-7 · S+3 | ALTO — transversal |
|
||
| **Timeline 360° do cliente (versão Daniel: estratégico)** | Daniel | D+1 · D-4 · D+6 | MÉDIO-ALTO |
|
||
| **Faturamento mês×mês com tendência (Chart.js)** | Daniel | D+6 · D-1 | MÉDIO-ALTO |
|
||
| **Limite de crédito automático + bloqueio cliente** | Sandra · Alice · Rafael | S-1 · A-2 · R-2 | ALTO — central no fluxo de pedido |
|
||
|
||
### 🟡 MVP-light (existe mas sem brilho) — completar pós-MVP
|
||
|
||
| Feature MVP-light | Pós-MVP (versão rica) |
|
||
|---|---|
|
||
| Dashboard Daniel sem IA estratégica | **IA explicável proativa** (D+4 · D-6) — DIFERENCIAL DECLARADO |
|
||
| Tela direta de promoção (1 a 1) | **Editor visual de campanhas no-code** (A+5 · A-1) — DIFERENCIAL DECLARADO |
|
||
| ICMS-ST manual | **Assistente IA por NCM+UF** (A-3) |
|
||
| WhatsApp apenas notificação outbound | **Conversa bidirecional + aquecimento de lead** (R+5 · S-2) — promessa de positioning |
|
||
| Bulk operations básico (CSV import) | **Bulk edit em massa + edição inline** (A+2 · A-5) |
|
||
|
||
### ⚪ Pós-MVP (entram conforme tração)
|
||
|
||
| Feature | Personas | Forças | Quando |
|
||
|---|---|---|---|
|
||
| **Comparativo período (mês×mês, ano×ano)** | Daniel | D+6 · D+5 | Y1 conforme dado acumular |
|
||
| **Análise de concentração de carteira (D+5)** | Daniel | D+5 · D-4 | Y1 |
|
||
| **Benchmarking setorial (cross-tenant anonimizado)** | Daniel | D+3 · D-2 | Y2 |
|
||
| **Onboarding white-glove com tour interativo** | Cliente novo | D-3 | NÃO (excluído Step 17a — brand Apple) |
|
||
| **Chat-com-cliente in-app** | — | — | NÃO (excluído Step 17a) |
|
||
| **App nativo iOS/Android (sobre backend SAR)** | Rafael | R+3 · R-5 | Y1-Y2 conforme PWA validar limites |
|
||
| **Adaptação app Android legado para backend SAR** | Reps Android atuais | Continuidade | Pós-MVP (Step 10a) |
|
||
| **Programa de indicação (referral)** | Daniel buyer | BG-2 | Y1 quando 5+ clientes |
|
||
| **Marketplace de templates WhatsApp** | Alice | A+5 · A-1 | Y1+ |
|
||
|
||
---
|
||
|
||
## Score por Business Goal × Features
|
||
|
||
| Business Goal | Features que mais contribuem |
|
||
|---|---|
|
||
| **BG-1 PMF MVP** | Lançamento offline · Real-time · Visão 360° · Comissão tempo real · Dashboard Sandra "tela do dia" · WhatsApp notif |
|
||
| **BG-2 Referenciabilidade** | Mesma lista do BG-1 (sem PMF não há referenciabilidade) + Alertas inativos (cumprir promessa-mãe) |
|
||
| **BG-3 Modernidade visual** | Visual DNA do Block C aplicado em todo cockpit · PWA polido · Dark mode |
|
||
| **BG-4 Coexistência ERPs** | Multi-tenancy BD/workspace · API REST + OpenAPI · Adapter por ERP (pós-MVP por demanda) |
|
||
| **BG-5 Fundação para escala** | OTel + Pino + Sentry · Test coverage · ADRs documentados · Vault rotação · Backup Proxmox |
|
||
|
||
---
|
||
|
||
## Tensões e trade-offs do MVP
|
||
|
||
### Tensão A: IA estratégica não entra no MVP, mas é diferencial de venda
|
||
|
||
- **Problema:** D+4 (IA segundo cérebro) é argumento de venda forte, mas solo founder + 3-4 meses não comporta IA explicável bem feita
|
||
- **Resolução:** MVP entrega Dashboard Daniel **sem IA**; demo de venda mostra **roadmap IA** com data prevista (pós-renovação 1º cliente)
|
||
- **Risco:** Daniel comprou esperando IA, MVP entrega menos
|
||
- **Mitigação:** 1º cliente é parceiro próximo — aceita roadmap, recebe condição especial
|
||
|
||
### Tensão B: Editor no-code de campanhas é diferencial Alice, mas pós-MVP
|
||
|
||
- **Problema:** A+5 (campanhas sem dev) é o que **deveria** liberar Alice — mas exige UI complexa que solo founder não entrega no MVP
|
||
- **Resolução:** MVP entrega tela direta de promoção (Alice mexe 1 a 1) + cadastro/pauta robustos. Editor visual entra pós-renovação.
|
||
- **Risco:** Alice fica achando o produto "só OK"
|
||
- **Mitigação:** Alice não pesa na decisão de compra (Step 6). Risco aceitável.
|
||
|
||
### Tensão C: WhatsApp conversa bidirecional vs notificação outbound
|
||
|
||
- **Problema:** "WhatsApp nativo" no positioning sugere conversa completa, mas MVP entrega só notificação outbound
|
||
- **Resolução:** Linguagem de marketing deixa explícito "notificações via WhatsApp Business API" + roadmap "conversa bidirecional Y1"
|
||
- **Risco:** Cliente comprou esperando chatbot completo
|
||
- **Mitigação:** Demo + proposta especificam escopo
|
||
|
||
### Tensão D: Sandra vs Rafael — visibilidade não pode virar vigia
|
||
|
||
- **Problema:** S+6 (Sandra quer ver quem produz) ↔ R-7 (Rafael teme ser substituível/vigiado)
|
||
- **Resolução:** SAR mostra **outputs** (pedidos, faturamento, % meta) — NÃO inputs punitivos (tempo logado, geolocation contínua, % tela ativa)
|
||
- **Risco:** Rep boicota produto se sentir vigiado
|
||
- **Mitigação:** UI design explicitamente alinhada com tom canônico "consultor sênior, não Big Brother"
|
||
|
||
### Tensão E: Daniel vs Sandra — dashboards sobrepostos
|
||
|
||
- **Problema:** Os dois precisam ver dados de equipe e clientes
|
||
- **Resolução:** Sandra vê **operacional do dia** · Daniel vê **estratégico do período**. Mesma fonte, camadas distintas.
|
||
- **Risco:** Ambos veem mesma tela e dashboards ficam confusos
|
||
- **Mitigação:** Cockpits separados desde dia 1 — RBAC por papel
|
||
|
||
---
|
||
|
||
## Próximos passos
|
||
|
||
- **Phase 3 (PRD):** este Feature Impact vira backlog priorizado
|
||
- **Phase 4 (UX Specs):** features de alta score viram pages específicas
|
||
- **Phase 6 (Design System):** componentes emergem das features pilares
|