# Validador: Tamanho

**Bloqueia:** sim
**Escopo:** cada bloco `text`, `*.prompt`, `ai.system_prompt`

## O que valida

Tamanho dos textos do bot. Bot conversacional respira — texto longo no chat e cansaco.

## Limites por tipo

| Bloco | Max chars | Max linhas | Max palavras |
|---|---|---|---|
| `text` (mensagem do bot) | 280 | 4 | 50 |
| `input_text/email/phone` (`prompt`) | 120 | 2 | 20 |
| `choice` (`prompt`) | 140 | 2 | 25 |
| `multi_choice` (`prompt`) | 160 | 3 | 28 |
| `choice/multi_choice` (`option.label`) | 40 | 1 | 7 |
| `ai.system_prompt` | 4000 | — | 700 |

## Excecoes

- Bloco de RESULTADO em arquetipo Quiz Diagnostico: pode ate 600 chars / 8 linhas (laudo personalizado)
- Bloco de POSICIONAMENTO com mecanismo unico: pode ate 400 chars
- AI block reply: nao validado aqui (validado em runtime)

## Sinais de falha

```
RUIM (texto bloco com 480 chars):
"Olha {{nome}}, deixa eu te explicar o quanto a gente cuida de cada detalhe...
[mais 8 linhas]"

BOM (texto bloco com 180 chars):
"Olha {{nome}}, cuidamos de cada detalhe.
Mecanismo, suporte, garantia.
Bora ver se faz fit pra voce?"
```

## Texto longo? Quebrar em N blocos.

Se conteudo precisa de 600 chars, gera 3 blocos `text` consecutivos com `delay_ms: 800` entre eles. Mas atencao ao validador `ritmo` (max 3 textos consecutivos).

## Output do validador

```json
{
  "passed": false,
  "level": "error",
  "issues": [
    {
      "block_id": "b005",
      "message": "Bloco texto com 412 chars (limite 280)",
      "suggestion": "Quebrar em 2 blocos ou cortar redundancia"
    }
  ],
  "score": 70
}
```

## Quando regenerar

Identifica bloco fora do limite. Pede LLM pra reescrever com `max_chars` no prompt. Se nao couber, divide em 2 blocos `text` com delay.
