8-e. Sub-bloco EN — newsletter e comercial
seed-email.md v0.13 · §08-eseção 15 de 1708-e-sub-bloco-en-newsletter-e-comercial-estavel.md · MD5 6f067b3cTítulo completo no canon: Sub-bloco EN — newsletter e comercial (estável · promovido em 2026-08-08)
Consolidado EN1–EN5 aprovado em 2026-08-08. Fatos-guia: corpus B2B converge com o nosso base (coluna única 600px, corpo ≥14px, botão 44px); o desenho certo para conteúdo que varia por envio é o layout MODULAR (pilha de blocos independentes rearranjáveis); e prospecção direta responde melhor a texto quase puro — HTML de marca funciona em newsletter, não em follow-up.
Newsletter (EN1, EN4): en-newsletter.html — 4 módulos delimitados por marcadores
MODULO-* no código (Destaque · Notas {{#notas}} · Case · Aviso); cada edição
escolhe e ORDENA módulos removendo blocos inteiros, nunca os esvaziando. Rodapé
estendido: "Gerenciar preferências" + "Cancelar inscrição" com {{descadastro_url}}
integral — a URL é gerada pela ferramenta de disparo por destinatário e não pode ter
domínio fixo no canônico.
Comercial/follow-up (EN2, EN3): en-comercial.html — texto quase puro por decisão:
sem faixa de marca, sem imagem, sem botão; saudação + 3 parágrafos + um link inline.
A marca entra pela assinatura EA colada no slot {{assinatura_ea}}. A copy é território
da skill seed-ds-mensagem (fronteira EN3). Rodapé de conformidade compacto com
endereço e descadastro.
Trilha de disparo (EN5): formalmente adiada, herdando a EM13 — ferramenta de campanha e cadência são decisão do Rafael quando houver lista. Os templates são agnósticos de ferramenta.
Refinamentos de suíte do gate EA+EN (transparência)#
A 1ª auditoria dos formatos novos produziu 8 FAILs — nenhum defeito de design, três lacunas da suíte diante de formatos que ela nunca tinha visto:
- URL-placeholder:
href="{{descadastro_url}}"reprovava no canônico; regra refinada — URL contendo{{valida na AMOSTRA (o output real), não no template. - Modo fragmento: a assinatura foi auditada como e-mail completo e reprovou em 6
testes de nível-documento (lang, h1, metas, preheader, grade) que não se aplicam a
uma tabela colada nas configurações do Gmail. A suíte agora detecta fragmento
(ausência de
<html>) e pula esses testes com SKIP explícito. - GV3 na assinatura: este era real — os
<p>dela não declaravam fundo, e assinatura também sofre inversão de dark mode. Corrigido no artefato: NADA IMPLÍCITO vale nela também. Regressão pós-refinamento: base + componentes + ET = 60 PASS / 0 FAIL; fixture violador segue reprovando (15 FAIL corretos).
Gate visual do EN — defeitos 8 e 9 (2026-08-08) e correção retroativa#
| # | Cliente | Defeito | Causa | Correção | Guarda |
|---|---|---|---|---|---|
| 8 | Todos (amostra da newsletter) | Chaves órfãs vazando ao destinatário: "{{SEED em agosto}}", "{nota}" | Erro de geração: placeholders dentro de expressões de f-string Python não sofrem a redução de chaves — o canônico saiu com 4 chaves e a substituição deixou par órfão em volta do valor. Agravante: a asserção anti-resíduo procurava só {{palavra}} e não viu valor com espaços — falsa confiança |
Canônico normalizado por pós-processamento; asserção reforçada: qualquer {{/}} residual reprova |
GV6a |
| 9 | Outlook 2024 | Divisores entre módulos rendendo como faixas cinza | <td> espaçador sem background-color — a regra NADA IMPLÍCITO cobria texto (GV3) mas não o vazio |
Fundo explícito em todo spacer/divisor | GV6b |
REVISÃO DO DEFEITO 9 (mesma data, após reenvio). A correção de fundo NÃO resolveu: inspeção do arquivo enviado provou o
background-color:#FFFFFFpresente em todos os spacers, e as faixas persistiram no Outlook — a hipótese da causa estava errada. Causa revisada, por eliminação com evidência dos gates anteriores: o construto de divisor em 3 linhas (spacer + border-top + spacer) é que o motor Word renderiza como faixas; spacers isolados e linha simples sempre renderizaram limpos. Correção estrutural: divisor vira td externo com padding vertical + linha de 1px viabgcolor(atributo nativo do Word) commso-line-height-rule:exactly. O GV6b (fundo em spacer) permanece — é barato e coerente com NADA IMPLÍCITO — mas deixa de ser apontado como a correção do 9. No retrofit, o GV2 reprovou o td novo do divisor (padding sem align) na primeira auditoria — corrigido; os guardas policiando o próprio conserto é o sistema operando como desenhado.
Latência retroativa medida e corrigida: o GV6 varreu o acervo e reprovou os spacers de TODOS os templates promovidos (base, componentes, os 3 ET + amostras) — o defeito sempre existiu, só ficou visível nos divisores maiores da newsletter. Correção em lote com versão nova: base v0.4 · componentes v0.3 · ET v0.2 (todos). Diferença exclusiva: fundo nos spacers. Regressão pós-correção: 284 PASS / 0 FAIL nos 14 arquivos do acervo.
Ciclo final do gate EA+EN — defeitos 10 e 11, veredito final do 9, e a promoção#
Veredito final do defeito 9 (terceira e última revisão, com crédito ao Rafael): os
prints em três zooms diferentes do Outlook provaram que qualquer linha-espaçadora com
fantasmagoriza como faixa cinza em zoom ≠100% no motor Word — inclusive
spacers de 8px com fundo branco declarado. Regra canônica resultante: espaçamento
vertical em e-mail é padding e margin; o divisor é td com padding + linha de 1px via
bgcolor + mso-line-height-rule:exactly. A newsletter v3.1+ tem zero row-spacers.
Nota de transparência: houve uma reclassificação prematura minha ("artefato benigno de
zoom") entre a 2ª e a 3ª evidência — derrubada pelo print seguinte do Rafael e registrada.
| # | Defeito | Causa | Correção | Guarda |
|---|---|---|---|---|
| 10 | "@@" no texto e botão flutuando dentro do parágrafo (Outlook) | Erro de ferramenta do produtor: uma linha "no-op" num script de edição avaliava para replace("</p>","@@") e destruiu todos os fechamentos de parágrafo; a suíte passou 42/42 porque nada verificava balanceamento |
9 </p> restaurados pela inversa exata; balanceamento conferido |
GV7 (tags p/h1/h2/ul/table balanceadas + sentinela residual) |
| 11 | Logo da assinatura quebrado nos e-mails (anônima ok, Content-Type ok) | Artefato composto desatualizado: o EA3-b trocou o logo para o vertical, mas o comercial — que EMBUTE a assinatura — não foi regenerado e saiu pedindo o PNG aposentado, inexistente no bucket | Comercial regenerado com asserção dupla (URL vertical presente, aposentada ausente); regra: peça que embute outra regenera junto | GV8 (lista viva de assets aposentados; referência reprova) |
Decisão do Rafael — row-spacers do acervo (2026-08-08, "aprovo b"): TOLERÂNCIA MONITORADA. Os templates promovidos (base v0.4, componentes v0.3, ET v0.2) mantêm o construto antigo — passaram nos gates reais, o fantasma é cosmético e dependente de zoom, e a régua do projeto veta editar canônico promovido sem motivo funcional (mudaria 8 MD5 ancorados por estética condicional). A regra "espaçamento por padding" vale para TODO template novo; o retrofit de um template existente acontece quando ele for editado por outro motivo. Alternativa descartada: retrofit completo imediato (uniformidade técnica ao custo de re-gate de 8 arquivos sem defeito funcional).
Promoção final — EA + EN (fecha a produção da Fase 4)#
2026-08-08 — Rafael aprovou ("aprovo b"). Evidências do gate combinado: newsletter v3.2 limpa no Outlook em 100% e 120% (defeitos 9 e 10 mortos com prova) · comercial v2 aprovado na percepção ("e-mail de pessoa") com o logo vertical carregando · assinatura instalada no Gmail real do diretor, renderizando na janela de composição com dados reais e os três links ativos.
Balanço da fase: 11 defeitos reais encontrados pelo gate humano, 11 corrigidos, 8
famílias de guarda permanentes (GV1–GV8). Nenhum dos 11 era visível às verificações
automatizadas antes do olho do Rafael. Com EA e EN, os 6 sub-blocos da F4 (EM · EL ·
EC · ET · EN · EA) estão estável.