From 4578f9f5d75bd2d37e09c4897ba660c04d1ae0ad Mon Sep 17 00:00:00 2001 From: Francisco Solla Date: Wed, 7 Oct 2026 10:55:03 -0300 Subject: [PATCH] =?UTF-8?q?docs(plan):=20S46=20=E2=80=94=20story=20da=20su?= =?UTF-8?q?a=20se=C3=A7=C3=A3o=20(potencial=20de=20Lula)=20(Related=20#143?= =?UTF-8?q?6)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../potencial-secao-story-ui-design.html | 1578 +++++++++++++++++ docs/plans/potencial-secao-story.md | 104 ++ 2 files changed, 1682 insertions(+) create mode 100644 docs/plans/potencial-secao-story-ui-design.html create mode 100644 docs/plans/potencial-secao-story.md diff --git a/docs/plans/potencial-secao-story-ui-design.html b/docs/plans/potencial-secao-story-ui-design.html new file mode 100644 index 00000000..35f9ce54 --- /dev/null +++ b/docs/plans/potencial-secao-story-ui-design.html @@ -0,0 +1,1578 @@ + + + + + + + + + + + + Design — S46 · Story da sua seção + + + +
+ DEGRADED — design tier degradado (sem designer frontier); não certificado — sign-off humano + obrigatório no gate +
+ +
+ DEGRADED · sign-off humano no gate +
+ +
+
+

+ Gate visual · S46 · DEGRADED +

+

+ Story do potencial da sua seção +

+

+ Job em uma linha: quem tem o título de eleitor em mãos informa UF, município, zona e seção + e, em segundos, vê quanto o Lula pode crescer ali — em pontos percentuais, do 1º para o 2º + turno — e sai com um story 1080 × 1920 pronto para compartilhar. Sem cadastro, sem promessa + de resultado. +

+

+ DEGRADED: este artefato não está certificado. É insumo para decisão humana + no gate/PR — o tier degradado nunca aprova. Todos os números abaixo são de demonstração + (fictícios); nenhum dado real de terceiro. +

+
+ 1280px · desktop + 390px · mobile + um CTA primário por estado + cenário hipotético + fonte: TSE · 1º turno 2026 + sem captação de contato +
+ +
+ +
+
+

+ Cena 1 · Desktop 1280 · formulário + resultado + prévia do story + ações +

+
+

+ Estado principal já consultado: o formulário vira linha-resumo (“Trocar seção”), o painel de + resultado domina a coluna esquerda e a prévia do story fica ao lado, com um único CTA + primário (Baixar imagem). Números de demonstração. +

+ +
+
+
+ Jorge Solla +
+ + + +
+
+
+
+
+ Início + / Potencial da sua seção +
+
+ +
+
+

2º turno · Eleição 2026

+

+ Quanto o Lula pode crescer na sua seção? +

+

+ Informe os dados do seu título de eleitor — UF, município, zona e seção — e veja o + potencial de crescimento em pontos percentuais, do 1º para o 2º turno. +

+
+ +
+ +
+
+
+ + + +
+

BA · Município de exemplo · Zona 0000 · Seção 0000

+

Dados do título de eleitor

+
+
+ +
+ +
+

Potencial nesta seção

+
+

+6,0 p.p.

+

+ de ganho total entre turnos
no cenário com todos os votos disponíveis +

+
+

+ Só com os votos imediatos (X₁): +3,0 p.p. +

+ +
+
+

1º turno

+

38,0%

+

Lula na seção

+
+
+

2º turno · imediato

+

41,0%

+

só X₁

+
+
+

2º turno · total

+

44,0%

+

X₁ + faltantes

+
+
+ +
+ Como calculamos +
+

1º turno: % do Lula = votos do Lula ÷ votos válidos da seção × 100.

+

2º turno: (LULA + X) ÷ (LULA + X + FLÁVIO) × 100.

+

Ganho: 2º − 1º, em pontos percentuais.

+

+ X₁ = nulos + brancos + votos de terceiros (disponíveis já no 1º turno). + X₂ = X₁ + faltantes. +

+
+
+ +

+ Cenário hipotético — não é previsão nem promessa de resultado. + Hipótese: na seção, só Lula e Flávio disputam o 2º turno; todos os votos disponíveis + vão para o Lula e o Flávio mantém os votos dele. +

+

+ Fonte: dados oficiais do TSE — 1º turno 2026 · + Arquivos de Urna. + Sem cadastro: a consulta não pede nome, e-mail ou telefone. +

+
+
+ + +
+
+

Prévia do story

+ 1080 × 1920 +
+
+ +
+

A imagem final sai em 1080 × 1920 px (PNG), pronta para o story.

+
+ + +
+

+ No celular, o compartilhamento abre a folha do sistema. Se não abrir, baixe a imagem + e poste pelo app. +

+
+
+
+
+ + +
+
+
+

Detalhe · busca de município

+ +
+ +
+ + +
+
    +
  • Município de exemplo I
  • +
  • Município de exemplo II
  • +
  • Município de exemplo III
  • +
+

Digite ao menos 3 letras. A lista mostra só municípios da UF escolhida.

+
+

+ Busca por nome (combobox): digitar filtra a lista do município dentro da UF; escolher + preenche o campo e fecha a lista. Sem município livre — só opções conhecidas. A lista acima + usa nomes genéricos de demonstração; a fonte real é a lista oficial de municípios por UF + (NEEDS ASSET · confirmar fonte/dataset). +

+
+
+ +
+
+

+ Cena 2 · Mobile 390 · fluxo empilhado (mesmo conteúdo) +

+
+

+ Tudo empilhado, na ordem de leitura: resumo da seção → resultado → cálculo → prévia → ações. + CTA primário único (Baixar imagem), alvos de toque ≥ 44px e inputs com 16px. +

+ +
+
+
+ Jorge Solla +
+ + +
+
+
+
+
+ Início + / Potencial da sua seção +
+
+ +
+
+

2º turno · Eleição 2026

+

+ Quanto o Lula pode crescer na sua seção? +

+

+ Dados do título de eleitor: UF, município, zona e seção. +

+
+ +
+
+

BA · Município de exemplo

+

Zona 0000 · Seção 0000

+
+ +
+ +
+

Potencial nesta seção

+

+6,0 p.p.

+

+ de ganho total entre turnos
no cenário com todos os votos disponíveis +

+

+ Só com os votos imediatos (X₁): +3,0 p.p. +

+ +
+
+

1º turno

+

38,0%

+
+
+

2º · imediato

+

41,0%

+
+
+

2º · total

+

44,0%

+
+
+ +
+ Como calculamos +
+

1º turno: % do Lula = votos do Lula ÷ votos válidos da seção × 100.

+

2º turno: (LULA + X) ÷ (LULA + X + FLÁVIO) × 100.

+

Ganho: 2º − 1º, em pontos percentuais.

+

+ X₁ = nulos + brancos + votos de terceiros · + X₂ = X₁ + faltantes. +

+
+
+ +

+ Cenário hipotético — não é previsão. + Só Lula e Flávio na seção; todos os votos disponíveis vão para o Lula e o Flávio mantém + os votos dele. +

+

+ Fonte: dados oficiais do TSE — 1º turno 2026 · + Arquivos de Urna. Sem cadastro. +

+
+ +
+
+

Prévia do story

+ 1080 × 1920 +
+
+ +
+
+ + +
+
+
+
+
+ +
+
+

+ Cena 3a · Estado crítico — seção não encontrada +

+
+

+ Erro claro e acionável: explica o que houve, lista o que conferir no título de eleitor e + devolve o formulário com os campos suspeitos marcados. CTA primário único: Tentar de novo. +

+ +
+
+
+ Jorge Solla + Eleição 2026 +
+
+
+
+

Potencial da sua seção

+

+ Não encontramos essa seção +

+
+ + + +
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+

+ Zona e seção não conferem entre si. Revise os números no título. +

+ +
+

No título de eleitor, confira:

+
    +
  • · UF e município do seu local de votação;
  • +
  • · zona eleitoral — 2 a 4 dígitos;
  • +
  • · seção — até 4 dígitos;
  • +
  • · se os números não estão invertidos (zona × seção).
  • +
+
+ +
+ + + Consultar meu título no TSE + + +
+

+ A base usa os dados do 1º turno de 2026 publicados pelo TSE. Seção recém-criada ou + transferida pode ainda não aparecer. +

+
+
+
+ + +
+
+

+ Cena 3b · Estado crítico — consultando os dados +

+
+

+ O formulário congela e o resultado vira esqueleto; a mensagem de status diz o que está + acontecendo, sem bloquear a página. Sem lógica de produto no artefato. +

+ +
+
+
+ Jorge Solla + Eleição 2026 +
+
+
+
+

2º turno · Eleição 2026

+

+ Quanto o Lula pode crescer na sua seção? +

+
+ +
+
+

+ + Consultando os dados oficiais do TSE… +

+

Pode levar alguns segundos. Não feche a página.

+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+

+ Cena 3c · Estado principal — resultado preenchido, com a prévia e a legenda X₁/X₂ +

+
+

+ O estado que o aceite olha primeiro: número principal, os três percentuais e o “Como + calculamos” aberto, com a legenda X₁/X₂ visível. Marcadores numerados apontam a + hierarquia; a prévia fica ao lado com as ações. +

+ +
+
+
+ Jorge Solla + Eleição 2026 +
+
+
+
+ Início + / Potencial da sua seção +
+
+ +
+
+
+
+
+ + + +
+

BA · Município de exemplo · Zona 0000 · Seção 0000

+

Dados do título de eleitor

+
+
+ +
+ +
+
+

Potencial nesta seção

+ 1 +
+
+

+6,0 p.p.

+

+ de ganho total entre turnos
no cenário com todos os votos disponíveis +

+
+

+ Só com os votos imediatos (X₁): +3,0 p.p. +

+ +
+ 2 +

Três leituras da mesma seção

+
+
+
+

1º turno

+

38,0%

+

Lula na seção

+
+
+

2º turno · imediato

+

41,0%

+

só X₁

+
+
+

2º turno · total

+

44,0%

+

X₁ + faltantes

+
+
+ +
+ + Como calculamos + 3 + +
+

1º turno: % do Lula = votos do Lula ÷ votos válidos da seção × 100.

+

2º turno imediato: (LULA + X₁) ÷ (LULA + X₁ + FLÁVIO) × 100.

+

2º turno total: (LULA + X₂) ÷ (LULA + X₂ + FLÁVIO) × 100.

+

Ganho: 2º − 1º, em pontos percentuais.

+

+ X₁ = nulos + brancos + votos de terceiros (disponíveis já no 1º turno). + X₂ = X₁ + faltantes (quem podia votar e não foi). +

+
+
+ +
+ 4 +

+ Cenário hipotético — não é previsão nem promessa de resultado. + Hipótese: na seção, só Lula e Flávio disputam o 2º turno; todos os votos disponíveis + vão para o Lula e o Flávio mantém os votos dele. +

+
+
+ 5 +

+ Fonte: dados oficiais do TSE — 1º turno 2026 · + Arquivos de Urna. + Sem cadastro: a consulta não pede nome, e-mail ou telefone. +

+
+
+ +
    +
  1. 1 · Número principal. Ganho total em pontos percentuais — o motivo da página. Vermelho da campanha só aqui e no CTA.
  2. +
  3. 2 · Comprovação. 1º turno e os dois cenários de 2º turno lado a lado, mesma base de votos válidos. Números de demonstração.
  4. +
  5. 3 · Legenda X₁/X₂. De onde saem os votos disponíveis: X₁ = nulos + brancos + terceiros; X₂ = X₁ + faltantes. Aqui o “Como calculamos” aparece aberto; no uso normal começa fechado.
  6. +
  7. 4 · Guardrail. Cenário hipotético declarado em texto, logo abaixo dos números — nunca é promessa de resultado.
  8. +
  9. 5 · Fonte e privacidade. Origem oficial (TSE 1º turno 2026) com link visual para os Arquivos de Urna; sem captação de contato. NEEDS ASSET: URL oficial do TSE.
  10. +
+
+ +
+
+

Prévia do story

+ 1080 × 1920 +
+
+ +
+
+ + +
+
+
+
+
+
+ +
+
+

+ Cena 3d · Estado crítico — imagem pronta para compartilhar +

+
+

+ Depois de gerar: confirmação verde com o tamanho do arquivo e a ação vira o próximo passo — + Compartilhar passa a ser o CTA primário e “Baixar de novo” vira secundário. No desktop, + o compartilhamento cai no download com a mesma confirmação. +

+ +
+
+
+ Jorge Solla + Eleição 2026 +
+
+ +
+
+ +

Imagem pronta — 1080 × 1920 px

+
+ +
+
+ + + pronta + + +
+
+ + +
+

+ No celular, abre a folha de compartilhamento do sistema (Instagram, WhatsApp e outros). + No computador, a imagem vai para a pasta de downloads — poste pelo app do Instagram. + Marque o perfil da campanha na publicação. +

+
+
+
+
+ + +
+
+

+ Cena 4 · A imagem gerada (1080 × 1920) — anatomia +

+
+

+ Mesma linguagem da referência aprovada: fundo off-white #F7F6F3, tinta + #1B1B1B, hairlines #DCD9D2, sem decoração. Campos preenchidos com o resultado da + seção; nenhum rodapé de texto — só a área discreta do sticker de link. +

+ +
+
+
+ +
+

1080 × 1920 px · PNG · ~9:16 · fonte de renderização NEEDS DECISION.

+
+ +
+
+ fundo #F7F6F3 + tinta #1B1B1B + hairline #DCD9D2 + sem logo + sem rodapé de texto +
+
    +
  1. 1 · Formato. 1080 × 1920 px (story). Tudo escala junto: o mock do gate usa as mesmas proporções do arquivo final.
  2. +
  3. 2 · Hierarquia. A pergunta (“Quanto o Lula pode crescer…”) apresenta; as seis linhas provam; o ganho total fecha. Sem número fora de contexto.
  4. +
  5. 3 · A conta. Fórmula e legenda X₁/X₂ impressas no arquivo — quem recebe consegue auditar a hipótese, não só o resultado.
  6. +
  7. 4 · Área do sticker. Retângulo tracejado no rodapé: é o espaço reservado ao sticker de link dos Arquivos de Urna (TSE). Nada de texto promocional no arquivo. NEEDS ASSET: URL oficial.
  8. +
  9. 5 · Área segura. Nada essencial colado no topo ou na base — a UI do story cobre essas faixas.
  10. +
  11. 6 · Tipografia do arquivo. O mock usa a sans neutra da referência aprovada. A face final do renderer (canvas) é NEEDS DECISION — se for uma fonte da campanha, precisa de licença web/canvas.
  12. +
  13. 7 · Sem marca. O arquivo não leva logo nem “1313”: segue a referência aprovada. Incluir marca seria decisão nova, não deste design.
  14. +
+
+
+
+ +
+
+

+ Notas do artefato — tokens, guardrails e NEEDS ASSET +

+
+ +
+
+

Tokens usados (site público)

+
    +
  • · Header do site #ae1603 sobre #fff8f2 (--site-header, constante entre temas)
  • +
  • · Ação primária / foco #c51414 (só CTA e foco); no tema público o vermelho de campanha é #a21c1c
  • +
  • · Superfícies #ffffff, painel de destaque #fff8f2 (--campaign-cream), band #ebe9e9
  • +
  • · Tinta #000, secundário #6c615e (--campaign-muted)
  • +
  • · Hairline rgb(0 0 0 / 12%), borda de campo rgb(0 0 0 / 18%), erro #b42318
  • +
  • · Display Exo 2 (títulos/CTA), texto Arimo — as duas famílias OFL do site público
  • +
  • · Raios 10px (controles) e 16px (cards); foco visível amarelo #ffe607 com separador escuro onde cair em creme
  • +
  • · Story: off-white #F7F6F3, tinta #1B1B1B, hairline #DCD9D2 (referência aprovada)
  • +
+
+ +
+

Guardrails de produto

+
    +
  • · Cenário hipotético declarado junto dos números; sem promessa de resultado.
  • +
  • · Hipótese explícita: só Lula × Flávio na seção; todos os votos disponíveis vão para o Lula; Flávio mantém os votos.
  • +
  • · Sem captação: nenhum nome, e-mail, telefone ou login em nenhuma cena.
  • +
  • · Fonte sempre visível: dados oficiais do TSE — 1º turno 2026.
  • +
  • · Um CTA primário por estado (Consultar / Baixar / Compartilhar) — nunca dois de peso igual.
  • +
  • · Nada de dado real de terceiro: todos os números e nomes de município são de demonstração.
  • +
+
+ +
+

NEEDS ASSET / NEEDS DECISION

+
    +
  • · NEEDS ASSET · URLs oficiais do TSE: Arquivos de Urna (link da fonte e sticker do story) e consulta ao título (estado de erro). No mock, href="#" — confirmar as URLs canônicas.
  • +
  • · NEEDS DECISION · fonte do PNG: o mock segue a sans neutra da referência aprovada; decidir a face do renderer (canvas) e a licença.
  • +
  • · NEEDS ASSET · números reais por seção: artefato do TSE 1º turno 2026 para validar a conta, a cobertura de seções e o estado “não encontrada”.
  • +
  • · NEEDS ASSET · lista de municípios por UF no combobox (fonte oficial/IBGE ou dataset interno).
  • +
  • · NEEDS DECISION · texto da área segura do story: confirmar limites do topo/base na UI atual do Instagram.
  • +
+
+
+ +

+ Teto do artefato: Tailwind v4 via CDN, JS inline só de apresentação (alternar a lista do + município no detalhe da Cena 1), sem fetch, sem cálculo real, sem imports do app e sem + decisões de engenharia. O design é para ser portado classe-a-classe, não copiado como + entrega. +

+

+ DEGRADED — design tier degradado (sem designer frontier); não certificado — exige sign-off + humano explícito no gate do plan-issue. Tier: opencode-go/deepseek-v4.1-flash. +

+
+
+ + + diff --git a/docs/plans/potencial-secao-story.md b/docs/plans/potencial-secao-story.md new file mode 100644 index 00000000..5a05cd82 --- /dev/null +++ b/docs/plans/potencial-secao-story.md @@ -0,0 +1,104 @@ +# S46 — Página pública "story da sua seção" (potencial de Lula) + +Status: rascunho +Atualizado em: 2026-10-05 +Issue: #1436 +Priority: P1 +Impeccable: C — fluxo novo numa rota pública +Design UI: docs/plans/potencial-secao-story-ui-design.html +Appetite: ~2–3 dias eng; um outcome verificável +Responsável: — + +## Intenção + +O 2º turno é em 25/10/2026 e falta uma ferramenta de amplificação para o eleitor comum: quem tem o título de eleitor em mãos quer ver o que a *sua própria seção* pode render para Lula e sair compartilhando. Hoje o site público fala para o público geral, não para a seção de quem visita. A oportunidade é transformar um recorte que a pessoa reconhece (a seção onde vota) num story de Instagram pronto, com um número local e pessoal o bastante para circular sozinho no WhatsApp. + +## Persona e fluxo + +- **Persona / contexto:** eleitor/apoiador no celular, em campanha de WhatsApp; quer participar sem virar analista. Secundária: liderança local que amplifica material pronto. +- **Job principal:** em menos de um minuto, ver o potencial de Lula na sua seção e sair com a imagem de story na mão. +- **Fluxo desejado:** informa UF, município, zona e seção (dados do título); vê o 1º turno na seção e o cenário hipotético com o ganho em pontos percentuais; toca em gerar story; confere o preview 1080×1920; baixa ou compartilha. Seção não encontrada → mensagem clara para conferir o título, sem inventar número. +- **Anti-goals de produto:** não é simulador livre de cenários; não mostra seções alheias nem ranking; não pede nome, telefone ou consentimento; não vira dashboard nem pesquisa de intenção. + +### Esboço de fluxo (C) + +```text +[título de eleitor em mãos] → escolhe UF → município → zona → seção + → [site calcula] → vê "sua seção: 47,9% → 56,2% (+8,3 p.p.)" e cenário total (+18,5 p.p.) ← números de exemplo + → toca "gerar story" → preview 1080×1920 → [baixar | compartilhar] → [story publicado] + └─ seção não encontrada → "confira os dados do título" → volta e corrige +``` + +### Design UI (C) + +- Design UI (gate): `docs/plans/potencial-secao-story-ui-design.html` — cenas desktop 1280, mobile 390, estados (não encontrada, carregando, resultado, imagem pronta) e anatomia do story 1080×1920. +- **Tier degradado:** artefato produzido sem o `designer` frontier (tier degradado) — requer **sign-off humano explícito** no gate. + +## Objetivo e aceite + +- Qualquer visitante, sem login, informa UF/município/zona/seção e vê os três números da seção: 1º turno, cenário imediato (X₁) e cenário total (X₂), com o ganho em p.p. — sempre rotulado como cenário hipotético. +- A imagem 1080×1920 sai com os mesmos números da tela, legível em story e enquadrada como "se esta seção decidir a eleição". +- O fluxo completo (primeiro toque → download) cabe em menos de um minuto no celular. +- Guardrails: números sempre do recorte da seção escolhida; nunca % estadual absoluto; rótulo explícito de cenário hipotético; seção sem dado → estado vazio honesto, nunca estimativa; sem coleta de dado pessoal nem login. + +## Dados (intenção) + +- **Vou apresentar dados?** Sim, superfície neste item (números calculados da seção + imagem). +- **Decisões desbloqueadas:** + - Visitante/apoiador: decide se aquele número local vale um story — e o publica. + - Liderança local: decide usar o ganho da própria seção no material de mobilização. +- **Forma:** *adiada ao plano de implementação* — restrições: pontos percentuais do recorte local, 1º → 2º turno lado a lado para X₁ e X₂, com carimbo de cenário hipotético. + +## Dados da decisão (literais) + +- Item `S46`; slug `potencial-secao-story`; tipo `feature`; Priority `P1`; Impeccable `C` (fluxo novo em rota pública); model `deepseek/deepseek-flash`. +- **Fonte:** TSE, 1º turno presidencial de 04/10/2026, por seção (família bulk `votacao_secao_2026` no CDN do TSE, análoga à de 2022). +- **Candidatos (verificados nas telas do TSE):** Lula 12 (PT); Flávio Bolsonaro 22 (PL); Renan Santos 14 (Missão); Escritor Augusto Cury 70 (Avante). +- **Fórmulas aprovadas:** X₁ = nulos + brancos + Renan + Cury; X₂ = X₁ + faltantes (faltantes = aptos − comparecimento). + - 1º turno na seção: Lula ÷ votos válidos × 100. + - 2º turno no cenário: (Lula + X) ÷ (Lula + X + Flávio) × 100, para X₁ e X₂. + - Ganho em pontos percentuais: (2º turno) − (1º turno), para imediato (X₁) e total (X₂). +- **Referência de forma (não usar na UI como dado real):** Seção 0051 Curitiba/PR: Lula 91, Flávio 81, válidos 190, X₁=13, X₂=69 → 47,9% → 56,2%/66,4% (+8,3/+18,5 p.p.). + +## Direção no codebase (hipótese) + +- **Áreas prováveis:** rota pública nova no route group `(frontend)`; dono do card/imagem: `src/lib/cardModels.ts` + `src/lib/cardRender.ts`, `src/components/cards/CardComposer.tsx`, `src/components/cards/cardCanvas.ts` (canvas → PNG), página `/cards` em `src/app/(frontend)/(home)/cards/page.tsx`; compartilhamento em `src/lib/contentShare.ts` + `src/components/conteudos/ContentPieceShareSheet.tsx` (share com files + fallback download). +- **Dados:** não há 2026 ingerido; precedente por seção em `scripts/build-expansao-secoes-2022.mjs` (chave `CD_MUNICIPIO|NR_ZONA|NR_SECAO`, ISO-8859-1, `;`) e `docs/research/analise-expansao-secoes-solla-julio-2022.md`; ingestão única do presidente T1 2026 no espírito de `scripts/seed-tse-results.mjs` — agregado nacional (~499k seções) viável. +- **Precedente a olhar:** `src/app/(frontend)/api/fotos/selfie/route.ts` (rota pública com rate limit e corpo limitado), `src/utilities/content/contentEventRateLimit.ts`, evento anônimo de download via `POST /api/content-events`. +- **Convenções:** rota estática de 1 segmento entra em `SHARE_LINK_RESERVED_SLUGS` (`src/lib/shareLink.ts`, com drift test); e2e novo precisa mapping em `scripts/lib/e2e-affected-manifest.mjs`. +- **Risco de acoplamento:** S43 (home-colinha) mexe no mesmo dono de card — serializar; não criar um segundo cano de imagem. + +## Dependências + +- Nenhuma dura. Serializa com S43 (mesmo dono de card/imagem). + +## Fora de escopo + +- Simulador livre de cenários ou transferência de votos diferente de "todos os disponíveis vão para Lula". +- Dados por seção de outros cargos, séries históricas ou 2º turno por seção. +- Mapa, busca por endereço, login, cadastro, coleta de contato, Consent. +- Análises/exports internos por seção para a campanha — outro item, se houver demanda. +- SEO/sitemap além do básico da rota. + +## Rabbit holes de produto + +- **"Só completar" com transferência seletiva de votos.** Se alguém completar: vira modelo opinativo e o número perde lastro. **Corte:** só o cenário único aprovado (todos os votos disponíveis para Lula). +- **"Só completar" com visão por zona/município.** Se alguém completar: vira um segundo produto analítico. **Corte:** um nível — a seção informada; agregados ficam fora. +- **"Só completar" com editor visual de story.** Se alguém completar: vira ferramenta de design. **Corte:** um template fixo 1080×1920. + +## Questões em aberto (produto) + +- **Escopo de UF: Brasil ou BA-only?** **Opções:** A) Brasil inteiro; B) só BA; C) BA primeiro com gate. **Recomendação:** A — ingestão única do presidente T1 2026 nacional; a seção de qualquer UF deve funcionar porque a viralização não respeita fronteira. _(assumido — validar com produto)_ +- **Rota/URL pública?** **Opções:** A) `/potencial`; B) `/potencial-secao`; C) dentro de `/cards`. **Recomendação:** A — rota estática curta, entrando em `SHARE_LINK_RESERVED_SLUGS`; memorável no story. +- **Baixar vs compartilhar?** **Opções:** A) só baixar; B) só share; C) baixar + share sheet quando disponível. **Recomendação:** C — baixar é o piso universal; share com arquivo quando o aparelho suportar. +- **Fonte se o bulk 2026 ainda não estiver publicado?** **Opções:** A) lançar só com o bulk; B) ingerir de boletins por seção; C) publicar com o que houver. **Recomendação:** A, com fallback documentado — script único de ingestão do bulk; se na janela só existir boletim, registrar a limitação e nunca estimar seção faltante. + +## Referências + +- GitHub Issue #1436 +- Design UI (gate): `docs/plans/potencial-secao-story-ui-design.html` (tier degradado — sign-off humano) +- Dono de card/imagem: `src/lib/cardModels.ts`, `src/lib/cardRender.ts`, `src/components/cards/CardComposer.tsx`, `src/components/cards/cardCanvas.ts`, `src/app/(frontend)/(home)/cards/page.tsx` +- Compartilhamento: `src/lib/contentShare.ts`, `src/lib/phone.ts`, `src/components/conteudos/ContentPieceShareSheet.tsx` +- Rota pública/rate limit: `src/app/(frontend)/api/fotos/selfie/route.ts`, `src/utilities/content/contentEventRateLimit.ts`, `src/utilities/electionCache.ts` +- Convenções de rota: `src/lib/shareLink.ts`, `scripts/lib/e2e-affected-manifest.mjs` +- Dados TSE por seção: `scripts/seed-tse-results.mjs`, `scripts/build-expansao-secoes-2022.mjs`, `docs/research/analise-expansao-secoes-solla-julio-2022.md`