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:
131
design-artifacts/A-Product-Brief/dialog/tone-of-voice.md
Normal file
131
design-artifacts/A-Product-Brief/dialog/tone-of-voice.md
Normal 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
|
||||
Reference in New Issue
Block a user