# SEED engenharia — Boas práticas de mercado v0.1

> **Arquivo canônico de ORIENTAÇÃO, não de regra de marca.** Estado: `orientação` · **Versão:** v0.1 · **Data:** 2026-09-06 · Decisor: Rafael Sant'Ana.
>
> **O que é:** a base de conhecimento da SEED sobre COMO SE FAZ BEM cada tipo de material — carrossel, post, apresentação, proposta, mensagem, mockup, código com o design system. Prática de mercado, reunida aqui para que quem produz (pessoa ou agente de IA, pela skill `seed-ds`) não precise pesquisar na internet a cada peça. **Manutenção manual**, por decisão dele (F9.5, MANIFESTO §168): cada seção é datada e diz de onde veio; atualizar é editar a seção, datar de novo e registrar no §15.
>
> **REGRA DE PRECEDÊNCIA (lida antes de qualquer seção):** onde este arquivo contradisser o `marca-seed.md`, o `seed-tokens.json`, o `seed-componentes.md`, o `seed-composicao.md` ou o `sobreaseed.md`, **eles vencem, sem exceção**. Valores de cor, fonte, token, medida de logo e dado institucional citados aqui **não valem** — são o que a fonte de maio/2026 dizia; a fonte de verdade desses valores é o canon de marca. Esta regra existe porque a v0.1 foi IMPORTADA sem edição das referências das skills `seed-ds-*` de 2026-05-13 (antes do DS v2) e ainda não foi auditada seção a seção: cada uma traz, no bloco de procedência, as contradições MEDIDAS (cores em hex, Indie Flower, Lovable, apelidos do shadcn) para quem for revisar.
>
> **Como a skill `seed-ds` usa isto:** pelo modo do pedido (peça, texto, apresentação, código) ela lê a seção correspondente daqui DEPOIS do canon de marca, e aplica a prática só no que não contradiz a marca. O que faltar aqui vira **pedido de cobertura** (modelo na skill) — é assim que a base cresce.

---

## 0. Como usar e manter este arquivo

- **Uma seção por tema**, numerada; o título diz o material e o recorte (formatos · boas práticas · estrutura). Nova prática de um tema existente entra NA seção dele, com a data; tema novo ganha seção nova no fim, antes do §15.
- **Todo trecho tem data e origem.** Na v0.1 a origem é a referência de maio/2026 (bloco de procedência no início de cada seção, com o MD5 do arquivo preservado em `09-pesquisa/skills-v1-2026-05/referencias/`). Trecho novo declara a fonte (pesquisa datada, medição, decisão dele) — prática de mercado sem data é prática que envelhece em silêncio (regra da casa: citação de norma sai datada).
- **Auditar uma seção** = lê-la contra o canon de marca, remover ou corrigir o que contradiz, apagar o aviso "não auditado" do bloco de procedência e registrar no §15. Até lá, a regra de precedência do cabeçalho protege quem consome.
- **O que NÃO entra aqui:** regra de marca (vai ao `marca-seed.md`), token (`seed-tokens.json`), componente (`seed-componentes.md`), dado institucional (`sobreaseed.md`). Este arquivo é o COMO do mercado; o QUÊ da SEED mora nos outros.
- **Versão:** semântica simples — v0.x enquanto houver seção não auditada; v1.0 quando todas estiverem. Toda edição sobe o número e ganha linha no §15.

---

## 1. Post único — formatos e áreas seguras por plataforma

> **Origem:** `seed-ds-post/references/formatos-post.md` (skill de 2026-05-13, 7440 bytes, MD5 `fc98f9af37718fb55b984c055c0fc3b1`; cópia preservada em `09-pesquisa/skills-v1-2026-05/referencias/formatos-post.md`) · **Importado em 2026-09-06 sem edição** — só os títulos foram rebaixados dois níveis (código intacto).
>
> **Estado: ⚠ não auditado contra o DS v2** (nenhuma contradição medida automaticamente: sem hex, sem Indie Flower, sem Lovable, sem apelidos do shadcn — a leitura humana ainda não foi feita).

### Formatos de post SEED — 10 sub-formatos com áreas seguras

Reference exclusiva da skill `seed-ds-post`. Cada sub-formato tem dimensões específicas, áreas seguras (zona crítica que não pode ser cortada em previews) e regras de aplicação do logo.

#### 1. Instagram vertical 4:5 · 1080×1350 ⭐ PREFERENCIAL PARA FEED 2026

**Aspect ratio:** 4:5 · **viewBox:** `0 0 1080 1350`

- **Formato preferencial pra feed Instagram desde 2026** — vertical ocupa 25% mais real estate em mobile, performa melhor que quadrado
- **Área segura central:** 1000×1290 (40px margem laterais, 30px topo/base)
- **Hierarquia tipográfica:** título ≥ 72px (maior que quadrado), subtítulo ≥ 36px, corpo ≥ 32px
- **Hook visual:** ocupa terço superior (até y=450)
- **CTA:** terço inferior (a partir de y=950)
- **Logo:** canto inferior — opcional canto superior se composição pedir
- **Quando usar:** **default pra post Instagram em 2026** — preferir sobre 1080² salvo briefing específico

#### 2. Instagram quadrado · 1080×1080 (legacy)

**Aspect ratio:** 1:1 · **viewBox:** `0 0 1080 1080`

- **Status:** formato ainda funcional, mas perdendo engagement vs 4:5 desde 2024. Usar quando: briefing pede explicitamente, peça precisa ser compartilhada em LinkedIn quadrado também, pra grids antigos
- **Área segura central:** 1000×1000 (40px de margem em cada lado)
- **Posição típica do logo:** canto inferior direito ou esquerdo, ~135px (1/8 largura) da menor dimensão
- **Hierarquia tipográfica:** título ≥ 64px, subtítulo ≥ 32px, corpo ≥ 28px
- **Hook visual:** ocupa terço superior, máximo respiro nas bordas
- **Quando usar:** post de divulgação geral quando briefing exige quadrado, post legacy, compartilhamento multi-plataforma

#### 3. Story Instagram/WhatsApp/Facebook · 1080×1920

**Aspect ratio:** 9:16 · **viewBox:** `0 0 1080 1920`

- **Área segura vertical:** entre y=250 e y=1670 (interface do app oculta topo e base em alguns devices)
- **CTA:** sempre no terço inferior (y=1280–1670), nunca no topo (perde no swipe-up gesture)
- **Logo:** topo ou canto inferior, fora da área de interface
- **Hierarquia:** título ≥ 80px (precisa "gritar" em mobile), subtítulo ~48px, corpo ≥ 36px
- **Quando usar:** anúncio com prazo, evento, lembrete, ações táticas de curto prazo

#### 4. LinkedIn quadrado · 1200×1200

**Aspect ratio:** 1:1 · **viewBox:** `0 0 1200 1200`

- Mesmo princípio do Instagram quadrado, ajustado pra escala LinkedIn
- **Foco em legibilidade:** muitos usuários veem em desktop, fontes podem ser menores que Instagram (corpo ≥ 28px)
- **Tom mais profissional:** EEny opcional (não default), paleta sóbria
- **Quando usar:** post institucional, anúncio corporativo, conquista

#### 5. LinkedIn horizontal · 1200×627

**Aspect ratio:** ~1.91:1 · **viewBox:** `0 0 1200 627`

- **Layout split:** texto à esquerda (60%), visual/logo à direita (40%) ou inverso
- **Título principal:** Montserrat Bold 48-56px
- **Logo:** canto direito ou centralizado no painel visual
- **Quando usar:** compartilhamento de artigo, link preview, anúncio com imagem dominante

#### 6. Capa LinkedIn pessoal · 1584×396

**Aspect ratio:** 4:1 · **viewBox:** `0 0 1584 396`

- **Área de mobile crop:** importante — perfil sobreposto à esquerda (avatar redondo) cobre os primeiros ~300px
- **Área segura central:** entre x=300 e x=1284 (mobile-safe)
- **Texto/identidade:** sempre na área central
- **Quando usar:** Rafael ou outro colaborador da SEED pessoalizar perfil profissional

#### 7. Capa YouTube · 2560×1440

**Aspect ratio:** 16:9 · **viewBox:** `0 0 2560 1440`

- **TV-safe area:** 1546×423 centralizada (entre x=507/y=509 e x=2053/y=931)
- Conteúdo crítico (logo, texto) deve estar nessa área central — bordas são cortadas em vários devices
- **Hierarquia ampla:** título ≥ 80px, subtítulo ~48px
- **Quando usar:** banner do canal YouTube da SEED (se houver)

#### 8. Capa Facebook · 820×312

**Aspect ratio:** ~2.63:1 · **viewBox:** `0 0 820 312`

- **Mobile crop:** desktop e mobile mostram áreas diferentes — desktop 820×312, mobile ~640×360 (corta lados, mostra mais altura)
- **Área 100% segura:** ~640×312 centralizada horizontalmente
- **Foto de perfil sobreposta:** canto inferior esquerdo, cobre área de ~170×170
- **Quando usar:** identidade institucional na página Facebook

#### 9. Banner web · variável

**Sem dimensão fixa.** Briefing deve declarar (ex: 1920×400, 1440×600, etc).

- **Aspect ratios comuns:** 4:1 (hero institucional), 3:1 (callout), 16:9 (banner promocional grande)
- **Mobile-responsive:** considerar como vai escalar pra ≤ 768px (texto pode ficar pequeno)
- **Quando usar:** hero do site, banner promocional em landing page, email header

#### 10. Imagem de blog / link preview · 1200×630

**Aspect ratio:** ~1.91:1 (Open Graph standard) · **viewBox:** `0 0 1200 630`

- **Aparece como preview de link** em WhatsApp, Slack, LinkedIn, Twitter quando compartilhado
- **Texto principal:** sempre legível em escala pequena (200×100 quando shrinkado)
- **Logo:** canto + nome legível
- **Quando usar:** thumbnail de artigo, social card de página específica

#### Regras transversais aplicáveis a todos os formatos

##### Tamanhos tipográficos — MÍNIMOS ABSOLUTOS (não negociáveis)

Os tamanhos abaixo são pisos. Reduzir abaixo desses valores quebra legibilidade em mobile e foi confirmado como problema em peças anteriores. Pode-se aumentar livremente acima.

| Hierarquia | 1080×1350 (4:5) | 1080² (legacy) | 1080×1920 (story) | 1200×627 | Capas |
|---|---|---|---|---|---|
| **Título principal** | 72px | 64px | 80px | 48px | 64px |
| **Subtítulo** | **36px** | **32px** | **40px** | **32px** | **32px** |
| **Corpo** | 32px | 28px | 36px | 24px | 24px |
| **Microcopy** (data, número) | 28px | 24px | 32px | 20px | 20px |
| **Rodapé** (logo + URL) | 22px | 20px | 24px | 18px | 18px |

**Regra explícita do subtítulo:** mínimo 32px em qualquer formato 1080+ — não usar 28px, 30px ou outros valores "perto". A leitura em mobile pequeno (iPhone SE, Android 5") exige esse piso. Issue identificado em produção anterior onde subtítulo 30px ficou marginal.

##### Margens e proporções

- **Margens mínimas:** 4% da menor dimensão (em 1080² → 43px; em 1200×627 → 25px)
- **Logo proporcional:** ~1/8 da menor dimensão (em 1080² → 135px de largura; em 1200×627 → ~78px)
- **EEny + logo juntos:** proporção **3:1** (logo 3× maior verticalmente que o EEny). Verificar VISUALMENTE depois de renderizar — issue identificado em produção anterior onde EEny saiu maior que o logo, criando hierarquia errada (mascote dominando marca).
  - 1080² com logo 135px de altura → EEny ~45px de altura, posicionado próximo ao logo
  - Hero composition (EEny sozinho como elemento principal, sem logo na mesma área): proporções livres
- **EEny sozinho** (não próximo do logo): proporções livres conforme composição
- **Margem de segurança do logo:** 10% do lado menor da bounding box do logo, em todas as direções. Bounding box apertada corta o logo — issue identificado em capas de PPTX e proposta.

##### Cores e tipografia

- **Cores:** apenas paleta SEED oficial (18 tokens — ver `paleta.md`)
- **Fontes:** Montserrat declarada com `@font-face` ou Google Fonts CDN no SVG
- **Sem rotação de elementos de marca, sem gradientes, sem sombras em texto**

---

## 2. Post único — boas práticas de design

> **Origem:** `seed-ds-post/references/melhores-praticas-post-design.md` (skill de 2026-05-13, 10363 bytes, MD5 `0e9e88a4d815810b5609fbbe53f602b4`; cópia preservada em `09-pesquisa/skills-v1-2026-05/referencias/melhores-praticas-post-design.md`) · **Importado em 2026-09-06 sem edição** — só os títulos foram rebaixados dois níveis (código intacto).
>
> **Estado: ⚠ não auditado contra o DS v2.** Contradições medidas — vale a regra de precedência do cabeçalho: 2 cor(es) em hex — só os tokens do `seed-tokens.json` valem (marca §3, §11).

### Melhores práticas — design de posts B2B e social

Reference exclusiva da skill `seed-ds-post`. Síntese de práticas estabelecidas no mercado (autoridades + dados de benchmark 2024-2026) aplicáveis ao contexto SEED engenharia (B2B industrial/comercial).

Consultar sempre antes de produzir post de divulgação, hook visual de campanha, ou peça pra social media.

---

#### Autoridades de referência

Quando o usuário pedir "no estilo de" ou "como [autor]", reconhecer estas escolas:

| Autor | Obra | Especialidade |
|---|---|---|
| **Ellen Lupton** | "Thinking with Type" (3ª ed, 2024), "Graphic Design: The New Basics" | Typography hierárquica, sistemas tipográficos, grids — **autoridade canônica em type** |
| **Josef Müller-Brockmann** | "Grid Systems in Graphic Design" | Sistemas de grid, modular layouts (raiz da abordagem moderna) |
| **Massimo Vignelli** | "The Vignelli Canon" | Disciplina visual, tipografia restritiva, paleta limitada |
| **Sprout Social Index** | Relatório anual | Dados de comportamento de audiência social, benchmarks B2B |
| **Rico Incarnati / Torro Media** | "The 3 Hook Rule" | Frameworks de hook visual (visual + text + verbal) |

Aplicação SEED: o sistema SEED já segue princípios Lupton/Vignelli — paleta restrita (18 tokens), grid disciplinado, tipografia hierárquica fixa, sem floreio. Reforça em vez de inovar.

---

#### Dados de benchmark (atenção e engajamento social 2024-2026)

##### Tempo de decisão do usuário

- **1.7 segundos** — tempo médio que usuário passa em cada post antes de scrollar (Hook Formula research)
- **8.25 segundos** — attention span médio social media
- **2-3 segundos** — janela crítica de hook
- **33%** — retenção em 10s no Instagram Reels (a maioria já scrollou)
- **80%** — completion rate em vídeo TikTok <15s
- **92%** — usuários assistindo vídeo Instagram **com som off**

**Implicação prática SEED:**
- Hook visual precisa funcionar em **1 segundo** sem som, sem motion (estamos em SVG/PNG).
- Texto sobreposto OBRIGATÓRIO se houver áudio narrado.
- Primeira frase / primeiro elemento precisa carregar 80% da mensagem.

##### Formato preferencial Instagram 2026

- **Migração de 1:1 (quadrado) para 4:5 vertical (1080×1350)** está em curso
- 4:5 ocupa 25% mais real estate no feed mobile (vertical takes precedência)
- Quadrado ainda funciona mas é "legacy" — perderá engagement vs. 4:5 em médio prazo
- **Story 9:16 (1080×1920)** continua sendo formato dominante pra ações táticas

**Aplicação SEED:** quando Rafael pedir "post pro Instagram" sem especificar formato, sugerir 4:5 (1080×1350) como default, oferecer 1:1 (1080×1080) como alternativa. Story sempre 9:16.

##### Reels e short-form video

- Não cobertos por esta skill (esta produz peças estáticas SVG/PNG)
- Se o pedido for "vídeo de 15s pra reel", a skill **redireciona** explicando que produz frame inicial (capa) e roteiro de texto, não vídeo

---

#### Os 7 princípios consolidados (best practices)

##### 1. The 3-Hook Rule (Rico Incarnati / Torro Media)

Cada peça deve passar por 3 hooks simultâneos:

- **Visual hook** (primeiro 1 segundo): contraste forte, cor SEED dominante, face/EEny, prop reconhecível
- **Text hook** (1-7 palavras top-left ou centro): pergunta, número, contradição, pain point
- **Copy hook** (subtítulo / primeira linha): expansão do text hook, promete o payoff

**Aplicação SEED:**
- Visual: fundo turquesa SEED + EEny apontando + número grande
- Text hook 1-7 palavras: *"Conta de luz 38% mais alta?"* / *"Indústria gasta R$ X/mês a mais"* / *"50 kWp = quanto economiza?"*
- Copy: completa o gancho — *"Diagnóstico 360° identifica onde economizar"*

##### 2. Pattern interruption (Bedrok Method)

Cérebro humano scaneia o feed em modo "predator detection" — pausa em qualquer coisa que quebre padrão esperado. O feed do destinatário SEED típico (Instagram/LinkedIn de PJ industrial) está cheio de:
- Posts genéricos de "Bom dia, feliz quarta!" (todos iguais)
- Fotos institucionais de equipe
- Frases motivacionais corporativas

**Como SEED quebra padrão:**
- Foto técnica real (sistema fotovoltaico real, painel elétrico, transformador) em vez de stock
- Número quebrado de tarifa (R$ 4.547 não R$ 4.500)
- Pergunta uncomfortable ("Você sabe quanto paga por kWh hoje?")
- EEny em pose inusitada (não default sorridente)

##### 3. Front-load value (8.25s attention span)

Primeira linha = 80% da mensagem. Não construir suspense, não começar com "vocês sabiam que..." nem "imagine se...". Dar o ponto direto na primeira linha.

**Errado:**
> "Você já parou pra pensar como sua empresa consome energia? A SEED tem soluções inovadoras..."

**Certo:**
> "Indústria de móveis paga 8-15% a mais em energia. Diagnóstico 360° identifica onde."

##### 4. Pain-Promise-Proof-Pivot (Hook Formula)

Estrutura testada pra hooks de scroll-stop:

1. **Pain** — gerar tensão (pain point conhecido do destinatário)
2. **Promise** — o que ele vai ganhar lendo
3. **Proof** — número, dado, case
4. **Pivot** — CTA com next step

**Exemplo post Instagram SEED:**
- **Pain (visual + text):** "Sua conta de luz subiu 23% esse ano?"
- **Promise (subtítulo):** "Saber onde sua indústria perde energia"
- **Proof (corpo):** "Diagnóstico 360° já economizou R$ 1,2M em clientes industriais"
- **Pivot (CTA):** "Fale com a SEED em seed.eng.br"

##### 5. Especificidade > Generalidade (Oui Creatives)

Números específicos derrubam ceticismo. *"50 kWp"* funciona; *"sistemas grandes"* não. *"R$ 4.547/mês"* funciona; *"economia significativa"* não.

**Aplicação SEED:**
- Cifras com 3 dígitos significativos (não arredondar pra centena)
- Datas reais ("15/05" não "essa semana")
- Termos técnicos exatos ("fator de potência 0,87" não "energia desbalanceada")
- Cidades específicas ("Aimorés/MG" não "região")

##### 6. Visual minimalism — whitespace as confidence (B2B 2026 trend)

Brands que "não precisam gritar" são percebidas como mais confiáveis. Whitespace + restrição visual = sinal de maturidade B2B.

**Aplicação SEED:**
- 25-35% da área é whitespace (respiro)
- Máximo **3 elementos visuais** competindo por atenção
- 1 cor dominante (turquesa em 45% da peça), 1 cor de destaque (amarelo em <10%), restante neutro
- Tipografia: máximo 2 tamanhos por peça (título + corpo), nada de 4-5 hierarquias
- Sem decoração ornamental (linhas finas, ícones decorativos, ornamentos)

##### 7. Mute-first design (92% sem som)

Mesmo em posts estáticos, projetar como se fosse vídeo sem som:
- Texto sobreposto carrega 100% do conteúdo
- Visual reforça mas não é a mensagem
- Se a peça depende de áudio/legenda imaginária → refazer

##### Bônus — Faces criam conexão (psicologia)

Cérebro humano é wired pra reconhecer e responder a faces. EEny tem essa função no DS SEED — é a "face" da marca em peças onde foto humana não cabe.

**Quando ativar EEny:**
- Tom acolhedor / educativo
- Pain point empático
- Celebração
- Convite (CTA pessoal)

**Quando NÃO usar EEny:**
- Tom institucional formal (release, comunicado)
- Tema técnico sóbrio (especificação, normativa)
- Pós-venda corporativo
- Mensagem séria (atraso, ajuste contratual)

---

#### Hook templates testados (5 categorias)

##### Tipo 1 — Pergunta direta (curiosidade)

Estrutura: pergunta sobre o status quo do destinatário, com tensão implícita.

- *"Quanto sua indústria paga por kWh hoje?"*
- *"Sua conta subiu mais que o IPCA esse ano?"*
- *"O telhado da sua fábrica está parado ou gerando?"*

##### Tipo 2 — Número específico (especificidade)

Estrutura: número quebrado + contexto restrito.

- *"R$ 4.547/mês de economia em fotovoltaico 50 kWp"*
- *"38% das indústrias têm fator de potência abaixo de 0,92"*
- *"105 dias da assinatura à energização"*

##### Tipo 3 — Pain point direto (relevância)

Estrutura: nomeia uma dor que o destinatário tem.

- *"Multa de fator de potência todo mês na conta"*
- *"Demanda contratada errada custa caro"*
- *"Gerador a diesel ligado 24h é prejuízo"*

##### Tipo 4 — Contradição (pattern interrupt)

Estrutura: afirmação que vai contra senso comum.

- *"Sistema solar de 100% não compensa em 2026"* (gancho Lei 14.300)
- *"Diagnóstico antes do orçamento, não depois"*
- *"Eficiência energética não é cortar consumo"*

##### Tipo 5 — Promise específica (benefício claro)

Estrutura: o que o destinatário ganha lendo.

- *"3 ajustes que reduzem conta industrial em 8-15%"*
- *"O que olhar nas próximas 3 faturas da Cemig"*
- *"Como evitar multa de FP em 1 visita técnica"*

---

#### O que evitar (anti-padrões)

Lista de "vermelhos" verificados em produção:

1. **Hook generic motivacional** — "Vamos juntos transformar o futuro!" → zero engagement
2. **Múltiplos hooks competindo** — dois títulos grandes na mesma peça → leitura zigue-zague
3. **Visual sem text overlay** — depende do legenda → 92% perdido
4. **EEny dominando logo** — proporção errada → quebra hierarquia de marca (issue conhecido SEED)
5. **Amarelo dominando** — paleta tem amarelo como 5-10% pontual, não 30%+
6. **Subtítulo <32px em 1080²** — ilegível em mobile pequeno (issue conhecido SEED)
7. **CTA vago** — "Saiba mais" / "Acesse o link" → CTA precisa especificidade
8. **Logo cortado em bounding box apertada** — margem de segurança 10% (issue conhecido SEED)
9. **3+ tamanhos tipográficos** — quebra ritmo, parece amador
10. **Cores aproximadas** — #10B5A5 não é #11B0A0 SEED, quebra reconhecimento

---

#### Checklist pré-entrega (12 itens)

Antes de Rafael apertar postar, peça passa por:

- [ ] Hook visual + text + copy alinhados (3-Hook Rule)
- [ ] Primeira linha carrega 80% da mensagem (front-load)
- [ ] Especificidade: pelo menos 1 número/dado/cidade concreto
- [ ] Visual hierarchy: máximo 3 elementos competindo
- [ ] Whitespace ≥ 25% da área
- [ ] Mute-first: texto carrega o conteúdo sozinho
- [ ] Tamanhos tipográficos respeitam mínimos (ver `formatos-post.md`)
- [ ] Proporção EEny:logo = 1:3 verificada visualmente
- [ ] Logo com margem 10% da bounding box
- [ ] CTA específico e concreto (não "saiba mais")
- [ ] Cores 100% paleta SEED (18 tokens — ver `paleta.md`)
- [ ] Grafia "SEED engenharia" correta em todos elementos visíveis

---

## 3. Carrossel — formatos

> **Origem:** `seed-ds-carrossel/references/formatos-carrossel.md` (skill de 2026-05-13, 3485 bytes, MD5 `ee270aa142c14132d94baa26844130f6`; cópia preservada em `09-pesquisa/skills-v1-2026-05/referencias/formatos-carrossel.md`) · **Importado em 2026-09-06 sem edição** — só os títulos foram rebaixados dois níveis (código intacto).
>
> **Estado: ⚠ não auditado contra o DS v2** (nenhuma contradição medida automaticamente: sem hex, sem Indie Flower, sem Lovable, sem apelidos do shadcn — a leitura humana ainda não foi feita).

### Formatos de carrossel SEED — plataformas, dimensões, limites

Reference exclusiva da skill `seed-ds-carrossel`.

#### Plataformas suportadas e dimensões

| Plataforma | Por slide | viewBox SVG | Limite slides | Recomendação |
|---|---|---|---|---|
| Instagram quadrado | 1080×1080 | `0 0 1080 1080` | 10 (Instagram limita) | Aceitável, mas vertical 4:5 ocupa mais tela |
| Instagram vertical 4:5 | 1080×1350 | `0 0 1080 1350` | 10 | **Preferencial pra feed** — ocupa ~78% tela mobile |
| LinkedIn PDF | 1080×1080 ou 1080×1350 por página | conforme | 10-20 (max 100MB) | LinkedIn aceita PDF até 100MB |
| Facebook carrossel | 1080×1080 | `0 0 1080 1080` | 10 | Mesma lógica do Instagram quadrado |

#### Por que vertical 4:5 é preferencial no Instagram

- Mobile feed (~80% do tráfego): vertical 4:5 ocupa ~78% da tela visível vs ~62% do quadrado
- Mais espaço pra hierarquia tipográfica (título + subtítulo + corpo + CTA sem aperto)
- Stop-the-scroll mais eficaz: mais area visual = mais chance de capturar atenção
- Aspect ratio 4:5 é o limite vertical aceito pelo Instagram (5:4 é o limite horizontal)

#### Modo de produção

##### Default — slides independentes

Cada slide é um SVG próprio. Coerência via consistência de elementos (mesma paleta, hierarquia tipográfica, posição de paginação e logo, padrão de fundo).

**Vantagens:** mais simples de produzir, fácil de editar slide individual, fácil de reordenar.

##### Avançado — seamless panorama

Único canvas contínuo (ex: 1080×10800 pra 10 slides quadrados ou 1080×13500 pra 10 slides 4:5) fatiado em N peças. Cria visual momentum forte e narrativa fluida.

**Quando usar:** storytelling cinematográfico, sequências antes/depois fluidas, narrativas de marca de alto impacto.

**Limitação:** mais sofisticado de produzir e ajustar (mudar 1 slide pode quebrar toda a continuidade).

#### Slide count — diretrizes por plataforma

##### Instagram (qualquer formato)
- Mínimo 3 (menos que isso, melhor fazer post único)
- **Sweet spot 6-10** (completion rate cai abaixo de 6 e acima de 10)
- Máximo absoluto 10 (limite Instagram)

##### LinkedIn PDF
- Mínimo 3 (abaixo, vira anexo simples não-narrativo)
- Sweet spot 5-10 (boa retenção em feed)
- Máximo prático 15-20 (acima, completion rate despenca)
- Limite de arquivo: 100 MB

#### Áreas seguras

##### Instagram (quadrado ou vertical)
- Margens 40-50px das bordas (interface do Instagram pode sobrepor sutilmente)
- Logo e paginação fora da área central de conteúdo
- CTA em última posição do último slide

##### LinkedIn PDF
- Margens 60-80px (mais respiro, leitura desktop)
- Paginação tipo "1/8" canto inferior, consistente em todos
- Capa e fechamento podem usar layout diferente (sem paginação)

#### Coerência visual entre slides — checklist crítico

- Paleta de fundos consistente (definida no slide 1, mantida ou alternada com padrão declarado)
- Posição de assinatura/paginação fixa em todos
- Hierarquia tipográfica idêntica (mesmo tamanho, peso, cor)
- Variante de logo coerente (uniformidade nos slides intermediários)
- Padrão de grafismos (se onda na base, onda na base em todos os slides que usam)

#### Densidade de texto por slide

- **Máximo 6-8 linhas** por slide (regra prática)
- **Uma ideia central** por slide
- Slides mais densos = piora de completion rate
- Hook (slide 1) pode ser menos texto e mais visual; fechamento (slide N) idem
- Slides do corpo carregam o conteúdo denso

---

## 4. Carrossel — boas práticas

> **Origem:** `seed-ds-carrossel/references/melhores-praticas-carrossel.md` (skill de 2026-05-13, 13021 bytes, MD5 `62652366add6613a4a0631ef5ba7eb6b`; cópia preservada em `09-pesquisa/skills-v1-2026-05/referencias/melhores-praticas-carrossel.md`) · **Importado em 2026-09-06 sem edição** — só os títulos foram rebaixados dois níveis (código intacto).
>
> **Estado: ⚠ não auditado contra o DS v2** (nenhuma contradição medida automaticamente: sem hex, sem Indie Flower, sem Lovable, sem apelidos do shadcn — a leitura humana ainda não foi feita).

### Melhores práticas — carrossel multi-slide (Instagram + LinkedIn) 2026

Reference exclusiva da skill `seed-ds-carrossel`. Síntese de práticas estabelecidas no mercado (autoridades + dados de benchmark 2024-2026) aplicáveis ao contexto SEED engenharia (B2B industrial/comercial).

Consultar sempre antes de produzir carrossel — princípios + dados pra calibrar slide count, hook, completion, save rate.

---

#### Autoridades de referência

Quando o usuário pedir "no estilo de" ou "como [criador]", reconhecer estas escolas:

| Autor | Especialidade | Estilo de carrossel |
|---|---|---|
| **Justin Welsh** ("The Diversified Solopreneur") | How-to guides B2B, frameworks personal brand | Headline forte + 5-7 passos numerados + CTA "follow for more" — solo/consultor |
| **Chris Walker** (Refine Labs) | Templates & frameworks B2B marketing | Apresenta desafio + entrega framework pronto + slide do framework é o produto |
| **Chris Do** (The Futur) | Design thinking + business pra criativos | Hot takes + design discipline + carrosséis com restrição visual forte |
| **Ross Simmonds** (Foundation) | Distribuição de conteúdo B2B | Repurpose-first: 1 ideia → N formatos |
| **Rand Fishkin** (SparkToro) | Data visualization e research B2B | Carrosséis de dados + insights contraintuitivos |
| **Buffer + Socialinsider** (research) | Benchmark social media | Fontes de dados estatísticos |
| **Sprout Social Index** | Comportamento de audiência B2B | Algoritmo + dwell time + save rate |

Aplicação SEED: para B2B engineering, o estilo **Justin Welsh (how-to)** + **Chris Walker (frameworks)** são os mais aderentes. Carrossel SEED é educacional/comercial/case — quase nunca lifestyle/inspiracional.

---

#### Dados de benchmark (carrossel 2025-2026)

##### Performance vs outros formatos (Buffer, Socialinsider, Metricool)

- **Engagement rate: ~9-10%** carrossel > ~6-7% Reels > ~5-6% imagem única
- **Save rate carrossel: 2× Reels** por impressão
- **Reach: 3× imagem única** + **2× saves vs Reels**
- **Engagement Instagram em 2026:** 1.92% médio carrossel · 1.74% Reels · 1.22% imagem única
- Adam Mosseri (CEO Instagram) confirmou: carrosséis ganham 1.4× mais reach que post estático

##### Re-serve mechanic (Instagram only)

**Mecanismo único do carrossel Instagram:** se o usuário scrollou sem swipar, o algoritmo **resserve o post 24-48h depois mostrando a partir do slide 2**. Conta como conteúdo novo. Single image e Reels não têm isso.

**Implicação prática SEED:** **slide 2 deve poder funcionar como "novo slide 1"** — capaz de fisgar sozinho se aparecer isolado. Não pode ser "transição" sem valor próprio.

##### Slide count ideal por plataforma

| Plataforma | Sweet spot | Limite plataforma | Notas |
|---|---|---|---|
| **Instagram (educacional)** | **8-10 slides** | 20 (técnico) | Engagement cai entre slides 3-7, sobe de novo após 8. 10 slides bate 2.07% engagement |
| Instagram (storytelling emocional) | 5-8 | 20 | Cada slide carrega peso visual maior |
| **LinkedIn PDF (educacional/framework)** | **8-12** | 300 páginas / 100MB | Audiência mais paciente, depth-tolerant |
| LinkedIn PDF (hot take/opinião) | 6-8 | — | Velocidade > profundidade |
| LinkedIn PDF (deep guide) | 10-15 | — | Topo de 20 começa a perder completion |

**Default SEED:** 8 slides como ponto de partida (3 sweet spots ao mesmo tempo). Variar conforme estrutura narrativa específica (`estruturas-narrativas.md`).

##### Completion rate como gatekeeper algorítmico

- **<60% completion** → Instagram para de re-servir / reduz distribuição
- **80% completion em 10 slides** → boost forte pra Explore
- **Dead stops** (saída no slide 1) → penalização ativa do algoritmo em 2026

**Implicação prática SEED:** se o tema é denso e exige 12 slides, **considerar dividir em série** (carrossel 1: visão geral, carrossel 2: detalhe técnico). Melhor 2 carrosséis de 7 slides com 75% completion que 1 carrossel de 14 com 40%.

##### Save rate como meta primária

- Save é o **sinal mais forte** do algoritmo Instagram em 2026 (mais que like)
- Save rate <2% = "tá performando como imagem estática" — falhou
- Save rate 2-4% = sólido
- Save rate >4% = excelente

**Implicação prática SEED:** carrosséis SEED devem ser **save-worthy** (utilidade de consulta posterior) — guias técnicos, checklists, comparativos. Storytelling emocional puro tem save rate baixo.

##### Caption length que performa

- 150-300 caracteres = sweet spot Instagram
- <80 chars = sinaliza "low effort" pro algoritmo
- 500+ chars = atenção sai dos slides

LinkedIn PDF: caption + 1-2 frases de framing + "swipe pra ver".

---

#### 7 princípios consolidados

##### 1. Mini landing page mindset (TrueFuture Media)

Cada carrossel é uma **mini landing page no feed**. Não é um conjunto de posts isolados — é um fluxo de conversão em micro-commitments:

```
1 swipe → 2 swipe → 3 swipe → save/share/comment
```

Cada slide é o "button" pro próximo. Função: extrair próximo micro-commit, não "informar".

**Aplicação SEED:** ao planejar, perguntar de cada slide: *"o que motiva o swipe pro próximo?"* Se a resposta é "nada, é só informação adicional" → remover ou repensar.

##### 2. Cover slide = billboard, não título

Slide 1 carrega **80% do peso** do carrossel inteiro. Função única: **earn the swipe**.

Cover effective inclui:
- **Claim específico ou dado** ("B2B pages que postam carrossel veem 22% mais engagement")
- **Topic statement claro** ("Sistema fotovoltaico 50 kWp: economia real em padaria de Aimorés")
- **Clutter mínimo** — 1 headline, 1 logo, fundo contrastante
- **Swipe indicator** (seta "→" ou texto "swipe pra ver" — só 5% dos carrosséis têm e aumenta engagement de 1.83% pra 2%)

**Cover effective NÃO inclui:**
- Título genérico ("Dicas pra empresas")
- Múltiplos headlines competindo
- Decoração que distrai
- "Did you know?" ou "Sabia que..."

##### 3. Swipe triggers — open loops entre slides

Cada slide do corpo deve criar **uma pequena pergunta que o próximo responde** (curiosity gap). Open loop sustenta swipe rate.

**Bom (open loop):**
- Slide 3: "Mas há um erro comum que todo mundo comete..." (loop aberto)
- Slide 4: revela o erro

**Ruim (closed loop):**
- Slide 3: "Use sistemas certificados. Próximo: outras dicas."
- Slide 4: dica desconectada

Aplicação SEED: estruturar copy explicitamente em "open → resolve → open → resolve" entre slides consecutivos.

##### 4. Padrão de slide design (Carouselli 2026 best practices)

- **2-3 templates de layout MAX** por carrossel. Trocar layout a cada slide = caos visual
- **1 heading font + 1 body font** (no SEED: Montserrat Bold + Montserrat Regular). Máximo 2
- **2-3 cores por carrossel** (no SEED: turquesa + branco + 1 accent = amarelo ou verde)
- **Whitespace ≥ 25%** — slides apertados perdem swipe
- **Read-at-scroll-speed:** se alguém precisa squint por 2+ segundos pra encontrar onde olhar, perdeu

**Anti-padrão verificado:** texto denso preenchendo o slide inteiro de borda a borda. Acontece quando o tema é "rico" mas o slide vira parede de texto.

##### 5. One concept per slide (máximo 30 palavras)

Viewer swipa rápido — se não absorve um slide em **2-3 segundos**, conteúdo está denso demais.

- Cada slide = 1 conceito · 1 número · 1 frase de remate
- **Máximo 30 palavras por slide** (incluindo número + título + body)
- Slides 2-3s de leitura → user mantém pace

**Aplicação SEED técnica:** quando o slide precisa de dado técnico (potência, payback, kWh), reservar o slide pro DADO sozinho — não misturar com explicação. A explicação vai no slide anterior ou seguinte.

##### 6. CTA final é dual: save + conversion

Slide N tem **dois CTAs simultâneos** otimizados pra métricas diferentes:

- **CTA de save/share** (otimiza algoritmo): "Salve pra consultar depois" / "Compartilhe com quem precisa entender disso"
- **CTA de conversão** (otimiza pipeline): "Fale com a SEED — 0800 591 5374" / "Marque sua visita técnica em seed.eng.br"

Posicionar:
- Save/share **maior**, no topo do slide N
- Conversion **secundário**, na base com 0800 e site

**0800 OBRIGATÓRIO no slide final** quando objetivo é conversão (case study, comparativo comercial, antes/depois). Issue identificado em produção: CTAs anteriores saíram apenas com site, perdendo o canal mais imediato.

**Anti-padrão:** colocar link externo no slide (URL completa, link de bio). Algoritmo penaliza link no slide — direcionar pra "link na bio" ou pedir comentário pra DM.

##### 7. Coerência visual sistemática (algoritmo + brand)

Coerência tem 2 funções: brand recognition + sinal de qualidade pro algoritmo.

Elementos que devem ser idênticos entre slides:
- Posição da paginação ("1/8" sempre no mesmo canto)
- Posição do logo/assinatura
- Tamanho do título principal (no SEED: 72px em 1080×1350)
- Família tipográfica
- Paleta dominante (turquesa-branco-accent)

Elementos que podem variar com regra declarada:
- Background color (capa turquesa → corpo branco → fechamento turquesa = padrão)
- Variante do logo (capa: horizontal-principal; corpo: símbolo no canto)
- Posição do EEny (capa: direita; corpo: rotaciona conforme conteúdo; fechamento: esquerda)

**Anti-padrão verificado:** mudar paginação de canto entre slides, ou variar arbitrariamente a tipografia. Parece erro técnico, não decisão de design.

---

#### Templates de slide 1 (cover) — 5 que funcionam

##### Tipo 1 — Número + outcome específico (Justin Welsh style)

> "5 passos pra escolher um sistema fotovoltaico que paga em 4 anos"

Por que funciona: número promete contagem finita + outcome específico promete payoff.

##### Tipo 2 — Pergunta direta com tensão

> "Sua indústria paga multa de fator de potência todo mês?"

Por que funciona: pergunta com "sim" forte do destinatário cria need-to-know.

##### Tipo 3 — Dado contraintuitivo

> "Sistema solar 100% do consumo não compensa em 2026 (e veja por quê)"

Por que funciona: contraria senso comum + promete explicação.

##### Tipo 4 — Comparativo binário

> "On-grid vs Off-grid: o que escolher pra indústria"

Por que funciona: força user a tomar lado, abre loop.

##### Tipo 5 — Caso real com números (Chris Walker style)

> "Como uma padaria de Aimorés economiza R$ 4.547/mês"

Por que funciona: cliente real + cidade real + número específico = credibilidade instantânea.

**Anti-padrão:** "Dicas pra empresas economizarem energia" — genérico, sem promessa, sem tensão.

---

#### Slide-by-slide arquitetura completa (educacional 8 slides)

Template testado pra carrossel B2B SEED tipo "how-to":

| # | Função | Conteúdo |
|---|---|---|
| 1 | **Hook (billboard)** | Headline + dado/número + swipe indicator |
| 2 | **Reframe / Stakes** | "Por que isso importa" — sustenta swipe se for re-served pelo algoritmo |
| 3 | **Passo 1 / Item 1** | 1 conceito + número grande + 1 frase explicação |
| 4 | **Passo 2 / Item 2** | mesmo padrão (consistency = qualidade) |
| 5 | **Passo 3 / Item 3** | mesmo padrão |
| 6 | **Passo 4 / Item 4 ou Insight** | mesmo padrão ou twist (open loop forte aqui) |
| 7 | **Passo 5 / Resumo visual** | mesmo padrão ou recap |
| 8 | **CTA dual** | Save/share grande + 0800/site secundário + logo |

---

#### 10 anti-padrões verificados em produção

1. **Slide 1 genérico** ("Dicas pra empresas") → cover sem promessa
2. **Slide 2 fraco** — não funciona como "novo slide 1" se algoritmo re-servir
3. **Slide do meio sem open loop** → user sai
4. **Texto >30 palavras no slide** → cognitive overload
5. **Layout diferente a cada slide** → parece amador
6. **3+ cores fora da paleta SEED** → quebra brand recognition
7. **CTA do slide final sem 0800** → perde canal imediato (issue conhecido SEED)
8. **Slide N só com save/share** → perde conversão
9. **Slide N só com conversão** → perde alimentação do algoritmo (save/share)
10. **Carrossel >10 slides em tema raso** → completion despenca, algoritmo para de re-servir

---

#### Checklist pré-entrega (15 itens)

- [ ] Slide count dentro do sweet spot da plataforma (8-10 Instagram, 8-12 LinkedIn)
- [ ] Cover slide cumpre 3-Hook Rule (stop scroll + immediate value + tease)
- [ ] Cover slide ≤ 8-10 palavras no headline
- [ ] Slide 2 funciona como "novo slide 1" (re-serve compatibility)
- [ ] Cada slide cria open loop pro próximo
- [ ] Máximo 30 palavras por slide
- [ ] Layout consistente: 2-3 templates max
- [ ] Tipografia: 1 heading + 1 body, mínimos respeitados (`formatos-carrossel.md`)
- [ ] Paleta: 2-3 cores SEED (turquesa + branco + accent)
- [ ] Whitespace ≥ 25% por slide
- [ ] Paginação posição idêntica em todos
- [ ] EEny:logo proporção 3:1 verificada visualmente
- [ ] Logo com margem 10% bounding box
- [ ] **Slide N tem dual CTA: save/share + 0800 591 5374 + seed.eng.br**
- [ ] Grafia "SEED engenharia" correta em todos os slides (especialmente rodapé)

---

## 5. Carrossel — estruturas narrativas

> **Origem:** `seed-ds-carrossel/references/estruturas-narrativas.md` (skill de 2026-05-13, 5314 bytes, MD5 `d2edfcd6ec155ea607b7d22aa3dc1f1f`; cópia preservada em `09-pesquisa/skills-v1-2026-05/referencias/estruturas-narrativas.md`) · **Importado em 2026-09-06 sem edição** — só os títulos foram rebaixados dois níveis (código intacto).
>
> **Estado: ⚠ não auditado contra o DS v2** (nenhuma contradição medida automaticamente: sem hex, sem Indie Flower, sem Lovable, sem apelidos do shadcn — a leitura humana ainda não foi feita).

### Estruturas narrativas SEED para carrossel

Reference exclusiva da skill `seed-ds-carrossel`. Cada estrutura tem framework de copywriting subjacente.

#### 6 estruturas canônicas

##### 1. Educacional passo-a-passo

**Framework subjacente: What → Why → How**

**Quando usar:** ensinar algo procedural ("como escolher", "como entender", "como decidir"). Tom didático.

**Arquitetura típica (slide count: 6-10):**
- Slide 1 — Hook (pergunta ou problema): "Como escolher seu sistema solar em 5 passos"
- Slide 2 — Contexto / por que importa
- Slide 3 a N-1 — Os passos (1 passo por slide)
- Slide N — Recapitulação ou CTA "Salve este post"

**CTA ideal:** "Salve este post pra consultar depois" (otimiza save rate, métrica forte do algoritmo).

**Densidade:** mid (cada slide com 1 passo + 1-2 frases explicativas).

##### 2. Comparativo

**Framework subjacente: AIDA** (Atenção → Interesse → Desejo → Ação)

**Quando usar:** duas ou três opções/sistemas contrapostos. Tom técnico-analítico.

**Arquitetura típica (slide count: 5-8):**
- Slide 1 — Hook puxando o tema: "Sistema on-grid vs off-grid: qual escolher?"
- Slides 2-3 — Opção A (características, prós, contras)
- Slides 4-5 — Opção B (características, prós, contras)
- Slide N — Critérios de decisão / CTA

**CTA ideal:** "Comente qual faz sentido pra seu caso" (engagement) ou "Fale com a SEED" (conversão).

**Densidade:** mid-alta (comparativos exigem detalhe técnico).

##### 3. Lista numerada

**Framework subjacente: Hook → Value → CTA**

**Quando usar:** itens enumeráveis sem ordem causal ("5 sinais", "7 dicas", "3 erros mais comuns"). Tom direto e útil.

**Arquitetura típica (slide count: itens + 2):**
- Slide 1 — Hook prometendo o número: "5 sinais que seu sistema fotovoltaico não está bem"
- Slides 2 a N-1 — Os itens (1 item por slide, numerado)
- Slide N — Sintese + CTA

**CTA ideal:** "Salve" (lista, save rate) ou "Compartilhe com quem tem fotovoltaico" (share rate).

**Densidade:** baixa-mid (1 item por slide, texto curto).

##### 4. Antes / Depois

**Framework subjacente: Problem → Agitate → Solve**

**Quando usar:** transformação com estado inicial e final claros. Tom de impacto.

**Arquitetura típica (slide count: 5-8):**
- Slide 1 — Hook do problema (estado inicial doloroso)
- Slides 2-3 — Agitação (consequências do problema)
- Slides 4-5 — Solução (estado final transformado)
- Slide N — Caso real ou CTA

**CTA ideal:** "Compartilhe com quem precisa entender disso" (share rate, conteúdo viral).

**Densidade:** mid (visual conta tanto quanto texto).

##### 5. Case study

**Framework subjacente: AIDA ou Problem → Solve**

**Quando usar:** cliente real + problema específico + solução SEED + resultados quantificados. Tom de prova social.

**Arquitetura típica (slide count: 7-10):**
- Slide 1 — Capa identificando contexto: "Como a [Indústria X] economizou 38% na conta de luz"
- Slide 2 — Cliente e contexto (com permissão de divulgação ou descrição genérica)
- Slide 3 — Problema enfrentado
- Slides 4-5 — Solução SEED aplicada (Diagnóstico 360°, fotovoltaico, etc.)
- Slides 6-7 — Resultados quantificados (kWp, economia%, payback)
- Slide N — Aprendizado + CTA

**CTA ideal:** "Quer um diagnóstico assim na sua empresa? Fale com a SEED."

**Densidade:** alta (case studies levam dados, números, contexto).

**Cuidado:** dados precisam ser verificáveis. Se cliente não autorizou nome, usar descrição genérica plausível ("Indústria de móveis em Governador Valadares/MG").

##### 6. Storytelling de marca

**Framework subjacente: Arco clássico** (apresentação → desenvolvimento → desfecho)

**Quando usar:** trajetória SEED, marcos da empresa, valores, narrativa de propósito. Tom inspiracional sem ser piegas.

**Arquitetura típica (slide count: 6-10):**
- Slide 1 — Hook com pergunta/contexto: "Como a SEED chegou aqui?"
- Slides 2-3 — Apresentação (origem, fundação 2016 em Baixo Guandu)
- Slides 4-6 — Desenvolvimento (crescimento, expansão pra ES/MG/BA, soluções construídas)
- Slides 7-8 — Desfecho (estado atual, propósito ESG)
- Slide N — Convite a fazer parte ou CTA

**CTA ideal:** "Comente sua história com energia" (comment rate) ou CTA brand-building soft.

**Densidade:** mid (narrativa, não dados densos).

#### Como escolher a estrutura quando o briefing não declara

| Pista no briefing | Estrutura recomendada |
|---|---|
| "Etapas", "como fazer X em N passos" | Educacional passo-a-passo |
| "X vs Y", "comparar opções" | Comparativo |
| "N dicas", "N sinais", "N erros" | Lista numerada |
| "Transformação", "antes e depois", "como mudou" | Antes / Depois |
| Cliente real + problema + resultados | Case study |
| Aniversário SEED, marco, valores | Storytelling |

Se duas estruturas parecem caber: perguntar antes. A escolha muda copy e ritmo dos slides.

#### Hook visual — três funções simultâneas

Independente da estrutura, o slide 1 tem que cumprir:

1. **Stop the scroll** — contraste, cor, imagem arresting
2. **Communicate immediate value** — em 1-2 segundos o usuário entende por que importa
3. **Tease what's coming** — abre open loop que só fecha avançando

Sem os três, capa vira decoração e completion rate despenca.

---

## 6. Apresentações — boas práticas de slide deck

> **Origem:** `seed-ds-slide/references/melhores-praticas-slide-deck.md` (skill de 2026-05-13, 12284 bytes, MD5 `715fc178ebca47adadcca8a7174dec06`; cópia preservada em `09-pesquisa/skills-v1-2026-05/referencias/melhores-praticas-slide-deck.md`) · **Importado em 2026-09-06 sem edição** — só os títulos foram rebaixados dois níveis (código intacto).
>
> **Estado: ⚠ não auditado contra o DS v2** (nenhuma contradição medida automaticamente: sem hex, sem Indie Flower, sem Lovable, sem apelidos do shadcn — a leitura humana ainda não foi feita).

### Melhores práticas — sales deck / pitch deck B2B 2026

Reference exclusiva da skill `seed-ds-slide`. Síntese de práticas estabelecidas no mercado (autoridades + dados de benchmark 2024-2026) aplicáveis ao contexto SEED (B2B industrial/comercial).

Consultar sempre antes de produzir deck — princípios + estrutura narrativa + glance test.

---

#### Autoridades de referência

Quando o usuário pedir "no estilo de" ou pegar dúvida sobre padrão, reconhecer estas escolas:

| Autor / Empresa | Especialidade | Livro / Recurso canônico |
|---|---|---|
| **Nancy Duarte** (CEO Duarte, Inc.) | Storytelling visual em apresentações; designer da "Inconvenient Truth" do Al Gore | **slide:ology** (2008) — design + **Resonate** (2010) — story-first |
| **Garr Reynolds** | Design japonês/zen aplicado a slides; restrição visual | **Presentation Zen** + **Presentation Zen Design** |
| **Edward Tufte** | Densidade informacional, data-ink ratio, "PowerPoint Is Evil" | *The Visual Display of Quantitative Information* |
| **McKinsey / BCG / Bain** | Consulting decks "answer first" — conclusão no topo do slide, depois evidência | Princípio "pyramid principle" (Barbara Minto) |
| **HBR (Harvard Business Review)** | Storytelling executivo, frameworks 3×3 | Artigos sobre "the science of pitching" |
| **Apollo / Highspot / Seismic** | Sales enablement B2B 2026 | Frameworks data-driven, ROI calculators |

**Aplicação SEED:**
- **Decks comerciais/técnicos** → estilo **McKinsey "answer first"** + tom **Duarte storytelling** (narrativa de transformação)
- **Pitch curto pra parceiro/investidor** → **Duarte Resonate** (problem→hero→change framework)
- **Decks pra evento/keynote** → **Garr Reynolds Zen** (1 ideia por slide, visual forte, body text reduzido)
- **Decks técnicos densos** → **Tufte data-ink** (cada elemento tem que informar, não decorar)

---

#### Dados de benchmark (state of the art 2026)

##### Adoção e impacto

- **Gartner 2026:** 61% dos compradores B2B preferem experiência rep-free de compra — implica deck precisa funcionar standalone (self-service) E ao vivo
- **McKinsey research:** apresentações com "advanced visual analytics" são **43% mais prováveis de gerar ação** em meetings executivos
- **Case real 2026:** B2B SaaS com deck redesenhado (problema na frente + waterfall data visualization) fechou 4 meetings + 2 term sheets em 6 semanas + $4.2M seed (PitchWorx 2026)

##### Atenção e dwell time

- **Glance test (Duarte):** se a audiência não entende o slide em **3 segundos**, está muito denso
- **Mid-deck attention drop:** atenção cai 40-60% entre slide 5 e slide 15 em decks longos — usar **section dividers** pra reset
- **Confirmação 2026:** decks que "burying the hook 8 slides deep" perdem 60-70% da audiência antes do problema ser apresentado

##### Slide count que performa

| Tipo | Sweet spot | Limite | Notas |
|---|---|---|---|
| Pitch curto (investidor, parceiro) | **5-10 slides** | 12 | "Resonate framework" Duarte — narrativa apertada |
| Sales deck comercial B2B | **10-18 slides** | 25 | Decks > 25 viram "megadecks" → diluição |
| Deck técnico (handoff, evidência) | **15-30 slides** | 40 | Tolerância maior porque audiência espera detalhe |
| Slide isolado | 1-3 | 5 | Pra contexto rápido (reunião, WhatsApp, e-mail) |
| Keynote / evento | 10-15 slides | 20 | Storytelling lento, mais visual menos texto |

##### Performance de elementos visuais

- **Layered infographics > tabelas brutas** em executive decision-making (McKinsey 2026)
- **Waterfall data viz** outperforma bar charts pra mostrar progressão (PitchWorx)
- **Dynamic flow diagrams** > bullet lists pra explicar processos
- **Comparative scenario frameworks** (3 cenários lado a lado) > prosa pra trade-offs

---

#### 7 princípios consolidados (mix das autoridades)

##### 1. Story-first, design-second (Nancy Duarte)

**Regra:** antes de abrir python-pptx, declarar a história em 1 frase + 3 atos. Sem isso, slides viram "PowerPoint show off".

**Framework Resonate (Duarte):**
```
1. What is              (situação atual da audiência)
2. What could be        (futuro possível com a solução)
3. What is → what could be   (transformação = teu produto)
4. What could be reinforced  (futuro reforçado — fechamento)
```

**Aplicação SEED:** deck comercial fotovoltaico para indústria de Itabira:
- **What is:** "Vocês pagam R$ 850.000/ano de energia"
- **What could be:** "Em 4 anos, pagariam zero"
- **Transformação:** "Sistema 280 kWp da SEED com payback 3.8 anos"
- **Reinforced:** "ROI de 312% em 25 anos, 18 indústrias capixabas já fazendo"

##### 2. Glance test 3 segundos (Duarte)

**Regra:** cada slide deve ser entendível em **3 segundos**. Audiência olha pro slide enquanto Rafael fala — não pode ficar disputando atenção com texto denso.

**Teste prático:** mostrar o slide pra alguém de fora do projeto. Se em 3s não souber a ideia, simplificar.

**Aplicação SEED:** título + 1 número grande + 1 frase de contexto = passa no glance test. Bullet com 5 sub-bullets = falha.

##### 3. Answer first (McKinsey pyramid principle)

**Regra:** título do slide é a **conclusão**, não a categoria. Plateia executiva quer saber a resposta primeiro, evidência depois.

**Bom (answer first):**
> "Investimento de R$ 1.4M gera retorno de R$ 4.2M em 10 anos"

**Ruim (categoria):**
> "Análise financeira do projeto"

**Aplicação SEED:** em decks comerciais, **TODOS** os títulos de slide são afirmações com conclusão clara, não rótulos.

##### 4. Signal vs noise (Tufte + Reynolds)

**Regra:** cada pixel deve informar. Se elemento não comunica, remover.

**Aplicar:**
- Sem accent lines decorativas sob títulos
- Sem rodapé com tagline + logo + slide number + decoração — escolher 1-2
- Sem 3D charts (sempre piora legibilidade)
- Sem clip-art ou stock photos genéricos
- Cor é destaque, não decoração — 1 cor SEED destaca o insight, resto neutro

**Aplicação SEED:** o turquesa SEED é o "destaque". Em gráfico de 8 barras, **1 barra turquesa** (a relevante), 7 cinzas (`SEED_CINZA_BORDER`).

##### 5. Section dividers reset (mid-deck attention)

**Regra:** decks > 12 slides precisam **section dividers** entre blocos de 3-5 slides pra reset de atenção.

Divisor SEED canônico:
- Fundo turquesa
- Número grande à esquerda (amarelo, 120pt)
- Título da seção à direita (branco, 36-44pt)
- Sem logo, sem rodapé (slide de "respiro")

**Aplicação SEED:** deck comercial de 18 slides = capa + 4 seções × 3-4 slides + agradecimento.

##### 6. Stakeholder-specific narratives (Apollo / Highspot 2026)

**Regra:** mesmo deck precisa funcionar pra múltiplos stakeholders. Em meeting B2B típico, presentes: **economic buyer** (CFO), **technical evaluator** (eng), **end user** (operacional). Cada um tem critério diferente.

**Aplicação SEED:**
- CFO: payback + economia anual + ROI 10 anos → 1-2 slides dedicados
- Engenheiro: dimensionamento + componentes + garantias → 2-3 slides técnicos
- Operacional: cronograma de obra + impacto operacional → 1-2 slides

Deck unificado, mas cada bloco resolve um stakeholder.

##### 7. Hybrid delivery (Apollo 2026 — rep-free buying)

**Regra:** 61% dos B2B buyers preferem rep-free. Deck precisa funcionar standalone (self-service) E ao vivo.

**Implicação:**
- Slides com pouco texto = ótimo pra ao vivo, mas falha self-service (audiência fica perdida sem narração)
- Speaker notes preenchidas resolvem: ao vivo Rafael narra, self-service o leitor lê as notas no PDF exportado

**Aplicação SEED:** em decks comerciais que vão por e-mail antes/depois da reunião — **speaker notes obrigatórias**. Em decks ao vivo apenas — speaker notes opcionais mas recomendadas.

---

#### Arquitetura recomendada por tipo de deck

##### Deck comercial B2B (10-18 slides)

Estrutura testada SEED para proposta a indústria/comércio:

| # | Slide | Função |
|---|---|---|
| 1 | Capa | Logo grande + título "Proposta — [Cliente]" + data |
| 2 | Quem somos (1 slide) | SEED em 3 números (anos, projetos, GWp instalado) |
| 3 | Section: "O contexto" | Divisor turquesa |
| 4-5 | Seu desafio | "What is" — análise atual do cliente (consumo, custo, ineficiência) |
| 6 | Section: "A solução" | Divisor turquesa |
| 7-8 | Solução proposta | Sistema dimensionado, layout, componentes |
| 9 | Stat callout | 3 números chave: kWp, economia/mês, payback |
| 10 | Section: "O retorno" | Divisor turquesa |
| 11-12 | Análise financeira | Investimento, retorno acumulado (chart waterfall), ROI 10/25 anos |
| 13 | Cases similares | 2-3 indústrias atendidas com números (autorizado) |
| 14 | Garantias e suporte | O&M, monitoramento, garantia componentes |
| 15 | Próximos passos | Cronograma de 4-8 semanas, marcos |
| 16 | Agradecimento | Logo + 0800 591 5374 + seed.eng.br + EEny opcional |

##### Pitch curto (5-10 slides) — Duarte Resonate

| # | Slide | Função (Resonate) |
|---|---|---|
| 1 | Capa | Hook título |
| 2 | What is | Estado atual / problema |
| 3 | Stakes | Custo de não agir |
| 4 | What could be | Visão de futuro |
| 5 | The bridge | Como a SEED leva A→B |
| 6 | Proof | 1 case real |
| 7 | Reinforced | "Imagine 5 anos depois..." |
| 8 | Agradecimento + CTA | 0800 + site |

##### Deck técnico (15-30 slides)

Mais tolerância a densidade. Pyramid principle obrigatório (conclusão no título). Speaker notes opcionais (audiência técnica lê o slide). Charts dominam.

##### Slide isolado (1-3 slides)

Stat callout grande + contexto. Pra WhatsApp/e-mail/reunião relâmpago.

---

#### Anti-padrões verificados em produção (NÃO repetir)

1. **Burying the hook** (problema só aparece slide 8) → audiência sai antes
2. **Megadeck** (>25 slides numa proposta) → diluição, perde foco
3. **Título-categoria** ("Análise financeira") em vez de answer-first ("ROI 312% em 25 anos")
4. **Stat callout com overlay** (números 72pt sobrepondo labels) — geometria explícita obrigatória
5. **Logo cortada** por bounding box justa — margem 10% interna mínima
6. **0800 ausente** no slide de fechamento (issue conhecido SEED)
7. **3D charts** ou pie chart com 8+ fatias → ilegível
8. **Decorative full-width colored bar** como rodapé — rodapé SEED é fino com símbolo
9. **Accent lines** sob títulos (AI slop visual)
10. **Cream/beige** como fundo → branco ou cores SEED apenas
11. **EEny gigante** disputando atenção com conteúdo — EEny é coadjuvante
12. **Slideument** (parágrafos densos por slide) — vai pra speaker notes ou vira proposta Word

---

#### Checklist pré-entrega (15 itens)

Antes de entregar deck SEED:

- [ ] Slide count dentro do sweet spot (pitch 5-10, comercial 10-18, técnico 15-30)
- [ ] Capa = slide 1 sempre, com logo 4.0×1.2" centralizado
- [ ] Glance test 3s: cada slide entendível em 3 segundos
- [ ] Answer-first em títulos de slides comerciais (conclusão, não categoria)
- [ ] Section dividers entre blocos de 3-5 slides em decks > 12
- [ ] Stat callout com geometria explícita (números não sobrepondo labels)
- [ ] Logo com margem 10% interna na bounding box
- [ ] Charts: 1 cor SEED destaca insight, resto neutro
- [ ] **Slide N (agradecimento) inclui 0800 591 5374**
- [ ] **Grafia "SEED engenharia"** em todos os elementos visíveis
- [ ] Paleta: 100% SEED (18 tokens), zero hex alheio
- [ ] Speaker notes preenchidas (se deck vai por e-mail, obrigatórias)
- [ ] Margens 0.5" mínimo respeitadas
- [ ] Real content (não placeholder, não lorem)
- [ ] Sem AI slop (accent lines, decorative bars, stock photos genéricos)

---

#### Composição com `pptx` oficial

A skill `pptx` da Anthropic fornece:
- Workflow técnico: python-pptx, slide_layouts, geração + conversão JPG via soffice
- QA visual via subagentes inspecionando JPGs
- Recomendações estéticas gerais (palettes, fontes)

A skill `seed-ds-slide` **sobrescreve** as recomendações estéticas (paleta SEED, Montserrat, layouts canônicos) e **concorda** com a estrutura técnica e QA.

Quando ambas ativam:
- `pptx` cuida da geração técnica + QA visual
- `seed-ds-slide` define identidade (paleta, fontes, componentes, tom)
- Convergem em: anti-AI-slop (sem accent lines, sem decorative bars, sem text-only slides)

---

## 7. Apresentações — biblioteca de componentes de slide (maio/2026)

> **Origem:** `seed-ds-slide/references/componentes-slide-seed.md` (skill de 2026-05-13, 18615 bytes, MD5 `a40d0b6bb931f85dfdad1259a7bffcf9`; cópia preservada em `09-pesquisa/skills-v1-2026-05/referencias/componentes-slide-seed.md`) · **Importado em 2026-09-06 sem edição** — só os títulos foram rebaixados dois níveis (código intacto).
>
> **Estado: ⚠ não auditado contra o DS v2.** Contradições medidas — vale a regra de precedência do cabeçalho: 15 cor(es) em hex — só os tokens do `seed-tokens.json` valem (marca §3, §11) · cita a Indie Flower — fonte APOSENTADA em 2026-07-30 (marca §4.4); a celebratória é a Caveat (§4.3).

### Componentes de slide SEED — biblioteca canônica

Reference exclusiva da skill `seed-ds-slide`. Define os 10 layouts de slide aplicáveis em decks PPTX SEED, com regras visuais, **dimensões explícitas** e código python-pptx típico.

**REGRA DURA:** todo elemento posicionável em python-pptx (`add_textbox`, `add_picture`, `add_shape`) requer 4 valores explícitos — `left, top, width, height` em `Inches`. Sem isso, python-pptx empilha os elementos a partir do canto superior esquerdo e gera overlay/overflow. Issue identificado em produção: stat callout com 3 números sem coordenadas explícitas → números de 72pt sobrepondo os labels. **Sempre declarar geometria.**

#### Configuração base do Slide Master

```python
from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN
from pptx.enum.shapes import MSO_SHAPE

prs = Presentation()
prs.slide_width = Inches(10)       # 16:9 widescreen
prs.slide_height = Inches(5.625)

# Paleta SEED canônica — 18 tokens (de paleta.md)
# Primárias
SEED_TURQUESA          = RGBColor(0x11, 0xB0, 0xA0)  # #11B0A0
BRANCO                 = RGBColor(0xFF, 0xFF, 0xFF)  # #FFFFFF

# Secundárias
SEED_AMARELO           = RGBColor(0xFA, 0xD6, 0x1D)  # #FAD61D
SEED_VERDE             = RGBColor(0x09, 0x84, 0x75)  # #098475

# Terciárias
SEED_CINZA             = RGBColor(0x61, 0x76, 0x83)  # #617683
SEED_AMARELO_DOURADO   = RGBColor(0xF9, 0xB1, 0x1C)  # #F9B11C
SEED_AZUL              = RGBColor(0x53, 0xC2, 0xE9)  # #53C2E9
SEED_AZUL_CLARO        = RGBColor(0xEC, 0xF4, 0xFC)  # #ECF4FC

# Derivadas oficiais
SEED_TURQUESA_DEEP     = RGBColor(0x0A, 0x84, 0x78)  # #0a8478
SEED_TURQUESA_SOFT     = RGBColor(0xE6, 0xF7, 0xF5)  # #e6f7f5
SEED_CINZA_LIGHT       = RGBColor(0xF4, 0xF6, 0xF7)  # #f4f6f7
SEED_CINZA_BORDER      = RGBColor(0xE1, 0xE6, 0xEA)  # #e1e6ea
SEED_TEXT              = RGBColor(0x2A, 0x39, 0x42)  # #2a3942
```

#### Slide canvas — sistema de coordenadas

Slide 16:9 = **10 inches × 5.625 inches**. Pensar como grid:

```
0,0────────────────────────────────────10,0
│  Safe zone:                            │
│  0.5" margem em todos os lados         │
│                                        │
│  Área útil: 9.0 × 4.625 inches         │
│                                        │
0,5.625──────────────────────────10,5.625
```

**Safe zones (não negociáveis):**
- Margem mínima esquerda/direita: 0.5 inch
- Margem mínima superior/inferior: 0.5 inch
- Logo no rodapé: respeita 0.4" da borda inferior (não colar na borda)

#### Logo — regras de geometria

**Issue identificado em produção:** logo cortada por bounding box apertada. Resolução: **margem de segurança 10% do lado menor do logo** em todas as direções dentro da bounding box.

```python
# CERTO — bounding box com margem interna implícita
logo_left = Inches(0.5)
logo_top = Inches(0.4)
logo_width = Inches(1.5)   # margem 0.15" implícita
logo_height = Inches(0.45)
slide.shapes.add_picture(LOGO_PATH, logo_left, logo_top, logo_width, logo_height)

# ERRADO — bounding box justa, logo corta na renderização
slide.shapes.add_picture(LOGO_PATH, Inches(0.5), Inches(0.4),
                          Inches(1.2), Inches(0.36))  # justo demais
```

**Tamanhos canônicos de logo por uso:**

| Uso | Variante | Width | Height | Posição |
|---|---|---|---|---|
| Capa (grande, centralizado) | horizontal-fundo-turquesa.svg | 4.0" | 1.2" | center horizontal, top 1.2" |
| Agradecimento (grande, centralizado) | horizontal-fundo-turquesa.svg | 4.0" | 1.2" | center horizontal, top 1.5" |
| Rodapé de slide intermediário | símbolo (vertical-principal — só símbolo) | 0.35" | 0.35" | right 0.5", bottom 0.4" |
| Slide de seção | vertical-fundo-turquesa.svg | 1.5" | 1.5" | bottom-right 0.6", 0.5" |

#### 10 layouts canônicos

##### 1. Capa

**Quando usar:** sempre slide 1.

**Dimensões:**

```python
# Fundo turquesa-deep
bg = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0,
                              prs.slide_width, prs.slide_height)
bg.fill.solid()
bg.fill.fore_color.rgb = SEED_TURQUESA_DEEP
bg.line.fill.background()

# Logo horizontal grande, centralizado superior
logo = slide.shapes.add_picture(LOGO_FUNDO_TURQUESA, Inches(3.0), Inches(1.0),
                                  width=Inches(4.0), height=Inches(1.2))

# Título centralizado
title_box = slide.shapes.add_textbox(Inches(1.0), Inches(2.6),
                                       Inches(8.0), Inches(1.0))
tf = title_box.text_frame
tf.word_wrap = True
p = tf.paragraphs[0]
p.alignment = PP_ALIGN.CENTER
run = p.add_run()
run.text = "Título principal aqui"
run.font.name = "Montserrat"
run.font.size = Pt(44)
run.font.bold = True
run.font.color.rgb = BRANCO

# Subtítulo
sub_box = slide.shapes.add_textbox(Inches(1.0), Inches(3.7),
                                     Inches(8.0), Inches(0.6))
# (mesmo padrão, Pt(22), Light, branco)
```

**Regras:**
- Fundo: turquesa-deep `#0a8478` ou turquesa `#11B0A0`
- Logo: horizontal-fundo-turquesa.svg, 4.0×1.2 inch, centralizado superior
- Título: Montserrat Bold 44-54pt, branco, centralizado
- Subtítulo: Montserrat Light 20-24pt, branco semi-transparente
- Onda decorativa (opcional): SVG turquesa+verde na base do slide
- Sem rodapé (capa é "limpa")

##### 2. Seção / Divisor

**Quando usar:** entre blocos de 3-5 slides, em decks de 15+ slides.

```python
# Fundo turquesa
bg = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0,
                              prs.slide_width, prs.slide_height)
bg.fill.solid()
bg.fill.fore_color.rgb = SEED_TURQUESA

# Número grande à esquerda
num_box = slide.shapes.add_textbox(Inches(0.8), Inches(1.5),
                                     Inches(2.5), Inches(2.5))
# Montserrat Bold 120pt, amarelo

# Título da seção à direita
title_box = slide.shapes.add_textbox(Inches(3.5), Inches(2.2),
                                       Inches(6.0), Inches(1.2))
# Montserrat Bold 36-44pt, branco
```

##### 3. Conteúdo texto

**Default para texto/listas.**

```python
# Fundo branco
bg = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0,
                              prs.slide_width, prs.slide_height)
bg.fill.solid()
bg.fill.fore_color.rgb = BRANCO
bg.line.fill.background()

# Header turquesa horizontal (faixa superior)
header = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0,
                                  prs.slide_width, Inches(0.9))
header.fill.solid()
header.fill.fore_color.rgb = SEED_TURQUESA

# Título dentro do header
title_box = slide.shapes.add_textbox(Inches(0.5), Inches(0.2),
                                       Inches(9.0), Inches(0.5))
# Montserrat Bold 28-32pt, branco

# Body content abaixo do header
body_box = slide.shapes.add_textbox(Inches(0.5), Inches(1.2),
                                      Inches(9.0), Inches(3.8))
# Montserrat Regular 14-18pt, cinza
# Bullets ou parágrafos curtos

# Rodapé fino: símbolo direita + paginação
foot_logo = slide.shapes.add_picture(LOGO_SIMBOLO,
                                       Inches(9.15), Inches(5.25),
                                       Inches(0.35), Inches(0.35))
```

**Regras:**
- **Regra 6×6** — máximo 6 bullets × 6 palavras por bullet
- Margens 0.5" mínimo
- Não bullet-explodir: parágrafos curtos podem ser mais legíveis

##### 4. Dados / Stat callout — **CORRIGIDO**

**Quando usar:** destacar 1 a 3 números.

**Bug histórico:** layouts com múltiplos números sem coordenadas explícitas geravam **overlay** (número de 72pt cobrindo o label). Correção: declarar `left`/`top`/`width`/`height` para CADA elemento, e respeitar o espaço vertical do número (72pt ≈ 1.0 inch).

**Layout canônico para 3 stats (grid horizontal 33/33/33):**

```python
# Fundo branco
bg = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0,
                              prs.slide_width, prs.slide_height)
bg.fill.solid()
bg.fill.fore_color.rgb = BRANCO

# Título do slide (opcional, no topo)
title_box = slide.shapes.add_textbox(Inches(0.5), Inches(0.5),
                                       Inches(9.0), Inches(0.5))
# Montserrat Bold 24pt, turquesa

# Geometria das 3 colunas — IMPORTANTE: cada coluna tem 3 elementos verticais
# (número, linha separadora, label) cada um com seu retângulo distinto.
#
# Largura útil: 10.0 - 0.5 - 0.5 = 9.0 inches (3 colunas de 3.0 cada)
# Topo dos números: 1.7" (deixa espaço pro título acima)
# Altura do número (72pt fonte): 1.2"
# Topo da linha separadora: 3.0"
# Topo do label: 3.2"
# Topo do contexto: 3.8"

col_width = Inches(3.0)
col_lefts = [Inches(0.5), Inches(3.5), Inches(6.5)]

numbers = [("45.000 kWh", "CONSUMO MENSAL", "Indústria média região ES"),
           ("180 kVA", "DEMANDA CONTRATADA", "Grupo A4 cativo"),
           ("R$ 8.500", "ECONOMIA/MÊS", "Após otimização SEED")]

for i, (num, label, contexto) in enumerate(numbers):
    # NÚMERO grande
    n_box = slide.shapes.add_textbox(col_lefts[i], Inches(1.7),
                                       col_width, Inches(1.2))
    n_tf = n_box.text_frame
    n_tf.word_wrap = True
    n_p = n_tf.paragraphs[0]
    n_p.alignment = PP_ALIGN.CENTER
    n_run = n_p.add_run()
    n_run.text = num
    n_run.font.name = "Montserrat"
    n_run.font.size = Pt(48)  # 48-72pt — calibrar pelo tamanho do número
    n_run.font.bold = True
    n_run.font.color.rgb = SEED_TURQUESA

    # SEPARADOR linha curta (opcional, decorativo)
    sep = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE,
                                   col_lefts[i] + Inches(1.25), Inches(3.05),
                                   Inches(0.5), Inches(0.03))
    sep.fill.solid()
    sep.fill.fore_color.rgb = SEED_CINZA_BORDER
    sep.line.fill.background()

    # LABEL UPPERCASE
    l_box = slide.shapes.add_textbox(col_lefts[i], Inches(3.2),
                                       col_width, Inches(0.4))
    l_tf = l_box.text_frame
    l_p = l_tf.paragraphs[0]
    l_p.alignment = PP_ALIGN.CENTER
    l_run = l_p.add_run()
    l_run.text = label
    l_run.font.name = "Montserrat"
    l_run.font.size = Pt(14)
    l_run.font.bold = True
    l_run.font.color.rgb = SEED_CINZA

    # CONTEXTO opcional
    c_box = slide.shapes.add_textbox(col_lefts[i], Inches(3.8),
                                       col_width, Inches(0.5))
    c_tf = c_box.text_frame
    c_p = c_tf.paragraphs[0]
    c_p.alignment = PP_ALIGN.CENTER
    c_run = c_p.add_run()
    c_run.text = contexto
    c_run.font.name = "Montserrat"
    c_run.font.size = Pt(11)
    c_run.font.color.rgb = SEED_CINZA
```

**Tamanho do número por quantidade de stats:**

| Stats | Tamanho do número | Largura por coluna |
|---|---|---|
| 1 stat (slide hero) | 96pt (max 4.0" altura) | 9.0" centralizado |
| 2 stats | 72pt (3.0" altura) | 4.0" cada (gap 1.0") |
| 3 stats | 48-56pt (1.2-1.5" altura) | 3.0" cada |
| 4+ stats | NÃO recomendado — quebrar em 2 slides |

**Anti-padrão verificado:** colocar número 72pt + label + contexto em coluna de 2.0" — texto vaza horizontal. Largura mínima 3.0" pra número 48-72pt.

##### 5. Gráfico

**Quando usar:** dados comparativos, tendências, distribuições.

**Geometria:**
- Título do slide: topo, 0.5" margem, altura 0.6"
- Subtítulo (opcional): topo após título, 0.4"
- Área do gráfico: 8.0×4.0 inches, centralizado, com 0.5" de margem
- Fonte/legenda abaixo: Montserrat Light 10pt, cinza

**Regras:**
- 1 chart por slide (não empilhar 2+)
- **Highlight de insight**: uma cor SEED (geralmente turquesa) destaca o ponto crítico, resto neutro (`SEED_CINZA` ou `SEED_CINZA_BORDER`)
- Não pintar tudo de turquesa — anula o destaque
- Sempre incluir fonte citada (Aneel, EPE, IBGE, etc) no rodapé

##### 6. Foto half-bleed

**Geometria:**
- Imagem: 5.0×5.625 inches (lado direito, full-bleed vertical)
- Conteúdo lado esquerdo: 5.0×5.625 inches, fundo branco
  - Margem interna 0.5"
  - Título Montserrat Bold 24-32pt, turquesa
  - Body Montserrat Regular 14-18pt, cinza
  - Logo discreto no canto inferior do lado de texto

##### 7. Comparativo (2 ou 3 colunas)

**Para 2 colunas (4.5×4.5 inches cada, gap 0.5"):**

```python
# Coluna 1
col1_bg = slide.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE,
                                   Inches(0.5), Inches(1.3),
                                   Inches(4.5), Inches(3.6))
col1_bg.fill.solid()
col1_bg.fill.fore_color.rgb = SEED_TURQUESA_SOFT
col1_bg.line.color.rgb = SEED_CINZA_BORDER

# Header da coluna 1
col1_header = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE,
                                       Inches(0.5), Inches(1.3),
                                       Inches(4.5), Inches(0.7))
col1_header.fill.solid()
col1_header.fill.fore_color.rgb = SEED_TURQUESA

# Título da coluna 1 dentro do header
# ... Montserrat Bold 18-22pt, branco

# Body da coluna 1 — bullets ou parágrafos
# ... Montserrat Regular 12-14pt, cinza ou text-dark

# Coluna 2 (lefts: 5.0", restante igual)
```

##### 8. Citação / Depoimento

```python
# Fundo branco ou turquesa-soft
# Aspas grandes turquesa decorativas — em canto superior esquerdo
aspas_box = slide.shapes.add_textbox(Inches(0.5), Inches(0.6),
                                       Inches(1.0), Inches(1.5))
# " em Montserrat Bold 120pt, turquesa

# Texto da citação centralizado
quote_box = slide.shapes.add_textbox(Inches(1.5), Inches(1.5),
                                       Inches(7.0), Inches(2.5))
# Montserrat Regular 24-28pt, text-dark, itálico opcional

# Atribuição (autor + cargo)
author_box = slide.shapes.add_textbox(Inches(1.5), Inches(4.2),
                                       Inches(7.0), Inches(0.5))
# Montserrat SemiBold 14pt, cinza
```

##### 9. Timeline

**Geometria horizontal:**

```python
# Linha central
line = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE,
                                Inches(0.8), Inches(2.7),
                                Inches(8.4), Inches(0.06))
line.fill.solid()
line.fill.fore_color.rgb = SEED_TURQUESA

# Marcos: círculos numerados sobre a linha
# Para 5 marcos, espaçar a cada 2.0 inches a partir de 0.8"
marcos = ["2016", "2018", "2020", "2023", "2026"]
labels = ["Fundação", "Pri. cliente PJ", "Sede Vitória", "Diagnóstico 360°", "Lançamento ERP"]

for i, (data, lbl) in enumerate(zip(marcos, labels)):
    x = Inches(0.8 + i * 2.0)
    # Círculo
    circle = slide.shapes.add_shape(MSO_SHAPE.OVAL,
                                      x - Inches(0.2), Inches(2.5),
                                      Inches(0.4), Inches(0.4))
    circle.fill.solid()
    circle.fill.fore_color.rgb = SEED_TURQUESA

    # Data (acima ou abaixo, alternar)
    if i % 2 == 0:
        # Acima
        d_box = slide.shapes.add_textbox(x - Inches(0.6), Inches(1.7),
                                           Inches(1.2), Inches(0.3))
        lbl_box = slide.shapes.add_textbox(x - Inches(1.0), Inches(2.0),
                                             Inches(2.0), Inches(0.4))
    else:
        # Abaixo
        d_box = slide.shapes.add_textbox(x - Inches(0.6), Inches(3.0),
                                           Inches(1.2), Inches(0.3))
        lbl_box = slide.shapes.add_textbox(x - Inches(1.0), Inches(3.3),
                                             Inches(2.0), Inches(0.4))
```

##### 10. Agradecimento / Fechamento

**Quando usar:** sempre slide final.

```python
# Fundo turquesa-deep
bg = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0,
                              prs.slide_width, prs.slide_height)
bg.fill.solid()
bg.fill.fore_color.rgb = SEED_TURQUESA_DEEP

# Logo grande centralizado
logo = slide.shapes.add_picture(LOGO_FUNDO_TURQUESA,
                                  Inches(3.0), Inches(1.0),
                                  Inches(4.0), Inches(1.2))

# "Obrigado." ou similar
obg_box = slide.shapes.add_textbox(Inches(1.0), Inches(2.5),
                                     Inches(8.0), Inches(0.9))
# Montserrat Bold 48-64pt, branco, centralizado

# Contato — INCLUI 0800 SEMPRE
contato_box = slide.shapes.add_textbox(Inches(1.0), Inches(3.8),
                                         Inches(8.0), Inches(0.5))
# Montserrat Regular 18pt, branco, centralizado
# Texto: "seed.eng.br · 0800 591 5374"

# Tagline opcional
tagline_box = slide.shapes.add_textbox(Inches(1.0), Inches(4.6),
                                         Inches(8.0), Inches(0.5))
# Indie Flower 24pt, amarelo, centralizado
# Texto: "Provemos Eficiência Energética"
```

**Regras:**
- **0800 591 5374 obrigatório** no slide de fechamento (issue conhecido: decks anteriores foram apenas com site, perdendo canal imediato)
- Logo grande centralizado (não no canto)
- Onda decorativa na base (opcional)

#### Speaker notes — padrão

Quando briefing inclui speaker notes:

```python
slide.notes_slide.notes_text_frame.text = """
Pontos pra falar neste slide:
- [Contexto que apoia o que está visível]
- [Exemplo ou case mencionado em voz]
- [Transição pro próximo slide]
"""
```

Speaker notes são pra Rafael falar, plateia não vê. Permite slide enxuto (1 takeaway visual) com narrativa rica na fala.

#### Restrições visuais (anti-AI-slop, alinhado com `pptx` oficial)

- ❌ Sem accent lines sob títulos (hallmark de slides AI-generated)
- ❌ Sem decorative full-width colored bars como rodapé (rodapé SEED é fino, com símbolo)
- ❌ Sem slides text-only (sempre EEny, ondas, ícone Lucide ou gráfico complementando)
- ❌ Sem cream/beige como fundo (branco ou cores SEED apenas)
- ❌ Sem mais de 1 chart por slide
- ❌ Sem text overflow (validar via QA da `pptx` skill)
- ❌ Sem elementos sem geometria explícita (`left, top, width, height` obrigatórios)
- ❌ Sem logo com bounding box justa (margem 10% interna mínima)
- ❌ Sem stat callout com números 72pt em coluna <3.0" (vaza horizontalmente)

#### Checklist de QA visual após geração

Antes de entregar, verificar nos JPGs renderizados:

- [ ] Logo aparece COMPLETA (não cortada nas bordas da bounding box)
- [ ] Stat callout: NÚMEROS e LABELS não se sobrepõem (verificar 1.5"+ entre topo do número e topo do label)
- [ ] Margens 0.5" respeitadas em todos os lados
- [ ] Nenhum texto vaza da bounding box
- [ ] Rodapé: símbolo SEED no canto direito (não decorative bar)
- [ ] Capa: logo 4.0×1.2" centralizado, não cortado
- [ ] Agradecimento: contém "0800 591 5374"
- [ ] Paleta: cores 100% SEED (18 tokens), zero hex alheio
- [ ] Grafia "SEED engenharia" correta em todos os elementos visíveis

---

## 8. Proposta comercial — boas práticas

> **Origem:** `seed-ds-proposta/references/melhores-praticas-proposta.md` (skill de 2026-05-13, 14652 bytes, MD5 `e6a444447d0134d9c7f5bcbd76fa58db`; cópia preservada em `09-pesquisa/skills-v1-2026-05/referencias/melhores-praticas-proposta.md`) · **Importado em 2026-09-06 sem edição** — só os títulos foram rebaixados dois níveis (código intacto).
>
> **Estado: ⚠ não auditado contra o DS v2** (nenhuma contradição medida automaticamente: sem hex, sem Indie Flower, sem Lovable, sem apelidos do shadcn — a leitura humana ainda não foi feita).

### Melhores práticas — proposta comercial B2B engineering 2026

Reference exclusiva da skill `seed-ds-proposta`. Síntese de práticas estabelecidas no mercado (autoridades + dados de benchmark 2024-2026) aplicáveis aos dois modos da skill (curto Excel + longo Word).

Consultar sempre antes de produzir proposta — princípios, sinais de risco, autoridades.

---

#### Autoridades de referência

Quando o usuário pedir "no estilo de" ou pegar dúvida sobre padrão, reconhecer estas escolas:

| Fonte | Autoridade | Aplicável a |
|---|---|---|
| **Matt Handal** (*Proposal Development Secrets*) | Especialista em proposals engineering — bestseller AEC | Distinção fundamental: scope (o quê) vs approach (como/por quê/qual benefício) |
| **PROLINK** (insurance) | Perspectiva jurídica/risco em proposals engineering | 3 elementos críticos: escopo explícito + cronograma com cláusula de stop-work + assinatura formal |
| **OpenAsset** (DAM construction) | Best practices proposals AEC | 12 tips de proposal writing + template engenharia |
| **Xait** (proposal management) | Technical proposals em contratos formais | Distinção entre cotação ≠ proposta técnica ≠ proposta comercial |
| **SiftHub** | Frameworks de structure | "Every section answers a specific evaluator question: why you, how it works, what's the proof, what's the investment" |
| **Storydoc** | Visual proposals B2B | Templates específicos por setor |
| **Canva** | Design de proposals | Hierarquia visual, consistência |

**Aplicação SEED:**
- **Modo curto (planilha)** → estilo "scope of work" direto, sem narrative bloat. Próximo de cotação técnica + condições comerciais.
- **Modo longo (documento)** → 4 evaluator questions (why you, how, proof, investment) em seções modulares. Núcleo obrigatório responde "how" + "investment"; módulos opcionais respondem "why you" + "proof".

---

#### Dados de benchmark (state of the art 2026)

##### Estrutura e tamanho

- **Proposal length correlation:** propostas B2B engineering ganham com **clareza > volume** — propostas curtas e específicas batem genéricas longas. PROLINK 2024: "unclear scope is a project killer"
- **Read patterns:** sumário executivo é a seção mais lida — quando existe, é onde o decisor passa 60-70% do tempo (SiftHub). Quando proposta passa de 5 páginas, sumário executivo poupa o decisor
- **Cotação vs proposta:** cotação = item de preço (RFQ); proposta = problema + solução + preço + condições (RFP). Confundir é perda de credibilidade
- **Conversão B2B genérica 2026:** taxa média 2.5-4% (lead→deal); top performers 8-15% (ConversionXperts)

##### Elementos que aumentam conversão

- **Personalização** > generic: CTAs personalizados convertem **202% melhor** que genéricos (Martal 2026)
- **Social proof:** testimonials e cases relevantes balançam decisão de **92% dos B2B buyers** (ConversionXperts)
- **Scope explícito + exclusões explícitas:** reduz disputas pós-fechamento e protege juridicamente (PROLINK)
- **Clareza tipográfica:** hierarquia visual (tamanhos, bold, espaçamento) impacta conversão; sloppy proposal cai antes de ler (Canva)
- **Hick's Law:** menos opções aceleram decisão (3-4 packages max no modo longo)

##### Pricing transparency

- **Transparency é decisivo:** "nobody likes hidden fees or fine-print stipulations" (Shopify 2026)
- **Breakdown opcional:** valor total em destaque + detalhamento (serviço/material/projeto) só se ajuda a justificar
- **Forma de pagamento padrão B2B engineering:** 30% assinatura + 25% meio + 45% conclusão (variável conforme escopo)
- **Validade típica:** 7-30 dias — proposta com validade infinita perde urgência

---

#### 7 princípios consolidados (mix das autoridades)

##### 1. Scope vs Approach (Matt Handal)

**Regra:** scope = o que será feito; approach = como/por que/qual benefício. Engenheiros tendem a focar só em scope e perdem oportunidade de diferenciação.

**Bom (scope + approach):**
> Scope: "Diagnóstico energético da planta industrial"
> Approach: "Aplicamos o protocolo SEED Diagnóstico 360° — análise simultânea de qualidade de energia, dimensionamento de demanda, oportunidades fotovoltaicas e regularização. Diferente do diagnóstico setorizado padrão, identifica trade-offs entre frentes de eficiência."

**Aplicação SEED:**
- **Modo curto:** scope dominante (linha por item 1.0/1.1/1.2). Approach implícito ou em "Objetivo"
- **Modo longo:** approach explícito no módulo "Metodologia técnica" (Fase 1-5 do Diagnóstico 360°)

##### 2. 4 evaluator questions (SiftHub)

**Regra:** cada seção responde uma pergunta específica do decisor. Se não responde, vira boilerplate.

| Pergunta | Seção que responde | Modo curto | Modo longo |
|---|---|---|---|
| **Why you?** | Sobre a SEED + cases | implícito (cliente conhece) | módulo opcional |
| **How does it work?** | Escopo + metodologia | bloco ESCOPO | núcleo Escopo + módulo Metodologia |
| **What's the proof?** | Cases + garantias | implícito | módulo Sobre SEED + módulo Garantias |
| **What's the investment?** | Investimento + condições | bloco INVESTIMENTO | núcleo Investimento |

**Aplicação SEED:**
- **Modo curto:** responde 2 perguntas (how + investment) — assume que "why you" e "proof" já foram respondidos antes
- **Modo longo:** responde as 4 perguntas — núcleo cobre how + investment, módulos opcionais cobrem why + proof

##### 3. Escopo explícito + exclusões explícitas (PROLINK)

**Regra:** "An unclear and confusing scope is a project killer" — define com precisão **o que será feito** E **o que NÃO será feito**.

**Estrutura canônica SEED:**

**ESCOPO** (o que está incluso):
- Item numerado (1.0, 1.1, 1.2...)
- Verbo de ação no início ("Instalação...", "Dimensionamento...", "Emissão ART...")
- Específico, não genérico ("Lançamento de cabeamento elétrico 25 metros entre quadro principal e inversor" > "Serviços elétricos")

**EXCLUSÕES** (o que NÃO está incluso):
- Pontos onde cliente normalmente assume incluso e não está
- Serviços de terceiros (pedreiro, andaime, munck) que cliente contrata separado
- Adequações de infraestrutura existente
- "Estimativa apenas — cliente confirma escopo final em vistoria"

**Implicação jurídica:** proposta é prova em caso de disputa. Escopo + exclusões + cláusula de validade são as 3 proteções básicas.

##### 4. Investment com destaque visual (Shopify + Canva)

**Regra:** transparência é decisiva. Investment é o ponto mais lido depois do sumário/escopo — não esconder em mini-tabela.

**Padrão SEED:**

- Valor total em **Montserrat Bold 36pt turquesa**, centralizado, com espaço respirado ao redor
- Descrição inline do que inclui ("Serviço, projeto e material")
- Condições inline curtas ("À vista antecipado · CIF · Validade 7 dias")
- Detalhamento opcional (serviço/material/projeto separados) só se ajuda a justificar

**Anti-padrão:**
- Valor em letra pequena dentro de tabela
- "Sob consulta" no lugar de número
- Forma de pagamento confusa ("conforme combinado")

##### 5. Personalização vs genérico (Martal benchmark 2026)

**Regra:** CTAs e seções personalizados convertem 202% melhor que genéricos. Personalização real = referência a algo específico do cliente.

**Bom (personalizado):**
> "Para a planta da Indústria Cerâmica Vermelha em Anápolis/GO, o consumo atual de 180 kWh demanda subestação de 300 kVA dimensionada para crescimento previsto de 30% em 5 anos."

**Ruim (genérico):**
> "Apresentamos proposta para subestação industrial."

**Aplicação SEED:**
- Modo curto: personalização via título descritivo + cidade/UF + valor calibrado
- Modo longo: personalização via sumário executivo referenciando contexto específico do cliente

##### 6. Hierarquia tipográfica (Canva + Storydoc)

**Regra:** prospect mais provavelmente "browses" antes de "reads". Hierarquia visual decide quem é lido primeiro.

**Hierarquia SEED canônica:**

| Nível | Aplicação | Estilo |
|---|---|---|
| Título principal | Faixa identificação modo curto / capa modo longo | Montserrat Bold 14-28pt turquesa |
| Cabeçalho seção | OBJETIVO/ESCOPO/INVESTIMENTO etc | Montserrat SemiBold 9-11pt UPPERCASE turquesa |
| Item principal escopo | 1.0/2.0/3.0 | Montserrat SemiBold 11pt turquesa |
| Sub-item escopo | 1.1/1.2/2.1 | Montserrat Regular 10pt cinza |
| Valor R$ | Investimento | Montserrat Bold 36pt turquesa |
| Conteúdo de campo | Cliente, contato, observações | Montserrat Regular 11pt text-dark |
| Rodapé | Contato | Montserrat Regular 9pt branco |

**Consistência:** mesma hierarquia em todas as páginas. Trocar fonte/tamanho entre páginas = parece amador.

##### 7. Pagamento + validade + assinatura (PROLINK)

**Regra:** 3 cláusulas mínimas que protegem juridicamente:

1. **Schedule de pagamento explícito** — datas/marcos + valores
2. **Cláusula de stop-work** — direito de parar se pagamento atrasar
3. **Validade da proposta** — após X dias, valor renegociável

**Modo curto SEED:**
- Forma de pagamento: padrão B2B engineering ("À vista antecipado", "30/30/40", "50/50")
- Validade: 7-30 dias declarada
- Stop-work: implícito em "condições comerciais" (modo longo explícita)

**Modo longo SEED:**
- Módulo "Garantias e SLA" pode incluir cláusulas de pagamento detalhadas
- Última página tem linha de aceite (cliente + SEED) com data

---

#### Distinção: cotação ≠ proposta técnica ≠ proposta comercial

Erro frequente: misturar os 3 formatos. Cada um responde a um pedido diferente do cliente.

| Tipo | Cliente pede via | Conteúdo | Skill SEED |
|---|---|---|---|
| **Cotação (quote)** | RFQ — price-driven | Lista de itens + preço, sem solução | Modo CURTO sem objetivo/escopo descritivo |
| **Proposta técnica** | RFP — capability-driven | Metodologia + execução + compliance | Modo LONGO com módulo Metodologia |
| **Proposta comercial** | RFP — solution-driven | Problema + solução + escopo + investimento | Modo LONGO com núcleo + módulos |

**Aplicação SEED:**
- "Manda só o orçamento" → Modo curto enxuto (cotação-like)
- "Cliente novo industrial pediu proposta formal" → Modo longo completo (proposta comercial)
- "Licitação pública, RFP com seções obrigatórias" → Modo longo com TODOS os módulos opcionais

---

#### Arquitetura recomendada por solução SEED

Mapping solução → fichas técnicas SEED + modo recomendado (sugestão, Rafael decide):

| Solução | Ficha técnica | Modo típico | Módulos opcionais comuns |
|---|---|---|---|
| Fotovoltaico residencial PF | solucoes-fotovoltaico.md | CURTO | — (cliente assina direto) |
| Fotovoltaico comercial pequeno (PJ) | solucoes-fotovoltaico.md | CURTO | Garantias (se exigido) |
| Fotovoltaico industrial | solucoes-fotovoltaico.md | LONGO | Sobre SEED + Metodologia + Garantias |
| GMG (gerador) | solucoes-gmg.md | CURTO ou LONGO | Garantias (sempre) |
| SPDA | solucoes-spda.md | CURTO | Metodologia (se projeto novo) |
| Projeto elétrico + ART | solucoes-projetos.md | CURTO ou LONGO | Metodologia + Anexos (ART) |
| Análises/medições | solucoes-analises.md | CURTO | Metodologia (se Diagnóstico 360°) |
| Montagem industrial | solucoes-montagens.md | LONGO | Sobre SEED + Metodologia + Garantias |
| Consultoria / Diagnóstico 360° | solucoes-consultoria.md | LONGO | Sumário + Sobre + Metodologia |

---

#### Anti-padrões verificados em produção (NÃO repetir)

1. **Endereço sede errado** (Rua Duarte Coelho 205, Governador Valadares — conferir empresa.md)
2. **0800 ausente no rodapé/contato** (issue conhecido SEED)
3. **Grafia "SEED Engenharia"** ou "seed engenharia" — sempre "SEED engenharia"
4. **Logo cortada** por bounding box justa — margem 10% interna mínima
5. **Modo curto com narrativa institucional pesada** — vira modo longo mal feito
6. **Modo longo com todas as 14 seções por default** — 80% boilerplate, cliente pula
7. **Decisão automática de modo pela skill** — Rafael perde controle
8. **Escopo genérico** ("Serviços elétricos") — viola PROLINK, expõe juridicamente
9. **Exclusões ausentes** — cliente assume coisas que não estão inclusas, gera disputa
10. **Validade "indefinida"** ou ausente — proposta sem urgência, valor renegociado depois
11. **Valor sem destaque** (escondido em tabela) — viola Shopify/Canva benchmark
12. **Cotação chamada de proposta** — confusão de formato perde credibilidade
13. **Personalização zero** ("Apresentamos proposta") — viola Martal 2026 (202% gap)
14. **Anexos sem propósito** (datasheet de equipamento que cliente não pediu) — inflar boilerplate
15. **Boilerplate institucional repetido** ("Estabelecida em 2016 com missão de...") em proposta para cliente que já conhece a SEED

---

#### Checklist pré-entrega (15 itens)

Antes de entregar proposta SEED (ambos os modos):

- [ ] Modo aplicado é o que Rafael pediu (pergunta no briefing)
- [ ] Código SEED-NNNN-AAAA presente e único
- [ ] Data de emissão correta
- [ ] Dados do cliente conferidos (nome, CPF/CNPJ, cidade/UF, contato)
- [ ] Endereço SEED correto se aparecer (Rua Duarte Coelho 205, Governador Valadares)
- [ ] Logo aparece COMPLETA, sem cortes na bounding box
- [ ] Paleta 100% SEED (18 tokens canônicos), zero hex alheio
- [ ] Tipografia Montserrat declarada (fallback Arial documentado)
- [ ] **Valor de investimento em destaque** (36pt+ turquesa)
- [ ] **0800 591 5374 no rodapé** (modo curto) ou contato/última página (modo longo)
- [ ] **Grafia "SEED engenharia"** em todos os elementos visíveis
- [ ] Escopo numerado e específico (não genérico)
- [ ] Exclusões explícitas (proteção jurídica)
- [ ] Forma de pagamento + validade + frete declarados
- [ ] PDF conferido visualmente (sem overflow, margens 0.5" mín)

---

#### Composição com outras skills

- **`xlsx` oficial** — composição obrigatória no modo curto. Cuida da estrutura técnica do Excel, esta skill cuida da identidade SEED + estrutura comercial
- **`docx` oficial** — composição obrigatória no modo longo. Cuida da estrutura técnica do Word, esta skill cuida da identidade + estrutura modular
- **`pdf` oficial** — manipulação avançada de PDF (assinatura digital, merge de anexos)
- **`seed-ds-mockup`** — mockup de tela visual incluído na proposta (dashboard de projeto, layout do sistema fotovoltaico)
- **`seed-ds-slide`** — apresentação acompanhando proposta (deck pra reunião de fechamento)
- **`seed-ds-mensagem`** — e-mail/WhatsApp acompanhando o envio da proposta ("Segue proposta SEED-0042-2026...")

---

## 9. Proposta comercial — estrutura (maio/2026)

> **Origem:** `seed-ds-proposta/references/estrutura-proposta-seed.md` (skill de 2026-05-13, 15706 bytes, MD5 `584de4715f4e09ef9d16026a0dbc4e9b`; cópia preservada em `09-pesquisa/skills-v1-2026-05/referencias/estrutura-proposta-seed.md`) · **Importado em 2026-09-06 sem edição** — só os títulos foram rebaixados dois níveis (código intacto).
>
> **Estado: ⚠ não auditado contra o DS v2.** Contradições medidas — vale a regra de precedência do cabeçalho: 7 cor(es) em hex — só os tokens do `seed-tokens.json` valem (marca §3, §11).

### Estrutura modular de proposta SEED — 2 modos

Reference exclusiva da skill `seed-ds-proposta`. Define os dois sub-modos da skill: **curto** (Excel + PDF, 1-2 páginas, default operacional) e **longo** (Word + PDF, 4-8 páginas, modular).

**Regra dura:** a skill NUNCA decide sozinha qual modo aplicar. Pergunta no briefing — Rafael decide caso a caso.

---

#### Modo CURTO — Excel + PDF

**Filosofia:** densidade visual, escopo direto, sem overhead institucional. Para cliente que já conhece a SEED, com escopo claro, decisão rápida.

**Saídas:**
- `.xlsx` editável (Rafael ajusta valores depois conforme negociação)
- `.pdf` final (envio ao cliente)

**Páginas:** 1-2 (segunda só se houver tabela de materiais detalhada)

**Estrutura visual canônica** (8 blocos):

```
┌────────────────────────────────────────────────────┐
│  [logo SEED]              SEED-NNNN-AAAA           │  altura ~70px
│                           DD/MM/AAAA               │  fundo branco
├════════════════════════════════════════════════════┤  ← faixa turquesa 11B0A0
│  PROPOSTA · {Título descritivo}                    │  altura ~50px
│  {Tipo de obra} · {Cidade/UF}                      │  texto branco
├────────────────────────────────────────────────────┤
│  CLIENTE                      CONTATO              │  2 colunas
│  {Nome do cliente}            {Telefone}           │  borders flat
│  CPF/CNPJ {número}            {email}              │
│  [A/C: {pessoa} — opcional se PJ]                  │
├─ OBJETIVO ─────────────────────────────────────────┤  ← linha turquesa fina
│  {1-2 frases descritivas}                          │
├─ ESCOPO ───────────────────────────────────────────┤
│  1.  {Item principal — bold turquesa 11pt}         │
│      1.1  {Sub-item — regular cinza 10pt}          │
│      1.2  {...}                                    │
│  2.  {Item principal}                              │
│      2.1  {...}                                    │
├─ OBSERVAÇÕES ──────────────────────────────────────┤
│  • {Observação 1}                                  │
│  • {Observação 2 — destaque se valor estimado}     │
├─ EXCLUSÕES ────────────────────────────────────────┤
│  • {O que NÃO está incluso}                        │
├─ INVESTIMENTO ─────────────────────────────────────┤
│                                                    │
│      R$ {valor}                                    │  número 36pt turquesa
│      {Descrição do que inclui}                     │  10pt cinza
│                                                    │
│      {Forma pagto} · {Frete} · Validade {N} dias   │
├════════════════════════════════════════════════════┤  ← rodapé turquesa-deep
│  SEED engenharia · seed.eng.br · 0800 591 5374     │  texto branco 9pt
└────────────────────────────────────────────────────┘
```

##### Campos do cabeçalho (reformulados)

**Cabeçalho técnico (topo direito):**
- Código SEED-NNNN-AAAA (rastreabilidade ERP)
- Data emissão DD/MM/AAAA

**Faixa de identificação (turquesa):**
- "PROPOSTA · {Título}" — exemplos: "Ampliação Fotovoltaica", "Subestação Industrial 300 kVA", "Diagnóstico 360°"
- "{Tipo} · {Cidade/UF}" — exemplos: "Residencial · Aimorés/MG", "Industrial · Itabira/MG"

**Bloco cliente (2 colunas):**
- CLIENTE: nome + CPF/CNPJ
- CONTATO: telefone + email
- A/C: opcional (só se PJ com interlocutor específico)

##### Página 2 (opcional — materiais)

Quando proposta envolve fornecimento de materiais detalhado:

```
┌─ MATERIAIS ────────────────────────────────────────┐
│  ITEM  PRODUTO                       UN  QNT VALOR │
│  1.1   {Descrição}                   un  XX  R$ X  │
│  1.2   {Descrição}                   kit XX  R$ X  │
│  ...                                               │
│                                  TOTAL    R$ XXX,XX│
└────────────────────────────────────────────────────┘
```

Header turquesa, sem decorative bars, números à direita, descrição à esquerda.

##### Tipografia modo curto

- **Família:** Montserrat (fallback Arial)
- **Logo:** 1.2" largura no topo esquerdo
- **Código + data:** 9pt regular, cinza
- **Faixa turquesa título:** 14pt SemiBold, branco
- **Faixa turquesa subtítulo:** 11pt Regular, branco
- **Labels (CLIENTE/CONTATO):** 9pt SemiBold UPPERCASE, cinza
- **Conteúdo de campos:** 11pt Regular, text-dark
- **Cabeçalho de seção (OBJETIVO/ESCOPO/etc):** 9pt SemiBold UPPERCASE turquesa + linha 1pt turquesa abaixo
- **Item principal escopo (1.0/2.0):** 11pt SemiBold turquesa
- **Sub-item escopo (1.1/1.2):** 10pt Regular cinza
- **Valor investimento:** 36pt Bold turquesa
- **Rodapé:** 9pt Regular branco

##### Cores (paleta SEED canônica)

- Faixa identificação: `--turquesa #11B0A0`
- Rodapé: `--turquesa-deep #0a8478`
- Linhas separadoras de seção: `--turquesa #11B0A0` 1pt
- Texto principal: `--text #2a3942`
- Texto secundário: `--cinza #617683`
- Cabeçalho de seção: `--turquesa #11B0A0`
- Borders flat de tabela materiais: `--cinza-border #e1e6ea`

##### Implementação técnica (openpyxl)

Modo curto usa `openpyxl` (via skill `xlsx` em composição). Pontos críticos:

```python
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment, Border, Side
from openpyxl.drawing.image import Image

# Fonts canônicos
F_TITULO = Font(name='Montserrat', size=14, bold=True, color='FFFFFF')
F_SUBTITULO = Font(name='Montserrat', size=11, color='FFFFFF')
F_SECAO = Font(name='Montserrat', size=9, bold=True, color='11B0A0')
F_LABEL = Font(name='Montserrat', size=9, bold=True, color='617683')
F_CONTEUDO = Font(name='Montserrat', size=11, color='2A3942')
F_ITEM = Font(name='Montserrat', size=11, bold=True, color='11B0A0')
F_SUBITEM = Font(name='Montserrat', size=10, color='617683')
F_VALOR = Font(name='Montserrat', size=36, bold=True, color='11B0A0')
F_RODAPE = Font(name='Montserrat', size=9, color='FFFFFF')

# Fills
FILL_TURQUESA = PatternFill('solid', start_color='11B0A0', end_color='11B0A0')
FILL_TURQUESA_DEEP = PatternFill('solid', start_color='0A8478', end_color='0A8478')

# Border-bottom turquesa pra separar seções
BORDER_SECAO = Border(bottom=Side(style='thin', color='11B0A0'))
```

**Geometria padrão:**
- Página A4 retrato (210×297mm)
- Margens: 0.5 inch (top/bottom/left/right)
- Largura das colunas: usar `column_dimensions` com larguras explícitas
- Logo: inserir via `Image()` posicionado em `A1` com offset

**Conversão pra PDF:** `soffice --headless --convert-to pdf arquivo.xlsx --outdir .` (LibreOffice nativo, fidelidade alta).

---

#### Modo LONGO — Word + PDF

**Filosofia:** estrutura modular, núcleo obrigatório + módulos opcionais. Sem overhead boilerplate. Cliente recebe APENAS as seções que fazem sentido para o caso.

**Saídas:**
- `.docx` editável (skill `docx` cuida da geração técnica)
- `.pdf` final

**Páginas:** 4-8 típico (depende dos módulos acionados)

##### Núcleo obrigatório (4 seções, sempre)

| # | Seção | Função | Páginas |
|---|---|---|---|
| 1 | **Capa** | Identidade SEED + título da proposta + cliente + data + código | 1 |
| 2 | **Escopo do serviço** | O que será feito (numeração 1.0/1.1/1.2 — mesmo formato modo curto) | 1-2 |
| 3 | **Investimento + condições** | Valor + forma de pagamento + validade + frete | 1 |
| 4 | **Próximos passos + aceite** | Cronograma sintético + linha de assinatura | 1 |

##### Módulos opcionais (briefing aciona)

Skill pergunta no briefing: *"Além do núcleo, quais módulos: [ ] sumário [ ] sobre SEED [ ] metodologia [ ] garantias [ ] anexos"*. Rafael marca.

| Módulo | Quando incluir | Páginas |
|---|---|---|
| **Sumário executivo** | Quando proposta passa de 5 páginas — vale resumir no topo (1ª página depois da capa) | 1 |
| **Sobre a SEED** | Quando cliente é novo / primeira proposta da relação | 1 |
| **Metodologia técnica** | Projetos complexos: diagnóstico, dimensionamento detalhado, regulatório | 1-2 |
| **Garantias e SLA** | Contrato vultoso ou cliente exige explicitamente | 1 |
| **Anexos** | Por demanda: ART, datasheets de equipamento, layout, simulação financeira | variável |

##### Capa modo longo (1ª página)

```
┌────────────────────────────────────────────────────┐
│                                                    │
│                                                    │
│            [logo SEED grande centralizado]         │
│                                                    │
│                                                    │
│            PROPOSTA COMERCIAL                      │
│            {Título descritivo}                     │
│                                                    │
│                                                    │
│            Para: {Cliente}                         │
│            Local: {Cidade/UF}                      │
│            Data: DD/MM/AAAA                        │
│            Código: SEED-NNNN-AAAA                  │
│                                                    │
│                                                    │
│            [onda decorativa SEED base]             │
│  SEED engenharia · seed.eng.br · 0800 591 5374     │
└────────────────────────────────────────────────────┘
```

Fundo branco. Logo grande no centro (largura 4"). Título principal Montserrat Bold 28pt turquesa. Subtítulo (título da proposta) Montserrat Regular 20pt text-dark. Dados em Montserrat Regular 12pt cinza. Onda decorativa SEED na base (SVG dos assets). Rodapé fino turquesa-deep com contato.

##### Sumário executivo (módulo)

Estrutura sugerida (1 página):

- **Objetivo** (1 parágrafo): por que a proposta existe
- **Solução proposta** (3 bullets máximo): o que a SEED entrega
- **Investimento e prazo** (2 linhas): valor total + prazo execução
- **Próximos passos** (1 linha): "Aceite até DD/MM/AAAA"

Quando proposta passa de 5 páginas, esse módulo poupa tempo do decisor.

##### Sobre a SEED (módulo)

Conteúdo padrão (1 página):

- 1 parágrafo institucional (de `empresa.md`)
- 3 stats: "10 anos no mercado · 200+ projetos · ES/MG/BA/GO/TO"
- 1 parágrafo sobre diferenciais (técnico + regulatório + suporte)
- 3-4 logos/nomes de clientes referência (com autorização)

**NÃO incluir** se cliente já te conhece — overhead puro.

##### Metodologia técnica (módulo)

Estrutura típica (1-2 páginas):

- **Fase 1 — Diagnóstico** (visita técnica, análise de consumo, identificação de oportunidades)
- **Fase 2 — Dimensionamento** (cálculos, simulação, especificação técnica)
- **Fase 3 — Projeto e regularização** (ART, protocolo concessionária)
- **Fase 4 — Execução** (mobilização, instalação, comissionamento)
- **Fase 5 — Operação assistida** (start-up, monitoramento, treinamento)

Acionar quando o projeto técnico justifica explicar o método (Diagnóstico 360°, projetos industriais complexos, subestações).

##### Garantias e SLA (módulo)

Estrutura típica (1 página):

- Garantia de componentes (módulos, inversores, estrutura) com prazo de fabricante
- Garantia de instalação SEED (12-24 meses, conforme escopo)
- SLA de atendimento (resposta inicial em X horas úteis)
- O&M (Operação e Manutenção) se ofertado

##### Anexos (módulo)

Por demanda — ART, datasheets, layout, simulação financeira PVsyst, ofícios.

##### Investimento + condições (núcleo)

Estrutura (1 página):

```
INVESTIMENTO

    R$ {valor total}
    {Descrição do que inclui}

DETALHAMENTO
    Serviço:          R$ {valor}
    Material:         R$ {valor}
    Projeto:          R$ {valor}
                      ─────────────
    TOTAL:            R$ {valor}

CONDIÇÕES COMERCIAIS
    Forma de pagamento: {À vista antecipado | 50/50 | etc}
    Disponibilidade:    {Imediata | A combinar | dd/mm/aaaa}
    Validade:           {N} dias
    Frete:              {CIF | FOB}
```

Valor total em destaque (Montserrat Bold 36pt turquesa). Detalhamento opcional (depende se escopo separa Serviço/Material/Projeto).

##### Próximos passos + aceite (núcleo)

Estrutura (1 página, sempre a última):

- Cronograma sintético em 4-5 marcos (semanas, não datas absolutas — fica flexível)
- Linha de aceite com nome do cliente + CPF/CNPJ + assinatura + data
- Linha de aceite SEED (Rafael ou responsável comercial)

---

#### Decisão de modo — checklist

Pergunta-chave no briefing: **"Modo curto (1-2 páginas, planilha Excel) ou longo (Word com seções)?"**

Sinais que indicam CURTO (mas Rafael decide):
- Cliente já te conhece (não é primeira proposta)
- Escopo claro, sem complexidade técnica
- Valor de contrato baixo a médio (R$ 30k-300k típico)
- Decisão rápida esperada (validade 7-15 dias)
- Reposta a pedido específico do cliente

Sinais que indicam LONGO (mas Rafael decide):
- Cliente novo precisa do "quem somos"
- Licitação ou processo formal com seções obrigatórias
- Projeto técnico complexo (Diagnóstico 360°, subestação, projeto regulatório)
- Contrato vultoso (acima R$ 300k típico)
- Cliente solicita anexos múltiplos (ART, simulação, layout)

**Skill NÃO infere automaticamente.** Pergunta. Sempre.

---

#### Anti-padrões verificados (não repetir)

1. **Modo curto com narrativa institucional ("a SEED é uma empresa...")** → vira modo longo mal feito
2. **Modo longo com todas as 14 seções por default** → 80% boilerplate, cliente pula
3. **Decisão automática de modo pela skill** → Rafael perde controle, vira surpresa ruim
4. **Modo curto sem código SEED-NNNN-AAAA** → perde rastreabilidade no ERP
5. **Modo curto sem 0800 no rodapé** → perde canal imediato (issue conhecido SEED)
6. **Modo curto com logo gigante quebrando densidade** → logo 1.2" max
7. **Modo curto convertido pra PDF com fontes substituídas** → embeddar Montserrat ou aceitar fallback Arial documentado
8. **Modo longo sem opção de módulos** → vira "tudo ou nada" e perde flexibilidade
9. **Valor R$ sem destaque** (em meio a tabela) → bloco INVESTIMENTO precisa respirar
10. **Grafia "SEED Engenharia"** ou "seed engenharia" → sempre "SEED engenharia"

---

## 10. Mensagens — frameworks de copywriting

> **Origem:** `seed-ds-mensagem/references/frameworks-copywriting-mensagem.md` (skill de 2026-05-13, 12146 bytes, MD5 `214c386e5309f865f65499818e36ba8b`; cópia preservada em `09-pesquisa/skills-v1-2026-05/referencias/frameworks-copywriting-mensagem.md`) · **Importado em 2026-09-06 sem edição** — só os títulos foram rebaixados dois níveis (código intacto).
>
> **Estado: ⚠ não auditado contra o DS v2** (nenhuma contradição medida automaticamente: sem hex, sem Indie Flower, sem Lovable, sem apelidos do shadcn — a leitura humana ainda não foi feita).

### Frameworks de copywriting para mensagens SEED

Reference exclusiva da skill `seed-ds-mensagem`. Cada intenção tem framework subjacente; aplicar conforme o cenário.

#### AIDA — Atenção · Interesse · Desejo · Ação

**Estrutura clássica de copywriting.** Usar em cold outreach completo (e-mail B2B inicial), apresentações de novo produto, anúncios.

**Aplicação em mensagem:**
1. **Atenção** — hook ligado ao destinatário (referência específica, dado relevante pra ele)
2. **Interesse** — problema reconhecido (algo que ele realmente enfrenta)
3. **Desejo** — solução SEED como caminho (sem hard sell)
4. **Ação** — CTA específico e concreto

**Exemplo cold outreach completo (e-mail):**
> Subject: análise de consumo em indústria de móveis
>
> Olá [Nome],
>
> Vi que sua indústria opera com produção contínua em Valadares. (Atenção)
>
> Indústrias de móveis costumam ter 8-12% do custo operacional em energia, e há perdas frequentes em ajustes simples de demanda contratada. (Interesse)
>
> Na SEED engenharia fazemos Diagnóstico 360° pra mapear exatamente essas oportunidades — análise de consumo, identificação de perdas, plano de ação com economia projetada. (Desejo)
>
> Faz sentido conversarmos 20 minutos sobre o que daria pra mapear na sua operação? Posso te ligar amanhã às 10h. (Ação)

#### 3-sentence (Sujan Patel)

**Framework de cold outreach ultra-curto.** 3 sentenças. Funciona muito bem em e-mail B2B inicial.

**Estrutura:**
1. **Introdução breve** — quem é você e por que está escrevendo
2. **Value prop ligada ao prospect** — o que muda especificamente pra ele
3. **CTA simples** — pergunta direta de baixo compromisso

**Exemplo:**
> Subject: eficiência energética indústrias regionais
>
> Olá [Nome], sou Rafael, da SEED engenharia, trabalhando com indústrias da região fazendo Diagnóstico 360° em eficiência energética.
>
> Pra indústrias de móveis em Valadares, costumamos identificar 15-25% de economia anual em ajustes simples de carga e demanda.
>
> Faz sentido 15 minutos de conversa essa semana?

**Quando usar:** primeiro contato com prospect frio, especialmente quando ele não te conhece.

#### PAS — Problem · Agitate · Solve

**Framework de problema-foco.** Usar em follow-up depois de prospect sumir, posts de divulgação focados em dor, anúncios reativos.

**Estrutura:**
1. **Problem** — articular o problema específico que o destinatário enfrenta
2. **Agitate** — destacar por que é frustrante / consequências de continuar sem resolver
3. **Solve** — apresentar solução SEED como resposta direta

**Exemplo WhatsApp follow-up:**
> Olá [Nome], tudo certo?
>
> Te enviei a proposta do GMG quinta passada. Imagino que a semana esteja corrida — proposta longa numa caixa cheia é fácil de perder. (Problem + Agitate leve)
>
> Posso te explicar os 3 pontos centrais por aqui em 5 minutos, ou marcar uma ligação rápida amanhã. O que prefere? (Solve)

**Cuidado:** Agitate em B2B deve ser sutil. Hard agitate ("seu negócio está perdendo dinheiro!") soa manipulador.

#### BAB — Before · After · Bridge

**Framework de transformação.** Usar em apresentação de alternativa, contraproposta, mudança de abordagem.

**Estrutura:**
1. **Before** — como é hoje (estado atual do destinatário)
2. **After** — como poderia ser (estado futuro desejável)
3. **Bridge** — ponte SEED entre os dois (como chegar lá)

**Exemplo e-mail apresentando alternativa:**
> Olá [Nome], obrigado pelo retorno.
>
> Hoje sua conta industrial deve estar em torno de R$ 25-30k/mês com a demanda atual em Grupo A. (Before)
>
> Com sistema fotovoltaico dimensionado pro seu consumo, daria pra reduzir esse valor pra R$ 8-12k/mês, considerando a Lei 14.300, com payback em ~4 anos. (After)
>
> Posso preparar um diagnóstico específico com seus números reais pra te mostrar exatamente os ganhos? Levo 1 semana pra entregar. (Bridge)

#### What → Why → When (crítico / urgente)

**Framework de urgência operacional.** Usar em mensagens críticas: prazo apertado, problema pra resolver, ação concreta requerida.

**Estrutura:**
1. **What** — ação concreta a ser tomada (verbo no início)
2. **Why** — motivo curto (1 frase)
3. **When** — deadline específico

**Exemplo WhatsApp crítico:**
> [Nome], preciso da assinatura do contrato hoje até 17h.
>
> Sem ela, o pedido dos painéis trava na fábrica e atrasa a instalação em 2 semanas.
>
> Posso te enviar pra DocuSign agora se preferir.

**Quando usar:** assuntos que envolvem deadline real e ação concreta. Não usar pra coisas que podem esperar.

#### PPP — Praise · Picture · Push (Sujan Patel / Mailshake)

**Framework de cold outreach reativo a evento positivo do prospect.** Usar quando há trigger event verificável (premiação, expansão, contratação, indicação, lançamento).

**Estrutura:**
1. **Praise** — reconhecer especificamente o evento (sem bajulação genérica)
2. **Picture** — pintar o cenário onde isso costuma criar demanda nova
3. **Push** — CTA simples e contextualizado

**Exemplo cold e-mail SEED:**
> Subject: expansão da linha de cozinhas
>
> Marcelo, vi a notícia da expansão da linha de cozinhas planejadas anunciada em outubro — parabéns pela operação.
>
> Indústrias de móveis que expandem linha costumam descobrir 2-3 meses depois que a demanda contratada e o fator de potência ficaram desajustados (máquinas de borda + prensas puxam diferente do esperado). Conta vem mais alta, multa de FP aparece, ninguém entende a origem.
>
> Posso fazer uma análise das últimas 3 faturas em ~30 minutos pra dizer se vocês estão nesse cenário. Vale uma conversa de 15 minutos esta semana?

**Quando usar:** trigger event verificável + B2B com ciclo médio-longo + você consegue ligar o evento a uma dor técnica plausível. Não usar se o "praise" for genérico ("parabéns pela trajetória da empresa") — fica artificial.

#### Trigger event framework (signal-based)

**Framework de cold outreach baseado em signal específico do destinatário.** É a evolução natural do AIDA quando você tem informação concreta. Reply rate típico **15-25%** vs 1-3% genérico (Autobound 2026 data).

**Estrutura:**
1. **Signal** — o gancho específico (notícia, mudança, problema relatado)
2. **Bridge** — por que esse signal cria demanda na sua área
3. **Proof** — credencial curtíssima (1 frase)
4. **Ask** — pergunta concreta

**Signals que funcionam pro contexto SEED:**
- Expansão de planta industrial (notícia em portal regional)
- Nova unidade ou filial
- Mudança de gestão (novo diretor de operações)
- Aumento de tarifa Cemig/Energisa anunciado
- Estação de pico (verão pra refrigeração industrial, junho pra GMG backup)
- Indicação por cliente comum (warm signal — maior conversão)

**Exemplo:**
> Subject: nova unidade Aimorés
>
> Marcelo, vi que vocês inauguraram a nova unidade em Aimorés mês passado.
>
> Normalmente nessa fase a conta de energia da unidade nova vem 20-30% acima do projetado nos primeiros 6 meses — desajuste de demanda contratada, padrão de entrada subdimensionado, fator de potência ruim. Mexer cedo evita multa.
>
> Na SEED engenharia fazemos diagnóstico das primeiras 3 faturas em 1 semana, sem custo se não houver oportunidade clara.
>
> Vale conversar 15 minutos quarta ou quinta?

**Diferença para PPP:** PPP começa elogiando o evento; trigger event vai direto pro tecnicamente relevante. Use PPP quando o evento é "celebrativo" (prêmio, expansão pública), trigger event quando é "operacional neutro" (mudança de gestão, novo escritório).

#### Estrutura simples (factual, sem framework)

**Quando nenhum framework é necessário:** lembrete, confirmação, resposta factual.

**Exemplos:**
- Lembrete de agendamento: "Olá [Nome], reforçando nossa visita técnica amanhã, 10/05 às 14h, no endereço [X]. Confirma?"
- Confirmação de recebimento: "Recebido, [Nome]. Vou analisar e te respondo até amanhã às 17h."
- Resposta a pergunta factual: "Sim, fazemos manutenção em sistemas fotovoltaicos de outros instaladores também. Posso te enviar nosso pacote de manutenção corretiva?"

Sem framework, mas mantendo: direto, com nome, próximo passo claro.

#### Tabela resumo — qual framework usar quando

| Cenário | Framework | Comprimento típico | Reply rate típico |
|---|---|---|---|
| Cold outreach com trigger event positivo (expansão, prêmio) | **PPP** (Praise-Picture-Push) | 80-120 palavras | 10-18% |
| Cold outreach com signal operacional (nova unidade, mudança gestão, tarifa) | **Trigger event framework** | 90-130 palavras | 15-25% |
| Cold outreach com indicação | **3-sentence (Sujan Patel)** + menção da fonte | 50-80 palavras | 20-35% (warm) |
| Cold outreach sem signal claro (último recurso) | AIDA ou 3-sentence | 60-120 palavras | 1-9% (baixo, considerar não enviar) |
| Follow-up de proposta sem reply | PAS leve + reminder simples | 40-80 palavras | 5-12% |
| Apresentação de alternativa após "não" | BAB | 70-120 palavras | varia |
| Pós-venda cordial | Estrutura simples | 30-60 palavras | n/a |
| Lembrete operacional | Estrutura simples | 20-40 palavras | n/a |
| Crítico / urgente com deadline | What → Why → When | 30-60 palavras | alta (urgência genuína) |
| Decline difícil mantendo porta aberta | BAB (variante "ponte"-alternativa) | 60-100 palavras | n/a |
| **Break-up** (fim de sequência após 5-6 toques sem reply) | Estrutura curta + escassez | 40-60 palavras | ~14% |

Reply rates referenciais: Autobound 2026 benchmark + Sparkle 81k e-mails + Mailshake State of Cold Email 2026. Variam por setor, qualidade da lista, qualidade do signal.

#### Calibragem por canal

- **WhatsApp** — frameworks aplicam, mas comprimento na faixa baixa (40-80 palavras max)
- **E-mail B2B** — frameworks aplicam plenamente, pode ir mais longo
- **Slack interno** — estrutura simples geralmente, frameworks só em mensagens estratégicas
- **SMS** — só estrutura simples ou What → Why → When (160 chars limite)

#### WhatsApp B2B — espectro formal ↔ coloquial

WhatsApp não tem **um** registro. Mesmo dentro de B2B, o tom varia conforme:

##### Mais formal (mais próximo de e-mail)

Aplicar em: **cold outreach inicial · cargo C-level · primeira mensagem de relacionamento · tema sensível · clientes mais tradicionais (indústria pesada, agronegócio tradicional, instituições públicas)**

Características:
- Saudação completa: "Olá, [Nome]." (vírgula após nome, ponto final)
- Sem contrações ("não estou" não vira "tô" / "vou estar" não vira "vou tá")
- Zero emoji
- Despedida explícita: "Atenciosamente, Rafael Sant'Ana · SEED engenharia"
- Frases completas, sem mensagens em "balão picado" (uma frase por mensagem)
- Sem ":)" ou marcadores informais

##### Business casual (padrão)

Aplicar em: **follow-up de relação já iniciada · cliente PJ médio porte · operacional cotidiano · contato 2º ou 3º com o destinatário**

Características:
- Saudação direta: "Oi [Nome], tudo certo?"
- Contrações OK ("tô", "vc" só se ele usa primeiro)
- 1 emoji máximo, contextual, no fim de frase
- Despedida implícita (assinatura WhatsApp do profile basta)
- Frases curtas mas completas

##### Coloquial-próximo

Aplicar em: **cliente PF residencial · relacionamento maduro com PJ pequeno-médio · pós-venda cordial · cliente que iniciou conversa com tom informal**

Características:
- "Oi, [primeiro nome]!" ou só "[primeiro nome], "
- Contrações naturais
- 1-2 emojis pertinentes
- Pode usar áudio/voice transcribed style

##### Como decidir o registro

Olhar 2 sinais antes de escrever:
1. **Última mensagem do destinatário** (se houver): ele usou que registro? Espelhar dele evita dissonância.
2. **Perfil + momento da relação**: cargo C-level + primeiro contato = formal. Pessoa que já mandou áudio rindo = coloquial.

Default conservador quando em dúvida: **business casual**. Subir pra formal se houver sinal de tradicionalismo, descer pra coloquial só se houver sinal explícito de proximidade.

---

## 11. Mensagens — cold outreach

> **Origem:** `seed-ds-mensagem/references/melhores-praticas-cold-outreach.md` (skill de 2026-05-13, 11967 bytes, MD5 `f52d5337fae1a8ada17fda30044d2d46`; cópia preservada em `09-pesquisa/skills-v1-2026-05/referencias/melhores-praticas-cold-outreach.md`) · **Importado em 2026-09-06 sem edição** — só os títulos foram rebaixados dois níveis (código intacto).
>
> **Estado: ⚠ não auditado contra o DS v2** (nenhuma contradição medida automaticamente: sem hex, sem Indie Flower, sem Lovable, sem apelidos do shadcn — a leitura humana ainda não foi feita).

### Melhores práticas — cold outreach e follow-up B2B

Reference exclusiva da skill `seed-ds-mensagem`. Síntese de práticas estabelecidas no mercado B2B (autoridades + dados de benchmark 2024-2026) aplicáveis à realidade SEED engenharia.

Consultar sempre antes de produzir cold outreach (e-mail/WhatsApp inicial), follow-up de proposta sem reply, ou sequência de toques.

---

#### Autoridades de referência no mercado

Quando o usuário pedir "uma mensagem no estilo de [nome]", reconhecer essas escolas:

| Autor | Obra de referência | Especialidade |
|---|---|---|
| **Sujan Patel** | Mailshake / "Mailshake Method" | E-mail outbound em escala, 3-sentence format, signal-based outreach |
| **Jeb Blount** | "Fanatical Prospecting" (2015), "Sales EQ", podcast Sales Gravy | Cadência multi-canal, 30-Day Rule, Law of Replacement, mentalidade de prospecção |
| **Aaron Ross** | "Predictable Revenue" | Outbound sistematizado (modelo Salesforce.com), SDR specialization |
| **Mike Weinberg** | "New Sales. Simplified." | Estrutura de discovery, narrativas que funcionam |
| **Jill Konrath** | "SNAP Selling", "Agile Selling" | Vendas para buyer time-pressed e distraído |
| **Rex Biberston** | The Sales Developers | Templates customizáveis, balanço escala-personalização |

Citar o framework, não a pessoa, salvo se Rafael pedir explicitamente: *"escreve essa mensagem no método Sujan Patel"* → aplicar 3-sentence format.

---

#### Dados de benchmark (cold outreach 2025-2026)

Use para calibrar expectativa e como argumento técnico quando Rafael perguntar "isso vai funcionar?".

##### Reply rates por nível de personalização (Autobound 2026, Belkins, Mailshake)

| Tipo de mensagem | Reply rate típico |
|---|---|
| Sem personalização (batch-and-blast) | 1-3% |
| Personalização básica (nome + cargo + empresa) | 5-9% |
| Personalização avançada (pain point setor + notícia recente) | 9-15% |
| Signal-based (trigger event específico + value prop ajustado) | 15-25% |
| Multi-signal stacked (2-3 sinais + contexto comportamental) | 25-40% |

**Implicação prática:** mensagem genérica não vale o esforço. Cada cold outreach SEED parte de pelo menos UM signal específico do destinatário (notícia, mudança de cargo, expansão, problema técnico relatado, indicação). Sem signal → não envia, **pesquisa primeiro**.

##### Frequência de touches para conversão

- **80% das vendas requerem ≥5 follow-ups** (estudo histórico replicado)
- **44% dos vendedores desistem após 1 follow-up** — gap de oportunidade
- **RAIN Group**: em média **8 touches** pra primeira reunião com prospect frio
- **Break-up email** ("vou parar de incomodar"): **14% reply rate** — maior que touch 4 e 5 da sequência (Optifai/Nutshell data)

**Implicação prática:** quando Rafael diz "o cliente não respondeu, dá pra deixar pra lá?" → resposta padrão é "não, está estatisticamente cedo demais; ainda fazemos mais 2-3 toques antes do break-up".

##### Comprimento ideal

- Cold e-mail B2B: **≤120 palavras** (MarketingProfs, Hubspot, múltiplas fontes)
- WhatsApp B2B: **30-80 palavras** (~10 segundos de leitura)
- Subject line: **3-7 palavras** (4-5 ideal — não 3-5 como antes documentado)
- 1 pergunta por mensagem (2+ perguntas dropa reply rate de 1.81% pra 1.21% — Sparkle data, 81.966 e-mails)

---

#### Princípios consolidados (top 10)

##### 1. Signal-based personalization > generic personalization

Não é "Olá Marcelo, espero que a Aimorés Móveis esteja bem!" (basic). É "Marcelo, vi que vocês anunciaram expansão da linha de cozinhas planejadas em outubro — costuma puxar demanda elétrica significativa por causa das máquinas de borda e prensas" (signal-based).

Signals que funcionam pro contexto SEED:
- Expansão de planta industrial (notícia)
- Nova unidade ou filial
- Mudança de gestão (novo diretor industrial/operações)
- Aumento de tarifa Cemig/Energisa anunciado (gancho regulatório)
- Estação do ano com pico de consumo (verão pra refrigeração, junho pra GMG backup)
- Indicação por cliente comum (warm signal)

##### 2. Sender-led opener > Prospect-heavy opener

**Dados (Sparkle 81k e-mails):**
- "Sou Rafael, da SEED engenharia, trabalhamos com indústrias de móveis..." → **4.46% reply rate**
- "Vi que vocês são uma indústria de móveis em Aimorés..." → **1.80% reply rate**

O prospect precisa **saber QUEM você é nos primeiros 5 segundos**. Abrir com "você" antes de se identificar parece manipulativo / lead-gen automatizado.

**Aplicação SEED:** abrir com nome + papel + área de atuação SEED. Mostrar credencial técnica antes de fazer qualquer pergunta sobre o prospect.

##### 3. Uma ideia, uma pergunta, um CTA

Múltiplas perguntas = decision fatigue = silêncio. CTA "qualquer coisa estou à disposição" não é CTA — é despedida. CTA real responde "o que você quer que ele faça nos próximos 30 segundos".

**Bom CTA:** *"Faz sentido conversarmos 20 minutos sobre o que daria pra mapear na sua operação? Posso te ligar amanhã às 10h ou quinta às 15h."* (Pergunta + 2 opções concretas.)

**CTA pobre:** *"Caso tenha interesse, fico à disposição."* (Coloca toda a responsabilidade no destinatário, que vai escolher silêncio.)

##### 4. Brevidade ganha (≤120 palavras em cold e-mail)

Mensagem longa parece "alguém com tempo de me empurrar tudo isso" — exatamente o oposto da impressão desejada. **Brevidade demonstra respeito ao tempo do destinatário.**

Cut implacável:
- Cumprimento longo → uma linha
- Auto-elogio empresa → cortar
- Múltiplos cases → escolher 1
- Disclaimer "não quero tomar seu tempo" → tomou tempo escrevendo isso
- Despedida triple-verbo ("Aguardo seu retorno, fico no aguardo, atenciosamente") → "Atenciosamente"

##### 5. Subject line — 4-5 palavras, sem caixa alta, sem clickbait

Tipos que funcionam:
- **Trigger event:** "expansão da linha de cozinhas" / "aumento tarifa Cemig"
- **Conexão warm:** "indicado pelo João Silva"
- **Pergunta direta:** "vale 20 minutos sobre eficiência?"
- **Tema específico:** "diagnóstico de fator de potência"

Subjects a evitar:
- "Oportunidade incrível!" (vazio + exclamação)
- "Você não vai querer perder isso" (clickbait)
- "RE: nossa proposta" sem ter havido proposta (bait-and-switch — destrói confiança)
- Caixa alta integral

##### 6. Follow-up: reminder simples > value-add elaborado

**Dado (Sparkle):** reminder bumps simples = 3.63% reply / "value-add" follow-up com novo conteúdo = 1.46%.

Por quê: value-add adiciona fricção ("agora preciso processar nova informação"). Reminder ativa memória sem custo cognitivo.

**Bom follow-up:**
> *"Marcelo, só pra subir na sua caixa. Faz sentido aqueles 20 minutos essa semana?"*

**Follow-up sobrecarregado:**
> *"Marcelo, em complemento à mensagem anterior, segue case completo + apresentação institucional + 3 estudos sobre indústria moveleira + portfolio de clientes que..."*

Reservar value-add pro touch 4-5 quando o prospect já demonstrou algum sinal de interesse.

##### 7. Cadência: 8-12 toques em 17-21 dias

Espaçamento padrão:
- **Toques 1-3:** 2-3 dias entre cada
- **Toques 4-6:** 4-5 dias entre cada
- **Toques 7+:** 7+ dias
- **Break-up** ao final, antes de remover do pipeline ativo

**Aplicação SEED:** quando Rafael pedir "uma mensagem", produzir UMA. Quando pedir "uma sequência" ou "cadência", produzir múltiplas mensagens com espaçamento sugerido entre cada.

##### 8. Break-up email no fim — performa melhor que tentativas intermediárias

Após 5-6 toques sem resposta, enviar break-up:
> *"Marcelo, parece que o momento não é o melhor pra conversa sobre eficiência. Vou pausar contato meu lado. Se mudar o cenário (expansão, projeto novo, conta vindo mais alta), me chama. — Rafael, SEED engenharia."*

**Funciona por dois mecanismos:**
- **Escassez** (vai parar de incomodar → atenção volta)
- **Cortesia** (respeito ao tempo cria reciprocidade)

Reply rate de break-up: ~14% (maior que touches 4 e 5).

##### 9. Multi-canal aumenta resposta (e-mail + WhatsApp + LinkedIn + ligação)

Buyer médio precisa de ~8 toques pra primeira reunião — distribuir esses 8 toques em canais diferentes performa melhor que 8 e-mails no mesmo inbox.

**Cadência sugerida B2B SEED (cliente industrial médio porte):**
- D+0: e-mail cold (subject signal-based)
- D+3: WhatsApp curto (reminder do e-mail)
- D+7: ligação (deixa voicemail se cair)
- D+10: LinkedIn connection request com nota
- D+14: e-mail follow-up com 1 case relevante
- D+18: WhatsApp / ligação
- D+22: break-up email
- D+25+: nurture passivo (newsletter, conteúdo geral)

Esta skill produz cada mensagem individualmente. Sequência completa = trabalho de planejamento + CRM (Pipedrive, Agendor, Reev).

##### 10. Vermelhos absolutos — palavras/frases que matam reply rate

Evitar em qualquer cold outreach:
- "Espero que esteja bem" (vazio)
- "Não vou tomar muito do seu tempo, mas..." (auto-defeat, e já tomou)
- "Oportunidade única / imperdível"
- "Quick question:" como subject (mais usado por scammers atualmente)
- "Como você está?" (genérico)
- "Gostaríamos de apresentar nossa empresa" (centra no remetente)
- "Investimento sem precedentes"
- "Parceria estratégica"
- Verb "alavancar" sem contexto técnico real
- Emoji em primeiro contato B2B C-level

---

#### WhatsApp B2B no contexto brasileiro

Dados específicos pro Brasil (Leadster, Panorama Mobile Time, Opinion Box):

- **95%+** dos brasileiros com smartphone têm WhatsApp instalado
- **62%** dos tomadores de decisão B2B preferem WhatsApp pra comunicação
- **34%** se sentem desconfortáveis com B2B no número pessoal (atenção)
- **Taxa de abertura: ~99%** (vs ~20% e-mail)

##### Regras específicas WhatsApp B2B Brasil

**1. Consentimento explícito (LGPD).** Não enviar mensagem fria pra WhatsApp pessoal sem ter conseguido o número por canal legítimo (lead form, indicação, evento). Na primeira mensagem, **citar de onde veio o contato:**

> *"Olá Marcelo, sou Rafael da SEED engenharia. Conseguimos seu contato pela indicação do João Silva da Cooperativa Agroenergia."*

**2. Identificação completa no primeiro envio.** Nome + empresa + motivo. WhatsApp não tem "subject line" — a primeira linha É o subject. Sem identificação, a pessoa abre, lê "Bom dia, tudo bem?" sem saber quem é, fecha.

**3. Horário comercial 9h-18h dias úteis.** Fora disso = invasão. Exceção: cliente PJ pequeno-médio com relação madura que prefere fim do dia (raro, e ele que sinaliza).

**4. Áudio só se curto (≤30s) e só se Rafael souber que o destinatário aceita áudio.** B2B C-level frequentemente ignora áudios. Default é texto.

**5. Sem "bom dia" isolado.** Mensagem em balão picado ("Bom dia") → ele espera próxima → você manda "Tudo bem?" → ele espera de novo → você manda o conteúdo. Isso ocupa **5 notificações** dele pra dizer o que cabia em 1 mensagem.

**6. Tom intermediário formal/coloquial.** Empático e direto, profissional sem ser excessivamente formal, sem gírias (ver `frameworks-copywriting-mensagem.md` seção "WhatsApp B2B — espectro formal ↔ coloquial").

---

#### Aplicação rápida — checklist pré-envio

Antes de Rafael apertar enviar, mensagem passa por:

- [ ] Pelo menos 1 signal específico do destinatário (não genérico)
- [ ] Sender-led opener (quem você é nos primeiros 5 segundos)
- [ ] 1 ideia central, 1 pergunta, 1 CTA com opção concreta
- [ ] Comprimento dentro do range do canal
- [ ] Subject line 4-5 palavras (e-mail) sem caixa alta nem clickbait
- [ ] Zero palavras-fantasma da seção "vermelhos absolutos"
- [ ] Tom calibrado por destinatário (cargo + relação + momento)
- [ ] LGPD respeitada (consentimento documentado, fonte do contato citada se primeiro envio)
- [ ] Grafia "SEED engenharia" correta
- [ ] Dados factuais SEED (telefone, endereço, e-mail) conferidos contra `empresa.md`

---

## 12. Mockup de ERP — boas práticas

> **Origem:** `seed-ds-mockup/references/melhores-praticas-mockup-erp.md` (skill de 2026-05-13, 12665 bytes, MD5 `cb51e55e7f98c61352f35b2929c636e0`; cópia preservada em `09-pesquisa/skills-v1-2026-05/referencias/melhores-praticas-mockup-erp.md`) · **Importado em 2026-09-06 sem edição** — só os títulos foram rebaixados dois níveis (código intacto).
>
> **Estado: ⚠ não auditado contra o DS v2** (nenhuma contradição medida automaticamente: sem hex, sem Indie Flower, sem Lovable, sem apelidos do shadcn — a leitura humana ainda não foi feita).

### Melhores práticas — mockup ERP/SaaS B2B 2026

Reference exclusiva da skill `seed-ds-mockup` (também consulta-la pela `seed-ds-ui`). Síntese de práticas estabelecidas no mercado (autoridades + dados de benchmark 2024-2026) aplicáveis ao contexto ERP SEED.

Consultar sempre antes de produzir mockup de feature do ERP, dashboard, listagem, modal, ou tela complexa — princípios + escolhas de design direction.

---

#### Autoridades de referência

Quando o usuário pedir "no estilo de" ou "como [produto]", reconhecer estas escolas:

| Produto / Autor | Especialidade | Estilo de dashboard |
|---|---|---|
| **Linear** | Precision & density — power users que vivem na ferramenta | Tight spacing, monocromático, information-forward, base grid 4px, borders-only flat. **Issue list pattern** (lista densa em vez de cards) |
| **Notion** | Warmth & approachability — colaboração, content-first | Generous spacing, soft shadows, friendly colors, hierarquia tipográfica forte. **Database views** (tabelas/listas configuráveis) |
| **Stripe** | Sophistication & trust — fintech, dados sensíveis | Cool tones, layered shadows, financial gravitas. **Progressive disclosure** (top-level KPIs visíveis, detalhe a 2 cliques) |
| **Vercel** | Right data, zero noise | Black-and-white precision, Geist font, deployment overview minimalista |
| **Mixpanel / Amplitude** | Analytics — drill-down profundo | Interface nunca mostra mais do que foi pedido. Drill-down explícito |
| **HubSpot** | Multi-persona — sales/marketing/admin simultâneos | **Role-based interfaces** — sales rep vê pipeline, marketing vê campanhas, admin vê billing |
| **Asana / ClickUp** | Task/project management — múltiplas visualizações | Lista/Quadro/Calendário/Gantt no mesmo dataset. Adaptive interface |
| **Edward Tufte** | Data-ink ratio principle | Cada pixel deve informar. Nada decorativo |
| **Nielsen Norman Group** | Hierarquia visual baseada em pesquisa | F-pattern (top-left = mais crítico, top row = primárias, left column = secundárias) |

**Aplicação SEED:** o ERP SEED é B2B engineering — clientes técnicos que vão **viver na ferramenta**. Direção mais aderente: **Linear (precision/density) + Notion (warmth quando houver EEny e contextos amigáveis) = híbrido SEED**. Stripe inspira nas telas financeiras (propostas, faturamento).

---

#### Dados de benchmark (UX enterprise 2024-2026)

##### Layout e densidade

- **Sidebar 240-280px** = padrão dominante 2026 (Linear, Notion, Vercel, HubSpot, Asana) — **confirma decisão SEED**
- **4-6 KPIs above the fold** é regra (Stripe, Vercel) — não 10+
- **F-pattern** (Nielsen Norman): top-left = métrica mais crítica, top row = primárias, left column = secundárias
- **Information density > whitespace** em 2026 — Linear, Notion, Superhuman, Stripe ganham ground com interfaces densas (audiência B2B é power user)
- **22.4% dos desktops** ainda em 1366px (StatCounter 2026) — sidebar de 280px + main de 1086px funciona; topbar com tabs colapsando vira hamburger nesses devices

##### Estados de componente

- **Skeleton screens > spinners**: reduz percepção de load em 20-30% (Lukew + Google Web Vitals)
- **3 estados obrigatórios por componente**: Loading (skeleton matching layout) + Empty (illustration + 1 frase + CTA) + Error (banner com retry, não full-page)
- Stripe/Linear/Notion: shimmer animation nos skeletons

##### Data display

- **Tabelas/listas > cards** para power users (Linear issue list, Notion database views)
- **Bar charts > pie charts** (NN/g, basicamente sempre)
- **Pagination ou virtualização** em datasets >100 rows (não renderizar tudo)
- **Drill-down explícito** > "show all" automático (Mixpanel pattern)

##### Onboarding e adoption

- **66% dos B2B customers** param de comprar após onboarding ruim (Onething Design 2026)
- **Just-in-Time onboarding** > tour de 500 páginas inicial (tooltips contextuais quando user tenta a task)
- **Role-aware onboarding**: pergunta o role no signup, mostra defaults relevantes
- **Time-to-value** = métrica mais importante de UX em SaaS

---

#### 4 personalidades de UI enterprise (escolher uma como direção)

Antes de escrever qualquer componente, **comprometer-se com uma direção**:

##### Precision & Density (Linear, Raycast)

- Tight spacing, monochrome, information-forward
- Para power users que vivem na ferramenta
- Borders-only flat (zero shadow, definição via borda)
- Base grid 4px, scale limitada (4, 8, 12, 16, 24, 32, 48)

##### Warmth & Approachability (Notion, Coda)

- Generous spacing, soft shadows, friendly colors
- Para produtos que querem feel humano
- Hierarquia tipográfica forte
- Subtle single shadows (`0 1px 3px rgba(0,0,0,0.08)`)

##### Sophistication & Trust (Stripe, Mercury)

- Cool tones, layered depth, financial gravitas
- Para produtos que lidam com dinheiro ou dados sensíveis
- Layered shadows (múltiplas camadas pra depth real)
- Progressive disclosure forte

##### Boldness & Clarity

- High contrast, dramatic negative space, confident typography
- Para produtos que querem feel moderno e decisivo

---

#### Direção de design SEED (escolha documentada)

**Direção primária do ERP SEED: Precision & Density (Linear-like) + Warmth localizado**

Justificativa:
- Cliente típico SEED é técnico (engenheiro, gestor industrial) — quer densidade, scan rápido, dados visíveis
- ERP é ferramenta de trabalho diária — eficiência > delight
- Mas SEED tem EEny + tom acolhedor — não pode ser "frio total" como Linear
- Compromisso: **Linear-like estrutura (densidade, tipografia, borders flat)** + **Notion-like warmth pontual (EEny em empty states, microcopy acolhedor, turquesa em vez de cinza puro)**

Implicações práticas:
- **Borders-only flat** como default em tabelas e cards (sem shadows pesadas)
- **Subtle single shadow** (`0 1px 3px rgba(0,0,0,0.06)`) em hover de cards clicáveis
- Spacing base 4px (4, 8, 12, 16, 24, 32, 48) — alinhado com Linear
- Tabelas em vez de cards para listagens (cliente, proposta, contrato)
- 4-5 KPIs above the fold em dashboards (não 10+)
- F-pattern: indicador crítico top-left, primárias top row
- EEny + microcopy acolhedor apenas em empty states / onboarding / mensagens de sucesso

---

#### 7 princípios consolidados pra mockup ERP SEED

##### 1. F-pattern hierarchy

Top-left = métrica mais crítica do dashboard. Top row = 3-5 KPIs primários. Left column = secundárias. Quando dashboard tiver mais que isso, **considerar 2 dashboards** (por papel) em vez de inflar 1.

**Anti-padrão:** "Welcome, Rafael!" ocupando o top-left. Esse espaço é caro demais pra mensagem.

##### 2. Density > whitespace (power user wins)

Audiência ERP SEED é power user — quer dados, não breathing room. **Information density bem hierarquizada reduz cognitive strain**, ao contrário do que minimalismo dos 2010 sugeria.

Regra prática:
- Antes de remover elemento, perguntar: "ele pode ficar menor, com menos contraste, ou reposicionado?"
- Tamanho/cor/posição despriorizam sem remover

##### 3. Progressive disclosure (Stripe pattern)

Top-level = 3-4 números que o decisor precisa ver imediatamente.
Cada nível adicional de detalhe = **clique intencional**, nunca automaticamente exposto.
Detalhe a no máximo 2 cliques de qualquer KPI.

**Aplicação SEED:** dashboard de cliente mostra resumo (contratos ativos, valor total, última interação) → clique abre detalhe completo. Não inflar resumo com 15 campos.

##### 4. Role-based interface (HubSpot pattern)

Mesma plataforma, defaults diferentes por papel:
- Rafael (CEO) vê pipeline + KPIs financeiros
- Engenheiro vê projetos ativos + ARTs pendentes
- Comercial vê propostas + follow-ups

**Aplicação SEED:** quando criar mockup de dashboard, perguntar pra qual papel. Se não souber, default = CEO/diretor (visão executiva).

##### 5. Skeleton > spinner (perceived performance)

Loading state SEMPRE é skeleton que **matches o layout final**, não spinner genérico. Reduz percepção de load 20-30%.

Empty state SEMPRE tem 3 partes: illustration (EEny pose 06 + ondas SEED) + 1 frase + CTA.

Error state SEMPRE é banner inline com retry, não tela cheia.

##### 6. Tabelas > cards (B2B power users)

Para listagens densas (clientes, propostas, contratos, projetos), **tabela** é o default. Cards só quando atributos são heterogêneos ou navegação rápida em mobile.

Linear issue list + Notion database views = exemplos canônicos. Tabela do ERP SEED segue mesmo padrão (`componentes-ui-seed.md` #7).

##### 7. Coerência tipográfica e de spacing

**Spacing scale fixa** (4, 8, 12, 16, 24, 32, 48) — nada arbitrário. Tudo snapando.

**Typography scale fixa** (11, 13, 16, 18, 20, 24, 30, 36) — nada entre.

Trocar layout/spacing/fonts entre páginas do mesmo ERP = parece amador. **Consistência > criatividade local.**

---

#### Padrões de density information hierarchy

Quando precisar mostrar muito dado num espaço pequeno (caso comum em ERP), aplicar nessa ordem:

1. **Hierarquia tipográfica:** maior = mais importante. Bold > regular. `--text` > `--cinza`.
2. **Hierarquia espacial:** top-left > top-right > center > bottom.
3. **Hierarquia cromática:** `--turquesa` ou `--amarelo` em CTA primário, `--cinza` em metadata.
4. **Hierarquia de contraste:** dado primário em `--text`, secundário em `--cinza`, terciário em `--cinza-light` (quase invisível).
5. **Spacing como agrupamento:** elementos relacionados próximos (4-8px), grupos diferentes distantes (24-32px).

**Regra de ouro:** se tudo está chamando atenção, nada está. **Hierarquia é prioridade explícita.**

---

#### Anti-padrões verificados em produção (NÃO repetir)

1. **Welcome message ocupando top-left do dashboard** → desperdiça F-pattern
2. **10+ KPIs above the fold** → user não consegue priorizar
3. **Cards pra listagem densa** → quando tabela faria scan 3× mais rápido
4. **Spinner em vez de skeleton** → percepção de lentidão pior
5. **Empty state vazio sem CTA** → user fica sem saber o que fazer
6. **Error state tela cheia** → quebra contexto, parece bug
7. **Spacing arbitrário** (13px, 22px, 7px) → quebra ritmo visual
8. **Múltiplas direções de design no mesmo ERP** (uma página Linear, outra Stripe) → parece Frankenstein
9. **One-size-fits-all dashboard** → 4 papéis diferentes vendo o mesmo, ninguém satisfeito
10. **Density sem hierarquia** → vira cluttered, não informativo
11. **Importar cores Tailwind padrão** (purple, blue, orange, amber) → quebra DS SEED
12. **Touch target <44×44px** em mobile → falha WCAG 2.2 AA

---

#### Checklist pré-entrega (12 itens)

Antes de entregar mockup do ERP SEED:

- [ ] Direção de design declarada (Precision & Density + warmth pontual = default SEED)
- [ ] F-pattern aplicado: top-left = mais crítico, top row = 3-5 KPIs primários
- [ ] Density > whitespace (não inflar com breathing room sem razão)
- [ ] Progressive disclosure: top-level limpo, detalhe a clique
- [ ] Role declarado (CEO/comercial/engenheiro) ou default executivo
- [ ] 3 estados por componente: loading skeleton + empty acolhedor + error inline
- [ ] Tabela em vez de cards pra listagem densa (default ERP SEED)
- [ ] Spacing scale 4pt rigorosa (4, 8, 12, 16, 24, 32, 48)
- [ ] Typography scale fixa (11, 13, 16, 18, 20, 24, 30, 36)
- [ ] Paleta 100% SEED (18 tokens — ver `paleta.md`), zero Tailwind padrão
- [ ] Touch targets ≥44×44px em mobile
- [ ] Grafia "SEED engenharia" correta em todos os elementos visíveis

---

#### Quando o mockup é só "componente isolado"

Princípios continuam valendo (paleta, tipografia, spacing scale, hierarquia). Mas:
- Não precisa F-pattern (componente isolado, sem contexto)
- Não precisa role (componente é universal)
- Não precisa empty/loading/error se foco é demonstrar o estado "happy path"

Skill calibra: se briefing diz "botão de exportar", entrega só o botão. Se diz "tela de exportação", entrega tela completa com estados.

---

#### Composição com outras skills

- **`seed-ds-proposta`** — mockup vai pra Word/PDF. Stack: inline styles obrigatório (não Tailwind CDN). Export PNG 2x retina.
- **`seed-ds-slide`** — mockup vai pra PPTX. Stack: inline styles + dimensões 16:9 ou similar. Export PNG.
- **`seed-ds-post`** — mockup vai pra Instagram. Stack: SVG puro ou inline styles dentro de device frame. Dimensões 1080×1080 ou 1080×1350.
- **`seed-ds-carrossel`** — múltiplos mockups em sequência. Coerência visual entre slides obrigatória.
- **`seed-ds-ui`** — workflow comum: mockup aprovado → `seed-ds-ui` implementa código React. Mockup é descartável; código vive.

---

## 13. Mockup de ERP — dados sintéticos

> **Origem:** `seed-ds-mockup/references/dados-sinteticos-erp.md` (skill de 2026-05-13, 9975 bytes, MD5 `575482d5f10be5e2dd3f4e9400c5e844`; cópia preservada em `09-pesquisa/skills-v1-2026-05/referencias/dados-sinteticos-erp.md`) · **Importado em 2026-09-06 sem edição** — só os títulos foram rebaixados dois níveis (código intacto).
>
> **Estado: ⚠ não auditado contra o DS v2** (nenhuma contradição medida automaticamente: sem hex, sem Indie Flower, sem Lovable, sem apelidos do shadcn — a leitura humana ainda não foi feita).

### Dados sintéticos para mockups ERP SEED

Reference exclusiva da skill `seed-ds-mockup` (também útil pra `seed-ds-ui`). Catálogo de dados sintéticos plausíveis para popular mockups do ERP SEED — coerentes com o perfil de cliente B2B industrial da empresa.

**Por que importa:** mockup com "João Silva · Empresa LTDA · São Paulo/SP" parece template. Mockup com "Indústria Mineradora Vale do Rio Doce · Itabira/MG · contrato de R$ 850.000" parece o ERP real.

Quando o briefing **não** especifica dados reais, usar este catálogo. Quando o briefing tem dados reais ("vou apresentar pra Padaria X"), preferir os dados reais sempre.

---

#### Perfil de cliente típico da SEED

A SEED atende **clientes B2B industriais/comerciais de médio e grande porte** nas regiões ES/MG/BA + estados vizinhos. Perfil canônico:

- **Setores:** indústria pesada (mineração, frigorífico, cerâmica, moveleira, madereira), agronegócio (cooperativas), construção, energia, distribuição, saúde (hospitais grandes), educação (universidades), grande varejo (supermercados regionais)
- **Porte:** demanda contratada Grupo A (a partir de ~75 kW), faturamento R$ 50M-2Bi/ano
- **Localização:** Espírito Santo (capixaba), Minas Gerais (Vale do Aço, Vale do Rio Doce, Triângulo), Bahia (oeste e centro-norte), Goiás (Sudoeste, Sul), Tocantins
- **Necessidades típicas:** fotovoltaico 50-500 kWp, subestação MT, GMG backup, eficiência energética, ART, consultoria regulatória

PF (residencial) é minoria — só em mockup pra mostrar caso isolado ou tela de cadastro genérico.

---

#### Empresas sintéticas B2B (catálogo)

Distribuído por setor e UF da operação SEED. Cada empresa tem nome plausível regional, CNPJ formatado, cidade, segmento e perfil de valor.

##### Mineração e Siderurgia (segment-danger / cinza-escuro)

| Nome | CNPJ | Cidade/UF | Valor típico |
|---|---|---|---|
| Indústria Mineradora Vale do Rio Doce S.A. | 12.345.678/0001-90 | Itabira/MG | R$ 1.250.000 |
| Mineradora Capixaba Ltda | 23.456.789/0001-01 | Cachoeiro de Itapemirim/ES | R$ 480.000 |
| Siderúrgica Norte de Minas S.A. | 34.567.890/0001-12 | Sete Lagoas/MG | R$ 920.000 |
| Cerâmica Vermelha Norte S.A. | 45.678.901/0001-23 | Anápolis/GO | R$ 380.000 |

##### Agronegócio (segment-verde)

| Nome | CNPJ | Cidade/UF | Valor típico |
|---|---|---|---|
| Cooperativa Agroenergia Bahia | 56.789.012/0001-34 | Barreiras/BA | R$ 720.000 |
| Cooperativa Vale do Coribe | 67.890.123/0001-45 | São Félix do Coribe/BA | R$ 290.000 |
| Frigorífico Boi Forte S.A. | 78.901.234/0001-56 | Patos de Minas/MG | R$ 540.000 |
| Frigorífico Vale Capixaba Ltda | 89.012.345/0001-67 | Linhares/ES | R$ 410.000 |
| Cafeicultura Caparaó Ltda | 90.123.456/0001-78 | Manhuaçu/MG | R$ 215.000 |

##### Indústria Moveleira / Madereira (segment-amarelo)

| Nome | CNPJ | Cidade/UF | Valor típico |
|---|---|---|---|
| Indústria Moveleira Cedro Ltda | 01.234.567/0001-89 | Aimorés/MG | R$ 320.000 |
| Madereira Litoral Capixaba S.A. | 12.345.678/0001-92 | São Mateus/ES | R$ 480.000 |
| Móveis Aimorés Linha Premium Ltda | 23.456.789/0001-03 | Aimorés/MG | R$ 195.000 |

##### Saúde (segment-azul)

| Nome | CNPJ | Cidade/UF | Valor típico |
|---|---|---|---|
| Hospital Santa Casa de Vitória | 34.567.890/0001-14 | Vitória/ES | R$ 680.000 |
| Hospital Regional do Vale do Aço | 45.678.901/0001-25 | Ipatinga/MG | R$ 750.000 |
| Hospital São Vicente Valadares | 56.789.012/0001-36 | Governador Valadares/MG | R$ 420.000 |

##### Energia e Solar (segment-turquesa)

| Nome | CNPJ | Cidade/UF | Valor típico |
|---|---|---|---|
| Distribuidora Solar Nordeste Ltda | 67.890.123/0001-47 | Salvador/BA | R$ 890.000 |
| Energia Verde Capixaba S.A. | 78.901.234/0001-58 | Vila Velha/ES | R$ 530.000 |

##### Construção (segment-amarelo)

| Nome | CNPJ | Cidade/UF | Valor típico |
|---|---|---|---|
| Construtora Norte Capixaba S.A. | 89.012.345/0001-69 | Baixo Guandu/ES | R$ 620.000 |
| Construtora Vale Industrial Ltda | 90.123.456/0001-70 | Governador Valadares/MG | R$ 285.000 |

##### Varejo e Distribuição (segment-cinza)

| Nome | CNPJ | Cidade/UF | Valor típico |
|---|---|---|---|
| Supermercados Regional Capixaba S.A. | 01.234.567/0001-81 | Cariacica/ES | R$ 410.000 |
| Distribuidora Centro-Oeste de Minas Ltda | 12.345.678/0001-83 | Divinópolis/MG | R$ 320.000 |
| Atacado Sertão Bahia Ltda | 23.456.789/0001-94 | Vitória da Conquista/BA | R$ 245.000 |

##### Padarias / Pequeno comércio (segment-amarelo, valor menor)

| Nome | CNPJ | Cidade/UF | Valor típico |
|---|---|---|---|
| Padaria Pão de Cada Dia Ltda | 34.567.890/0001-05 | Aimorés/MG | R$ 45.000 |
| Padaria Estrela do Vale ME | 45.678.901/0001-16 | Governador Valadares/MG | R$ 38.000 |
| Padaria São José Vitória ME | 56.789.012/0001-27 | Vitória/ES | R$ 52.000 |

---

#### Clientes PF (residenciais — uso restrito)

PF é minoria nos mockups. Usar apenas quando o briefing pede explicitamente "cliente residencial" ou quando a tela é de cadastro genérico onde precisa misturar PF/PJ.

| Nome | CPF | Cidade/UF | Valor típico |
|---|---|---|---|
| Rafael Sant'Ana | 123.456.789-01 | Governador Valadares/MG | R$ 28.000 |
| Marcelo Reis Coelho | 234.567.890-12 | Aimorés/MG | R$ 35.000 |
| Juliana Carvalho Silva | 345.678.901-23 | Vitória/ES | R$ 42.000 |
| Ana Paula Mendes | 456.789.012-34 | Baixo Guandu/ES | R$ 25.000 |
| Brenda Oliveira Castro | 567.890.123-45 | São Félix do Coribe/BA | R$ 19.000 |
| João Carvalho Silva | 678.901.234-56 | Salvador/BA | R$ 33.000 |
| Maria Conceição Souza | 789.012.345-67 | Patos de Minas/MG | R$ 22.000 |

---

#### Equipe SEED (responsáveis nos mockups)

Pra mockups com avatares de responsáveis, usar nomes plausíveis da equipe. Rafael é o CEO real. Os outros são sintéticos.

| Nome | Cargo | Iniciais | Cor avatar (hash) |
|---|---|---|---|
| **Rafael Sant'Ana** | CEO | RS | `--turquesa` |
| Marcelo Reis | Diretor Comercial | MR | `--amarelo-dourado` |
| Juliana Carvalho | Gerente de Projetos | JC | `--azul` |
| Ana Paula Mendes | Engenheira Sênior | AM | `--verde` |
| Brenda Castro | Coordenadora Operacional | BC | `--danger-text` |

**Regra de atribuição:** mesma pessoa = mesma cor sempre (hash determinístico). 5 cores SEED rotacionando.

---

#### Faixas de valores realistas

Para popular campos R$ em mockups com plausibilidade:

| Tipo de projeto | Faixa | Comentário |
|---|---|---|
| Fotovoltaico residencial PF | R$ 15.000 - R$ 80.000 | 3-10 kWp |
| Fotovoltaico comercial pequeno (PJ) | R$ 50.000 - R$ 250.000 | 10-50 kWp |
| Fotovoltaico industrial médio | R$ 250.000 - R$ 800.000 | 50-200 kWp |
| Fotovoltaico industrial grande | R$ 800.000 - R$ 3.000.000 | 200-700 kWp |
| Subestação MT 75-300 kVA | R$ 180.000 - R$ 650.000 | — |
| GMG diesel 50-250 kVA | R$ 85.000 - R$ 320.000 | — |
| Diagnóstico 360° | R$ 18.000 - R$ 65.000 | conforme porte |
| Projeto elétrico + ART | R$ 12.000 - R$ 95.000 | conforme escopo |
| Consultoria regulatória | R$ 25.000 - R$ 180.000 | conforme contrato |

**Regra de plausibilidade:** valor não pode estar "redondo demais" (R$ 100.000 exato parece fake). Usar R$ 87.450 / R$ 124.300 / R$ 542.800.

---

#### Datas e timestamps plausíveis

Para campos "Última interação" / "Criado em" / "Atualizado em":

- **Hoje:** "há X horas" (entre 1-23h)
- **Ontem:** "ontem às HH:MM"
- **Esta semana:** "há X dias" (entre 2-6)
- **Este mês:** "há X semanas" (entre 1-3)
- **Mais antigo:** "há X meses" (entre 1-11)
- **Inativo há muito tempo:** "há X anos" (entre 1-3)

Distribuição realista em listagem de 8-15 clientes:
- 60% recentes (hoje a esta semana)
- 30% médio prazo (este mês)
- 10% antigos (meses/anos)

---

#### Códigos de proposta / contratos

Formato canônico SEED: `SEED-NNNN-AAAA`

Exemplos:
- SEED-0042-2026 (proposta #42 de 2026)
- SEED-0128-2025 (proposta #128 de 2025)
- SEED-CT-0015-2026 (contrato #15 de 2026 — prefixo CT pra distinguir)

Em mockup com lista de propostas, sequenciar de forma plausível (gap de 1-3 entre números consecutivos, alguns mais antigos misturados).

---

#### Métricas técnicas de eficiência energética

Para mockups de dashboard / Diagnóstico 360°:

| Métrica | Faixa típica industrial | Faixa típica residencial |
|---|---|---|
| Consumo médio mensal | 25.000 - 250.000 kWh | 200 - 1.500 kWh |
| Demanda contratada | 100 - 800 kW | n/a |
| Fator de potência | 0,78 - 0,98 (média 0,89) | n/a (PF=1 maioria) |
| Tarifa média | R$ 0,42 - R$ 0,95/kWh | R$ 0,72 - R$ 1,05/kWh |
| Multa FP típica | R$ 800 - R$ 8.500/mês | n/a |
| HSP (Horas Sol Pleno) | 4,8 - 5,8 kWh/m²/dia | mesmo |
| Performance Ratio | 0,75 - 0,82 | mesmo |
| Degradação anual módulos | 0,4 - 0,6% | mesmo |
| Payback típico fotovoltaico | 3-7 anos | 4-8 anos |

---

#### Hashtags e termos de busca em mockup de feed

Quando mockar tela de "Atividade" / "Feed" / "Notificações":

- "Nova proposta SEED-0042-2026 enviada pra Marcelo Reis"
- "Cobertura solar 78% confirmada em [cliente]"
- "Vistoria Cemig aprovada — projeto SEED-0028-2026"
- "ART emitida pelo Eng. [nome]"
- "Contrato CT-0015-2026 assinado"
- "Alerta: fator de potência abaixo de 0,92 em [cliente]"
- "Marcelo Reis comentou no projeto [cliente]"

---

#### Anti-padrões de dados sintéticos

1. **"Empresa XYZ Ltda" / "Cliente 1, 2, 3"** → genérico demais, parece template
2. **"São Paulo/SP" / "Rio de Janeiro/RJ"** → SEED não opera nesses estados (predominantemente). Usar ES/MG/BA/GO/TO
3. **Valores redondos** (R$ 100.000 exato) → parece fake. Usar R$ 87.450
4. **CNPJ inválido** ou inventado sem checksum plausível → conferir formato
5. **Todos os clientes "ATIVO"** → distribuir realista (60% ativo, 25% prospect, 15% inativo numa listagem)
6. **Nomes anglo-saxões** ("John Smith", "Sarah Johnson") → contexto BR
7. **Setores SaaS/Tech** quando o cliente é industrial → SEED é engenharia elétrica, clientes são indústria

---

## 14. Código React com o design system — boas práticas

> **Origem:** `seed-ds-ui/references/melhores-praticas-react-ds.md` (skill de 2026-05-13, 15871 bytes, MD5 `6bcae4ba45d3ad46db2e1f9d0cd3c72a`; cópia preservada em `09-pesquisa/skills-v1-2026-05/referencias/melhores-praticas-react-ds.md`) · **Importado em 2026-09-06 sem edição** — só os títulos foram rebaixados dois níveis (código intacto).
>
> **Estado: ⚠ não auditado contra o DS v2.** Contradições medidas — vale a regra de precedência do cabeçalho: 1 cor(es) em hex — só os tokens do `seed-tokens.json` valem (marca §3, §11) · cita o Lovable — o ERP é Vite/TanStack e o site é Next.js na VM (roadmap v2.6); o consumo de tokens é pelo registry `@seed/*` · usa apelidos do shadcn (`--primary`…) como se fossem a fonte — a fonte são as variáveis `--seed-*` (componentes §44 GI1/GI2; registry `@seed/theme`).

### Melhores práticas — React design system + cva + WCAG 2.2 AA

Reference exclusiva da skill `seed-ds-ui`. Síntese de práticas estabelecidas no mercado (autoridades + dados de benchmark 2024-2026) aplicáveis ao código React/TS do ERP SEED via tokens.

Consultar sempre antes de produzir componente novo, refatorar componente existente, ou montar feature integrada — princípios + autoridades.

---

#### Autoridades de referência

Quando o usuário pedir "no estilo de" ou pegar dúvida sobre padrão, reconhecer estas fontes:

| Fonte | Autoridade | Aplicável a |
|---|---|---|
| **shadcn/ui** (shadcn.com) | Padrão de fato do mercado React+Tailwind em 2026 — não é library, é gerador de código | Component generation pattern (`npx shadcn add`), cva variants, cn() utility |
| **Radix UI** (radix-ui.com) | Headless primitives com a11y completa — base do shadcn | Comportamento + acessibilidade ARIA WAI |
| **Joe Bell** (cva.style) | Criador do class-variance-authority | API canônica de variantes |
| **W3C WAI** (w3.org/WAI) | Working Group oficial WCAG | Standard de acessibilidade WCAG 2.2 (ISO/IEC 40500:2025) |
| **Deque University** (dequeuniversity.com) | Maior referência prática de a11y | Casos, testes, axe-core |
| **Vercel Academy** (vercel.com/academy) | Tutorial canônico shadcn/ui anatomy | Patterns React Server Components + shadcn |
| **Infinum Frontend Handbook** | Best practices estabelecidas | CVA patterns, testing (Storybook + Playwright + jest-axe) |

**Aplicação SEED:** o stack do ERP SEED via Lovable (Vite + React + TS + Tailwind + shadcn + Supabase) é o **happy path** de todo o ecossistema. As práticas dessas autoridades aplicam diretamente, sem adaptação.

---

#### Dados de benchmark (estado da arte 2026)

##### Stack e velocidade

- **shadcn/ui é o padrão de fato em 2026** para projetos React novos — supera MUI e Chakra pelas razões: ownership do código, zero runtime overhead, Tailwind-native (DesignRevision 2026)
- **Login form completo (email + senha + validação + loading + a11y):** ~8 minutos com shadcn + react-hook-form + Zod vs. 45 minutos do zero (Atlas, dev.to 2026)
- **Server Components first** é tendência consolidada — shadcn funciona bem porque maioria dos componentes é puramente presentational
- **TanStack Table** continua sendo o padrão para tabelas com sort/filter/virtualization complexa — shadcn fornece o Table base, TanStack faz data logic

##### Acessibilidade

- **WCAG 2.2 é ISO/IEC 40500:2025** (aprovação outubro 2025) — procurement de RFPs públicos e enterprise já exige 2.2 desde então
- WCAG 2.2 adiciona **9 novos critérios** (6 em AA), remove 1 (4.1.1 Parsing tornou-se obsoleto)
- Tools automatizados detectam ~40% das violações WCAG 2.2 — manual + user testing continuam essenciais

---

#### Os 5 princípios duros do DS SEED (não negociáveis)

##### 1. Token-only styling — zero hardcoded, zero Tailwind padrão

**Regra:** todo `bg-`/`text-`/`border-`/`ring-` aponta pra token SEED (18 canônicos em `paleta.md`) ou alias shadcn (`--primary`, `--secondary` etc, todos apontando pra SEED).

**Proibido:**
- `bg-[#11B0A0]` — hardcoded hex
- `bg-blue-500` — cor Tailwind padrão (não existe no DS SEED)
- `bg-cyan-600` — idem
- `bg-purple-500` — idem
- Qualquer valor arbitrário `bg-[...]`

**Permitido:**
- `bg-primary`, `bg-secondary`, `bg-accent`, `bg-muted`, `bg-card`, `bg-background` — aliases shadcn (apontam pra SEED)
- `bg-turquesa`, `bg-verde`, `bg-amarelo` — tokens SEED diretos (quando o nome semântico não couber)

**Por que importa:** uma única cor Tailwind padrão importada num componente contamina o resto do codebase via copy-paste. Drift começa pequeno e vira incontrolável. Detectar via grep CI em `bg-blue-` etc é trivial.

##### 2. Headless logic via Radix UI

**Regra:** acessibilidade, keyboard navigation, focus trap, ARIA — tudo via Radix (já em shadcn). Nunca recriar.

**Implicação prática:**
- `<Dialog>` shadcn vem com Esc-to-close + focus trap + aria-describedby — usar
- `<DropdownMenu>` vem com arrow keys + focus management — usar
- `<Tabs>` vem com aria-selected + arrow keys + Home/End — usar
- `<Form>` shadcn (envolve react-hook-form) vem com aria-invalid + aria-describedby + label htmlFor — usar

**Não recriar:** `<div role="dialog">` com `useEffect` controlando Esc — está reinventando o que o Radix já fez melhor.

##### 3. Variants via cva (class-variance-authority)

**Regra:** quando componente tem variantes visuais, declarar via `cva()`. Não usar template literals condicionais (`bg-${variant === 'primary' ? 'primary' : 'secondary'}`).

**Padrão canônico (anatomia de Vercel Academy + shadcn handbook):**

```tsx
import { cva, type VariantProps } from "class-variance-authority";
import { cn } from "@/lib/utils";

const componentVariants = cva(
  // Base classes — sempre aplicadas, só tokens
  "inline-flex items-center justify-center rounded-md transition-colors",
  {
    variants: {
      variant: {
        primary: "bg-primary text-primary-foreground hover:bg-primary/90",
        secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/90",
      },
      size: {
        sm: "h-8 px-3 text-xs",
        md: "h-10 px-4 text-sm",
        lg: "h-11 px-8 text-base",
      },
    },
    compoundVariants: [
      // Combinações específicas (ex: primary + lg = ainda mais bold)
      { variant: "primary", size: "lg", class: "font-semibold" },
    ],
    defaultVariants: {
      variant: "primary",
      size: "md",
    },
  }
);

export interface ComponentProps
  extends React.HTMLAttributes<HTMLElement>,
    VariantProps<typeof componentVariants> {}
```

**Sub-regra (shadcn handbook 2026):** cva deve ser usada **com parcimônia**. Não todo componente precisa de variants. Pergunte: *"existem 2+ visuais legítimos desse componente?"* Se não, sem cva.

##### 4. cn() — merge inteligente de classes

**Regra:** sempre `cn(componentVariants({ variant, size, className }))` em vez de string concat manual.

`cn()` vem do shadcn (em `lib/utils.ts`) — combina `clsx` (lógica condicional) + `tailwind-merge` (resolve conflitos Tailwind como `bg-primary bg-secondary` ficando só `bg-secondary`).

**Importante:** o `className` do prop sempre vem por último — permite override pelo consumer. Isso é o que faz a API funcionar:

```tsx
<Button variant="primary" className="w-full">Click</Button>
// resultado: bg-primary ... w-full (override aplicado)
```

##### 5. TypeScript strict — zero `any`

**Regra:** TS strict mode. Props sempre tipadas. Variants tipadas via `VariantProps<typeof cva>`. Sem `any` em nenhum lugar.

```tsx
// CERTO
interface ButtonProps
  extends React.ButtonHTMLAttributes<HTMLButtonElement>,
    VariantProps<typeof buttonVariants> {
  asChild?: boolean;
}

// ERRADO
function Button(props: any) { ... }
```

`VariantProps<typeof componentVariants>` extrai automaticamente os tipos das variantes — single source of truth.

---

#### WCAG 2.2 AA — 9 novos critérios + o que isso muda no SEED

WCAG 2.2 (publicado 2023, ISO/IEC 40500:2025) é o standard atual. Procurement enterprise já exige 2.2. Mudanças relevantes para o ERP SEED:

##### Critérios novos AA (6 que afetam o SEED)

| Critério | O que exige | Aplicação SEED |
|---|---|---|
| **2.4.11 Focus Not Obscured (Minimum)** | Elemento focado não pode estar 100% escondido atrás de sticky headers, banners, modals | Verificar sticky top bar + qualquer item da sidebar focado — não pode sumir |
| **2.5.7 Dragging Movements** | Toda interação drag precisa alternativa single-pointer (botão, atalho teclado) | Drag-and-drop pra reordenar listas → sempre adicionar botões ↑/↓ |
| **2.5.8 Target Size (Minimum)** | Targets ≥ 24×24 CSS px, ou espaçamento adequado entre alvos pequenos | **shadcn default `size="icon"` é h-10 w-10 (40px) — funciona pra AA, mas mobile alvo primário 44×44 é melhor prática (2.5.5 AAA)** |
| **3.2.6 Consistent Help** | Mecanismos de ajuda repetidos em múltiplas páginas na mesma posição relativa | Ícone de ajuda sempre no mesmo canto em todas as páginas do ERP |
| **3.3.7 Redundant Entry** | Info já fornecida pelo usuário no mesmo processo não pode ser pedida de novo (autopreencher ou opção "usar dados anteriores") | Forms multi-step: dados de cliente já preenchidos no passo 1 não pedir de novo no passo 3 |
| **3.3.8 Accessible Authentication (Min)** | Login não pode exigir teste cognitivo (puzzle, transcrição manual) sem alternativa | Sem CAPTCHA cognitivo. Permitir password manager + paste no campo senha + passkey. |

##### Critérios novos AAA (3, aspirational)

- 2.4.12 Focus Not Obscured (Enhanced) — focused element 0% escondido
- 2.4.13 Focus Appearance — focus indicator com tamanho/contraste específicos
- 3.3.9 Accessible Authentication (Enhanced) — sem cognitive test em nenhuma exceção

##### Critério removido

- 4.1.1 Parsing — obsoleto (browsers modernos lidam OK com HTML imperfeito)

##### O que isso implica no código SEED

1. **Touch targets:** Button `size="icon"` no SEED **deve ser h-11 w-11 (44×44px)** em mobile primário — sobrescrever shadcn default h-10 w-10
2. **Focus visible:** SEMPRE incluir `focus-visible:ring-2 focus-visible:ring-ring` em todos os interactives. Cor `--ring = --turquesa` (alto contraste com branco)
3. **Drag alternatives:** se feature do ERP usa drag (reordenar Kanban), adicionar `<button aria-label="Mover acima">↑</button>` correspondente
4. **Help consistency:** ícone de ? sempre no mesmo canto do top bar, todas as páginas
5. **Form multi-step:** se passos 1-N pedem dados, autopreencher do contexto se já tem
6. **Login:** Supabase Auth nativo já cobre. Não adicionar CAPTCHA visual obrigatório.

##### Standard de testing (Infinum + Deque)

- **eslint-plugin-jsx-a11y** no CI — detecta ~40% dos issues
- **jest-axe** ou `@axe-core/playwright` em testes — detecta + acessibilidade dinâmica
- **Manual + keyboard sweep** obrigatório antes de deploy — automatizado não pega tudo
- **Storybook + Playwright visual regression** — variantes cva geram snapshots estáveis

---

#### Padrões arquiteturais do projeto SEED

##### Estrutura de pastas (Lovable + shadcn convenção)

```
src/
├── components/
│   ├── ui/              # shadcn primitives — gerados via `npx shadcn add`
│   │   ├── button.tsx
│   │   ├── card.tsx
│   │   ├── dialog.tsx
│   │   └── ...
│   └── seed/            # Componentes SEED customizados (extendem ou compõem shadcn)
│       ├── StatusBadge.tsx       # variantes ATIVO/PROSPECT/INATIVO
│       ├── SegmentBadge.tsx      # 6 variantes de segmento
│       ├── ClienteRow.tsx        # row canônica da tabela de clientes
│       └── ...
├── pages/               # rotas (ClientesList, ClienteDetalhe, etc)
├── hooks/               # custom hooks
├── lib/                 # utils, helpers
│   └── utils.ts         # cn() helper
└── index.css            # tokens SEED canônicos
```

**Separação importante:**
- `ui/` = shadcn base, mexer com cuidado (recebe updates via `npx shadcn diff`)
- `seed/` = onde a identidade SEED vive (compõe shadcn, customiza variants)

##### Forms — `<Form>` + react-hook-form + zod

Padrão shadcn canônico:

```tsx
import { useForm } from "react-hook-form";
import { zodResolver } from "@hookform/resolvers/zod";
import * as z from "zod";
import { Form, FormField, FormItem, FormLabel, FormControl, FormMessage } from "@/components/ui/form";

const schema = z.object({
  nome: z.string().min(3, "Nome muito curto"),
  cnpj: z.string().regex(/^\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}$/, "CNPJ inválido"),
});

const form = useForm<z.infer<typeof schema>>({
  resolver: zodResolver(schema),
});
```

A11y, validação e error messages — tudo automático via `<FormMessage>`.

##### Estado — useState/useReducer local + TanStack Query server

- **Local UI state** (modal aberto/fechado, filtro selecionado): `useState`
- **Complex local state** (form com 20+ campos, wizard): `useReducer`
- **Server state** (dados do Supabase, lista de clientes): `@tanstack/react-query`
- **Global app state** (user logado, tema): React Context ou Zustand

**Não usar Redux** em projeto novo SEED — overhead desnecessário em 2026, TanStack Query + Context cobrem 95% dos casos.

##### Mobile-first responsive

Default = mobile. Breakpoints adicionam:

```tsx
<div className="grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3">
  {/* mobile: 1 col · tablet: 2 · desktop: 3 */}
</div>
```

**Anti-padrão:** desktop-first com `md:max-w-` ou `lg:hidden` ocultando coisas no mobile.

---

#### Checklist pré-entrega de código SEED (15 itens)

Antes de entregar componente/feature:

**Drift de DS:**
- [ ] Zero hardcoded colors (`bg-[#XXX]`, `text-blue-500`, etc) — grep mental
- [ ] Zero cores Tailwind padrão (purple/blue/orange/pink/amber)
- [ ] Todos `bg-`/`text-`/`border-` apontam pra tokens SEED ou aliases shadcn
- [ ] Tipografia via `font-sans` (Montserrat) ou explícito
- [ ] Radius via token (`rounded-md`, `rounded-lg`)

**Acessibilidade WCAG 2.2 AA:**
- [ ] Forms usam `<Form>` shadcn (não recriar)
- [ ] Dialogs usam `<Dialog>` shadcn (não recriar)
- [ ] `<label htmlFor>` em todos inputs (ou `<FormLabel>`)
- [ ] `alt` em todas imagens (decorativas: `alt=""`)
- [ ] Cor não é único indicador (status sempre com ícone OU texto além da cor)
- [ ] Focus visible ring nos interactives (`focus-visible:ring-2 focus-visible:ring-ring`)
- [ ] **Touch targets ≥ 44×44px em Button `size="icon"` mobile**
- [ ] Sem CAPTCHA cognitivo obrigatório (3.3.8)
- [ ] Drag-and-drop tem alternativa botão/atalho (2.5.7)

**TypeScript + estrutura:**
- [ ] Sem `any` no código
- [ ] Props tipadas (interface ou type)
- [ ] Variants tipadas via `VariantProps<typeof cva>`
- [ ] Componente em `src/components/seed/` (ou `ui/` se primitive shadcn)
- [ ] Mobile-first responsive

**Microcopy:**
- [ ] Tom SEED aplicado (sem jargão vetado)
- [ ] Grafia "SEED engenharia" correta em todos os elementos visíveis

---

#### Anti-padrões verificados em produção (NÃO repetir)

1. **`bg-blue-500` hardcoded** porque "rapidinho" → contamina codebase
2. **Recriar Dialog com `<div role="dialog">`** → reinventa acessibilidade que Radix já tem
3. **cva em todo componente** (até nos sem variants) → overhead desnecessário (shadcn handbook 2026)
4. **`any` em props** → perde safety, perde autocomplete
5. **Template literals condicionais** (`bg-${color}-500`) → cva existe pra isso
6. **`focus-visible:outline-none` sem replacement** → usuário keyboard perdido
7. **`size="icon"` h-10 w-10** em Button primário mobile → falha WCAG 2.2 AA touch target
8. **CAPTCHA cognitivo** sem alternativa em login → falha 3.3.8
9. **Sticky top bar escondendo focused element** → falha 2.4.11
10. **Desktop-first com `md:hidden` ocultando feature em mobile** → mobile-first é padrão
11. **Cor única como indicador** ("verde = aprovado") → falha 1.4.1 Use of Color (acrescentar ícone ✓ ou texto)
12. **Importar cores Tailwind padrão** (`bg-blue-`, `border-purple-`) → quebra DS SEED

---

#### Composição com `frontend-design` oficial

A skill `frontend-design` da Anthropic recomenda **variar entre gerações** pra evitar look genérico AI.

A skill `seed-ds-ui` **sobrescreve** essa recomendação no item estético: o DS SEED é fixo, converge. Mas concorda com `frontend-design` em:
- Production-grade quality
- Meticulous detail
- Accessibility
- Avoid AI slop (textos genéricos, ícones decorativos sem função, espaçamento aleatório)

**Quando ambas ativam:** `frontend-design` informa qualidade/profundidade, `seed-ds-ui` define paleta/tipografia/spacing/componentes.

---

## 15. Registro de versões

| Versão | Data | Mudança |
|---|---|---|
| **0.1** | 2026-09-06 | **Nasce o canônico (F9.5, MANIFESTO §168 — V-Q1 dele: "crie essa parte para a skill utilizar sobre essas boas práticas").** Importação ÚNICA, sem edição, das 14 referências de prática de mercado das skills `seed-ds-*` de 2026-05-13 (163504 bytes ao todo), uma seção por arquivo, com procedência (MD5) e as contradições com o DS v2 medidas por `09-pesquisa/skills-v1-2026-05/importa-praticas.py`: 4 das 14 seções têm ao menos uma. Regra de precedência no cabeçalho. A partir daqui, manutenção manual. |
