# 05 — VALIDADORES E ANTI-PATTERNS

Filtros automáticos antes de entregar qualquer template. Passa por essa régua, garante aprovação na primeira.

---

## 5.1 CHECKLIST PRÉ-SUBMISSÃO (15 pontos)

Antes de dar como pronto, confirma cada item. Se falhar em qualquer um, REESCREVE.

### Estrutura
- [ ] **Header presente** com identificação clara do tipo (substantivo + verbo no particípio)
- [ ] **Body começa com fato concreto**, não saudação emocional
- [ ] **Body cita substantivo da transação** (número, protocolo, código, data)
- [ ] **Footer fixo presente** blindando como operacional

### Variáveis
- [ ] **Nenhuma variável no começo** de parágrafo
- [ ] **Nenhuma variável no fim** de parágrafo
- [ ] **Nenhuma variável em sequência** sem texto entre (proibido: `{{1}} {{2}}`)
- [ ] **Exemplo de submissão realista** (nome real, número real, data real)

### Linguagem
- [ ] **Zero palavra promocional** (oferta, desconto, aproveite, etc - ver lista 02)
- [ ] **Zero emoji** em qualquer componente
- [ ] **No máximo 1 exclamação** no template inteiro (idealmente zero)
- [ ] **Verbo âncora operacional** no início do body (Confirmamos, Enviamos, Registramos, etc)

### Botões
- [ ] **Label de botão ≤ 25 caracteres**
- [ ] **Verbo de botão operacional** (Acessar, Ver, Baixar, Copiar - nunca "Saiba mais")
- [ ] **URL com domínio próprio** (não bit.ly, não encurtador)

---

## 5.2 OS 15 ANTI-PATTERNS QUE MAIS REPROVAM

### Anti-pattern 1: Variável no início ou fim de parágrafo
**Errado:**
```
{{1}}, seu pedido foi confirmado.
```
**Certo:**
```
Olá {{1}}. Seu pedido foi confirmado.
```

### Anti-pattern 2: Duas variáveis em sequência
**Errado:**
```
Pedido #{{1}} {{2}} confirmado.
```
**Certo:**
```
Pedido #{{1}} no valor de {{2}} confirmado.
```

### Anti-pattern 3: Saudação emocional
**Errado:**
```
Oi {{1}}, tudo bem? Tenho uma notícia pra você!
```
**Certo:**
```
Olá {{1}}. Seu pedido #{{2}} foi enviado.
```

### Anti-pattern 4: Emoji
**Errado:**
```
Pedido confirmado [emoji-festa] [emoji-foguete]
```
**Certo:**
```
Pedido confirmado.
```

### Anti-pattern 5: Palavra promocional escondida
**Errado:**
```
Olá {{1}}. Aproveite que sua matrícula foi confirmada e veja nossas outras opções!
```
**Certo:**
```
Olá {{1}}. Sua matrícula foi confirmada.
```

### Anti-pattern 6: Botão com verbo promocional
**Errado:**
- Botão URL: "Saiba mais"
- Botão URL: "Confira"
- Botão URL: "Quero aproveitar"

**Certo:**
- Botão URL: "Acessar pedido"
- Botão URL: "Ver detalhes"
- Botão URL: "Baixar boleto"

### Anti-pattern 7: URL encurtada
**Errado:**
```
URL do botão: bit.ly/abc123
```
**Certo:**
```
URL do botão: app.empresa.com.br/pedido/{{1}}
```

### Anti-pattern 8: Exemplo de variável genérico
**Errado:**
```
Submissão: {{1}} = "teste"
{{2}} = "123"
{{3}} = "data"
```
**Certo:**
```
Submissão: {{1}} = "Maria Silva"
{{2}} = "PEDIDO-89234"
{{3}} = "15/06/2026"
```

### Anti-pattern 9: Header genérico ou emocional
**Errado:**
- "Oi pra você!"
- "Não acredite no que vai ver"
- "Surpresa!"

**Certo:**
- "Pedido confirmado"
- "Fatura disponível"
- "Acesso liberado"

### Anti-pattern 10: Pesquisa de satisfação genérica
**Errado:**
```
Como foi sua experiência com a gente? Avalie!
```
**Certo:**
```
Olá {{1}}. Sua sessão de {{2}} em {{3}} foi finalizada.
Pra concluir o atendimento, gostaríamos da sua avaliação sobre essa sessão específica.
Tempo estimado: 30 segundos.
```

### Anti-pattern 11: CTA pra produto novo dentro de utility
**Errado:**
```
Sua compra foi confirmada. Aproveite e conheça nossa linha completa.
```
**Certo:**
```
Sua compra foi confirmada. Detalhes do pedido pelo botão.
```

### Anti-pattern 12: Adjetivo sensacionalista
**Errado:**
```
Sua incrível compra foi confirmada com sucesso!
```
**Certo:**
```
Sua compra foi confirmada.
```

### Anti-pattern 13: Urgência fabricada
**Errado:**
```
Pague já! Última chance!
```
**Certo:**
```
Vencimento: {{1}}. Após essa data, aplicação de multa de {{2}}.
```

### Anti-pattern 14: CAIXA ALTA emocional
**Errado:**
```
PARABÉNS, sua matrícula está CONFIRMADA!!!
```
**Certo:**
```
Sua matrícula foi confirmada.
```

### Anti-pattern 15: Convite pra evento sem transação prévia
**Errado:**
```
Olá {{1}}. Te convidamos para nosso evento gratuito!
```
**Esse não é utility nem corrigindo. É marketing.**

---

## 5.3 ANÁLISE DE RISCO DE RECATEGORIZAÇÃO

Pra cada template gerado, score de 1-3 pontos por critério. Soma final indica risco:

| Critério | 0 pontos | 1 ponto | 2 pontos | 3 pontos |
|---|---|---|---|---|
| Linguagem do body | Operacional pura | Mista | Promocional leve | Promocional forte |
| Verbos | Operacionais | Mistos | Promocionais leves | Promocionais fortes |
| Substantivo da transação | Específico (#, código, data) | Específico mas genérico | Genérico | Ausente |
| Header | Identificação clara | Neutra | Emocional leve | Promocional |
| Footer | Blindado | Neutro | Ausente | Promocional |
| Botões | Operacionais | Mistos | Genéricos | Promocionais |
| Saudação | Sem ou neutra | Curta neutra | Cordial | Emocional |
| Pontuação | Pontos só | Pontos + 0-1 exclamação | 2+ exclamações | Caixa alta + emoji |

**Score total (cada critério vale 0-3):**
- **0-3 pontos: BAIXO** → aprovação consistente como utility
- **4-7 pontos: MÉDIO** → pode ser recategorizado, gerar versão B
- **8-12 pontos: ALTO** → vai recategorizar, reescrever do zero
- **13+ pontos: NÃO É UTILITY** → é marketing, classificar diferente

---

## 5.4 TESTE DO BOLETO

Lê o template em voz alta. Pergunta:

1. **Soa como sistema/banco/cartório?** → Utility provável
2. **Soa como vendedor animado?** → Marketing provável
3. **Soa como amigo conversando?** → Marketing provável

Se passou no teste 1, segue. Se passou no 2 ou 3, reescreve frio.

---

## 5.5 TESTE DO SUMIÇO

Pergunta sobre a intenção da mensagem:

> "Se essa mensagem nunca for enviada, o cliente perde alguma coisa concreta que ele já contratou ou pediu?"

- **Sim, ele não saberia que o pedido chegou** → utility
- **Sim, ele não teria acesso ao código pra entrar** → utility
- **Sim, ele não saberia que precisa pagar o boleto** → utility
- **Não, ele só não saberia da promoção** → marketing
- **Não, ele só não saberia que tem produto novo** → marketing
- **Não, mas seria educado avisar que estamos com saudade** → marketing

---

## 5.6 TESTE DA TRANSAÇÃO PRÉVIA

Existe uma ação concreta anterior do cliente que justifica a mensagem?

ACEITO COMO TRANSAÇÃO:
- Compra (com pagamento processado)
- Agendamento (com horário marcado)
- Cadastro completo (com formulário enviado)
- Login (com sessão iniciada)
- Contratação (com contrato assinado)
- Solicitação formal (ticket aberto)

NÃO ACEITO COMO TRANSAÇÃO:
- Cadastro em newsletter
- Download de ebook gratuito
- "Manifestar interesse"
- Cliente que mandou DM curiosa
- Lista de contatos importada
- Pessoa que visitou o site

---

## 5.7 RED FLAGS DE BOTÃO

Verifica cada botão antes de finalizar. Se aparecer qualquer um desses sinais, reescreve.

- Label > 25 caracteres
- Verbo "Saiba", "Confira", "Aproveite", "Garanta"
- URL com encurtador (bit.ly, tinyurl, etc)
- URL com domínio diferente da marca
- Variável no meio do label (errado)
- Phone com número fake ou genérico

---

## 5.8 QUANDO A INTENÇÃO É CINZA

Se o usuário pediu mensagem que tá entre utility e marketing, devolve as duas versões com diagnóstico:

```
DIAGNÓSTICO: Risco médio de recategorização

VERSÃO UTILITY (recomendada):
[Template conservador, sem CTA promocional]

VERSÃO MARKETING (se quiser arriscar):
[Template mais quente, ciente de que será cobrado como marketing]

Decisão: depende do orçamento e da estratégia.
```

---

## 5.9 BLOQUEIO TOTAL — recusa criar

Se o usuário pedir template que claramente é marketing tentando se passar por utility, não cria. Explica e oferece duas saídas:

1. Submeter como marketing (paga 8x mais, mas aprova legitimamente)
2. Reformular pra virar utility de verdade (atrelar a uma transação real)

Exemplos que entram nessa categoria:
- "Manda template falando que tô com promoção"
- "Quero avisar que abri vagas pra meu curso"
- "Reativar minha lista que tá fria há 6 meses"
- "Avisar do meu novo produto"
- "Cupom de desconto pra cliente"

---

## 5.10 EVENTOS AO VIVO — armadilha específica (validado em campo)

**Padrão observado:** templates que avisam sobre evento ao vivo, aula, webinar, transmissão ou "começou agora" são **recategorizados pra marketing por padrão** mesmo com transação prévia paga. É a categoria que mais cai em recategorização automática.

### Sinais que disparam o classificador

- Header com "Estamos ao vivo", "Live", "Começou agora"
- Body com "Iniciamos a [evento]", "Transmissão iniciada", "agora às X em ponto"
- Botão "Entrar ao vivo", "Entrar na live", "Assistir agora"
- Nome promocional do evento no body fixo (não na variável)

### Solução validada — INVERSÃO DE ENQUADRAMENTO

Em vez de tratar como "aviso de evento", trate como **liberação de acesso a item específico de produto pago**. Ver `02-vocabulario-completo.md` seção 2.12 pro padrão completo.

**Reprova:** "Estamos ao vivo! Iniciamos a Imersão Claude Code agora às 9h em ponto. Entrar ao vivo."

**Aprova:** "Liberamos seu acesso à sala ao vivo do produto Imersão Claude Code, conforme sua compra. Acessar sala."

### Regra absoluta pra eventos ao vivo

Antes de submeter qualquer template que envolva conteúdo ao vivo, aplica essa transformação obrigatória:

| Em vez de | Use |
|---|---|
| "Estamos ao vivo" | "Acesso liberado" |
| "Iniciamos [evento]" | "Liberamos seu acesso ao [tipo] do produto [nome]" |
| "Imersão começou agora" | "Sala ao vivo do produto [nome] liberada, conforme sua compra" |
| "Entrar ao vivo" | "Acessar sala" |
| "Vai começar em 1h" | "Acesso disponível a partir de [horário]" |
| "Não perca" | (corta, sem urgência) |
| "9h em ponto" | "a partir de 9h" |

### Mesmo padrão se aplica a

- Convite/lembrete de aula gravada (vira "Acesso à gravação do produto X liberado")
- Início de mentoria coletiva (vira "Acesso à sala da mentoria do produto X liberado")
- Início de webinar pago (vira "Acesso ao webinar do produto X liberado")
- Lembrete de live exclusiva (vira "Acesso à live exclusiva do produto X liberado")

### Checklist pra eventos ao vivo

Antes de submeter, confere:

- [ ] Header NÃO menciona "ao vivo", "live", "começou", "iniciamos"
- [ ] Body começa com "Liberamos seu acesso" ou similar verbo de liberação
- [ ] Body cita "conforme sua compra" ou "vinculado ao seu pedido"
- [ ] Nome do evento entra via variável (não no body fixo)
- [ ] Botão usa "Acessar [sala/grupo/material]" (nunca "Entrar ao vivo")
- [ ] Zero exclamação, zero "em ponto", zero urgência

---

## 5.11 CHECKLIST FINAL ANTES DE ENTREGAR

Garante esses 7 itens no output final pro usuário:

1. [ ] Template completo (header, body, footer, botões)
2. [ ] Exemplo de variáveis com valores realistas
3. [ ] Análise de risco (BAIXO/MÉDIO/ALTO)
4. [ ] Justificativa do diagnóstico (1 frase)
5. [ ] Versão B se risco médio/alto
6. [ ] Pontos de atenção (se houver)
7. [ ] Instrução de submissão (onde colar, BSP do usuário)

Tudo isso? Manda.
