# Validadores 06-10 — Qualidade de Conteudo & Estrutura

5 checks que garantem que o conteudo dos slides esta bem feito, sem cara de IA, e estruturalmente correto.

---

## VALIDADOR 06 — Sem emoji decorativo, so funcional

**Regra:** emoji so aparece quando comunica estado/alerta/tipo de informacao. Emoji decorativo (enfeite) e proibido.

### Emoji permitido (funcional)

- ✅ — yes/positivo/funciona (slide yes-no header, slide limitacoes em items positivos)
- ❌ — no/negativo/erro (slide yes-no header, slide limitacoes em items negativos)
- ⚠️ — alerta geral
- 💰 — custo/dinheiro (slide limitacoes)
- 📍 — localizacao/onde fica (slide limitacoes)
- 📊 📈 📉 — dados/metricas (raramente)

### Emoji PROIBIDO (decorativo)

- 🎯 (alvo, generico)
- 🚀 (foguete, jargao tech)
- 💡 (lampada, "ideia")
- 🔥 (fogo, "hot")
- ⭐ (estrela, decoracao)
- 🎉 🎊 (festa, decoracao)
- 👀 (olhos)
- ✨ (brilho)
- ⚡ (raio)
- 💪 (musculo)
- 🤯 (cabeça explodindo)

### Como checar

Listar todos emojis no HTML. Pra cada um, classificar funcional vs decorativo. Se decorativo → remover.

### Anti-padroes tipicos

- Titulo "Boas praticas 🎯" → ❌ remover alvo
- Subtitulo "Vamos comecar 🚀" → ❌ remover foguete
- Card "Resultado 🔥" → ❌ remover fogo

### Como corrigir

Deletar o emoji. A copy direta sem emoji decorativo e MAIS forte.

---

## VALIDADOR 07 — Cards balanceados (grid bate com qty)

**Regra:** o `grid-template-columns` deve bater exatamente com o numero de cards renderizados.

### Como checar

- Slide 06 (cards numerados): contar `.op-card`. Se N=3, `.ops-grid` deve ter `style="--ops-n:3"` ou `grid-template-columns: repeat(3, 1fr)`
- Slide 05 (breakdown): sempre 5 `.cp`, 6 `.ceg` — verificar exato
- Slide 11 (timeline): contar `.tl-step`. Se N=3, `.tl-grid` deve ter `--tl-n:3`
- Slide 04 (struct cards): sempre 4 `.struct-card`

### Anti-padroes

- 3 cards renderizados mas grid configurado pra 5 → cards ficam apertados no meio
- 6 cards renderizados em slide tipo 06 → ultrapassa o tipo (deveria ser 07)
- Timeline com 2 passos → muito pouco, considerar tipo 03 (comparacao)

### Como corrigir

- Ajustar `--ops-n` ou `--tl-n` no inline style
- Ou remover/adicionar cards pra bater com o grid

---

## VALIDADOR 08 — Cron real (se for slide de cron)

**Regra:** se o slide 04 ou 05 mostrar sintaxe cron, validar que e cron valido.

### Cron valido tem 5 campos

Formato: `minuto hora dia-mes mes dia-semana`

- Minuto: 0-59 ou `*` ou `*/N`
- Hora: 0-23 ou `*`
- Dia-mes: 1-31 ou `*`
- Mes: 1-12 ou `*`
- Dia-semana: 0-6 ou 0-7 ou `*` (0 e 7 = domingo)

### Como checar

Pra cada `.ceg-code` ou `.cmd-text`, se tem string que parece cron:
1. Split por espaço — deve ter exatamente 5 partes
2. Cada parte deve ser numero, `*`, `*/N`, ou lista (1,2,3) ou range (1-5)
3. Numeros devem estar no range do campo

### Anti-padroes tipicos

- `0 25 * * 1` → hora 25 nao existe (max 23) ❌
- `60 * * * *` → minuto 60 nao existe (max 59) ❌
- `0 8 * * 8` → dia-semana 8 nao existe (max 7) ❌
- `0 0 32 * *` → dia-mes 32 nao existe ❌
- `0 8 * 1` → 4 campos so, falta 1 ❌

### Como corrigir

Substituir cron invalido pelo correto. Lista de exemplos validos:
- `0 8 * * 1` — toda seg 8h
- `0 9 * * *` — todo dia 9h
- `0 0 1 * *` — dia 1 de cada mes
- `*/30 * * * *` — a cada 30 min
- `0 8,14 * * 1-5` — seg-sex 8h e 14h

---

## VALIDADOR 09 — Fechamento tem CTA claro

**Regra:** slide 12 (fechamento) deve terminar com chamada pra acao clara — verbo + acao especifica.

### Como checar

- `.close-sub` ou `.big` deve conter verbo no imperativo (Comece, Use, Pega, Faz, Roda, Cria, Aplica)
- CTA deve mencionar acao concreta (nao "comece a jornada" generico)
- Idealmente menciona o comando/skill especifica em `<code>...</code>`

### CTAs validos

- ✅ `Comece com<em>uma.</em>` + `Use <code>/schedule</code> hoje. Uma rotina de teste.`
- ✅ `Crie<em>hoje.</em>` + `Roda <code>/persona-profunda</code> agora.`
- ✅ `Aplica<em>amanha.</em>` + `Use os 5 passos no seu proximo lancamento.`

### CTAs invalidos (genericos)

- ❌ "Boa sorte na sua jornada." (sem verbo de acao)
- ❌ "Espero que tenha gostado." (sem acao)
- ❌ "Ate o proximo." (sem acao)
- ❌ "Em resumo..." (jargao + sem acao)

### Como corrigir

Substituir por verbo imperativo + acao especifica + comando concreto.

---

## VALIDADOR 10 — Animation delays escalonados

**Regra:** dentro de cada slide, os elementos `.a` devem ter delays `.a-1`, `.a-2`, `.a-3`... em ordem crescente do topo pra baixo. Sem pular niveis.

### Como checar

Pra cada slide:
1. Listar elementos `.a` em ordem de aparecao no DOM
2. Coletar classes `.a-N`
3. Verificar:
   - Primeiro `.a` tem classe `.a-1` (ou pelo menos um delay baixo)
   - Numeros crescem em ordem (1, 2, 3, 4...)
   - Nao pula mais de 1 nivel (1, 3, 5 e ok; 1, 5 e estranho)

### Excecoes registradas

- Slide 02 (`s-what`): coluna esquerda tem a-1, a-2, a-3 (eye, h2, def) e coluna direita tem a-2, a-3, a-4, a-5 (ex-cards entram em paralelo). E ok.
- Slide 03 (`s-compare`): header tem a-1, a-2 e tabela inteira tem a-3 (uma unica animacao de scale). E ok.

### Anti-padroes

- Slide com so `.a` sem classe `.a-N` — todos animam ao mesmo tempo, perde escalonamento
- Slide com `.a-9, .a-5, .a-1` em ordem inversa — quebra a ordem visual
- Slide com `.a-1, .a-1, .a-1` em todos elementos — sem escalonamento

### Como corrigir

Renumerar elementos em ordem crescente do topo pra baixo do slide. Watermark geralmente fica no ultimo delay (a-5 a a-8 dependendo do slide).

---

## CHECKLIST FINAL (antes de entregar)

```
□ 01 — Italics so em gold/brick (sem cinza)
□ 02 — Watermark "tatá." em TODO slide
□ 03 — Nenhum font-size < 24px
□ 04 — Eye/eyebrow em todo slide secundario
□ 05 — Copy curta (cards ≤15 palavras, h2 ≤3 linhas)
□ 06 — Sem emoji decorativo
□ 07 — Cards balanceados (grid bate com qty)
□ 08 — Cron real (se aplicavel)
□ 09 — Fechamento com CTA claro (verbo + acao + comando)
□ 10 — Animation delays escalonados em ordem
```

Se 1 check falhar, **corrige antes de entregar**. Nao entrega deck com problema.
