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>
This commit is contained in:
2026-05-27 14:34:20 +00:00
commit 17c08e6392
3631 changed files with 855518 additions and 0 deletions

View File

@@ -0,0 +1,131 @@
# Tone of Voice — SAR (Força de Vendas)
**Confirmed:** 2026-05-26
**Step:** 11 — Tone of Voice
> Tom de voz para **microcopy de UI** (botões, labels, erros, estados, notificações). Conteúdo estratégico (headlines, value propositions) será definido em Phase 1 Block B (Content & Language).
---
## 5 atributos canônicos
| # | Atributo | Por quê |
|---|---|---|
| **1** | **Direto** | Rafael precisa de info em 2 segundos no celular; Sandra decide num clique. Floreio mata fluxo. |
| **2** | **Profissional sem ser frio** | B2B BR respeita formalidade, mas burocratês mata vendas. Sério mas humano. |
| **3** | **Confiante** | SAR é ferramenta de trabalho, não conselheiro tímido. Afirmação > tentativa. |
| **4** | **Específico** | "3 clientes pararam de comprar há 60+ dias" > "Há alertas". Números/dados criam confiança imediata. |
| **5** | **Empático nos momentos difíceis** | Quando algo dá errado, explica o problema E o caminho, sem culpar o usuário. |
---
## Variações por cockpit (mesmos atributos, registros diferentes)
| Cockpit | Registro | Exemplo |
|---|---|---|
| **🟢 Rafael (Rep)** | Mais informal, frases curtas, foco em ação | "Sem sinal. Envio depois." · "Meta de junho: faltam R$ 12.400." |
| **🟡 Sandra (Supervisora)** | Direto + decisivo, contexto rápido | "3 aprovações pendentes." · "Rep João sem visita há 2 dias." |
| **🔵 Daniel (Dono)** | Executivo, focado em insight | "Faturamento em junho: +18% vs maio. Liderado por OPENFRIOS." |
| **🟣 Alice (Admin)** | Técnico-preciso, mas humano | "Pauta atualizada. 1.247 produtos afetados." |
---
## Exemplos canônicos
### Botões
| Ação | ❌ Burocrata | ✅ SAR |
|---|---|---|
| Salvar | "Confirmar Operação" | **Salvar** |
| Enviar pedido | "Submeter para Aprovação" | **Enviar pedido** |
| Cancelar | "Desistir da Operação" | **Cancelar** |
| Pedir desconto | "Solicitar Aprovação de Desconto" | **Pedir desconto** |
### Estados vazios
| Tela | ❌ Genérico | ❌ Forçado | ✅ SAR |
|---|---|---|---|
| Funil sem propostas | "Nenhum registro encontrado" | "Ops, vazio!" | "Sem propostas em andamento. Cadastre a primeira em **Nova proposta**." |
| Inativos zerado | "Nenhum cliente com restrição" | "Tudo certo!" | "Nenhum cliente inativo nos últimos 60 dias." |
| Sem pedidos hoje | "Não há registros" | "Hoje não rolou nada" | "Nenhum pedido lançado hoje. Bom dia para mudar isso." |
### Erros / problemas
| Situação | ❌ Burocrata | ✅ SAR |
|---|---|---|
| Sem sinal ao salvar | "ERRO: Falha de conexão" | "Sem sinal. Seu pedido fica salvo aqui e envia quando você se conectar." |
| Cliente bloqueado | "O sistema identificou que o cliente apresenta restrição que impede a continuidade." | "Cliente **OPENFRIOS** está bloqueado: limite de crédito estourado. Peça liberação ao supervisor ou ajuste o valor." |
| Senha errada | "Credenciais inválidas" | "Senha incorreta. Tente de novo ou **recupere sua senha**." |
| Desconto além da alçada | "Operação não permitida" | "Esse desconto precisa de aprovação do supervisor. Quer enviar agora?" |
### Confirmações e notificações
| Evento | ❌ Vago | ✅ SAR |
|---|---|---|
| Pedido aprovado | "Operação concluída com sucesso" | "Pedido #1234 aprovado pela Sandra." |
| Cliente esfriando | "Atenção necessária" | "**OPENFRIOS** não compra há 47 dias. Visite ou ligue." |
| IA insight (Daniel) | "Análise disponível" | "Você aprovou 3 descontos acima de 10% essa semana, todos para OPENFRIOS. Reavaliar tabela?" |
### Loading states
| ❌ Genérico | ✅ SAR |
|---|---|
| "Carregando..." | "Carregando catálogo (8.234 produtos)..." |
| "Aguarde" | "Sincronizando pedidos do dia..." |
| "Processing..." | "Enviando pedido..." |
---
## Do's & Don'ts
### ✅ Do's
- **Voz ativa:** "Sandra aprovou", não "Foi aprovado por Sandra"
- **pt-BR coloquial profissional:** "Salvar", "Editar", "Excluir" (não "Salve", "Edite")
- **Dados específicos** sempre que possível
- **Problema E caminho** para resolver (não só o que deu errado)
- **Nomes reais** quando aplicável (`OPENFRIOS`, `Rafael`, `Sandra`) — humaniza
### ❌ Don'ts
- ❌ Emoji em texto de produção. Brand é clean Apple-inspired.
- ❌ Caps lock para erros
- ❌ Burocratês ("operação", "registro", "sistema", "movimentação", "documento")
- ❌ "Por favor" e "obrigado" excessivos
- ❌ Trocadilhos, gírias regionais, jokes (produto é multi-empresa/multi-região)
- ❌ Anglicismos onde tem pt-BR claro (Submit → Enviar; Loading → Carregando)
- ❌ Frases dúbias ou condicionais ("Talvez", "Possivelmente", "Acreditamos que...")
---
## Vocabulário canônico (entra no Design System)
Termos consistentes no produto inteiro. **Padrão único** — nunca sinônimos.
| Termo | Escolha canônica | Não usar |
|---|---|---|
| Pessoa que compra do cliente do SAR | **Cliente** | "Comprador", "consumidor", "shopper" |
| Pessoa que vende (Rafael) | **Representante** ou **Rep** | "Vendedor", "promotor", "agente" |
| Documento de venda em negociação | **Orçamento** | "Cotação", "proposta orçamentária" |
| Documento de venda confirmado | **Pedido** | "Ordem de compra", "ordem de venda" |
| Documento de venda concluído | **Faturado** | "Finalizado", "concluído", "fechado" |
| Saída para visitar cliente | **Visita** | "Atendimento", "round" |
| Carteira ativa do rep | **Carteira** | "Base de clientes", "lista" |
| Cliente que parou de comprar | **Inativo** | "Frio", "perdido", "stand-by" |
| Painel inicial | **Painel** | "Dashboard", "tela inicial" |
| Aprovação de desconto | **Aprovação** | "Autorização", "validação", "endosso" |
---
## Implicações
1. **Vocabulário vira tokens i18n** — entrar no projeto como constantes em `libs/shared/api-interface` ou similar. Termos centralizados, não strings espalhadas.
2. **Tom de voz vai no Design System (Phase 6)** como documento de referência para todos que escrevem microcopy.
3. **PRs com microcopy** devem verificar contra este documento; eventual lint customizado pode detectar termos proibidos.
4. **Atributos guiam decisões de IA generativa** quando IA escrever texto (alertas do Daniel, sugestões da Alice). Prompt da IA inclui esses 5 atributos + vocabulário canônico.
---
## Lacunas conscientemente adiadas
- Conteúdo estratégico (headlines, value propositions do site) — Steps 13-18 (Block B Content & Language)
- Tom para emails transacionais (confirmação de pedido para cliente final) — Step 15
- Tom para WhatsApp programático (mensagem ao cliente do cliente) — Step 15 ou 29