Roadmap
s06. F5 — Data visualization
seed-ds-roadmap.md v2.14 · §s06seção 7 de 15s06-f5-data-visualization-fechada-6-6-2026-08-11.md · MD5 c082f0e8Título completo no canon: F5 — Data visualization ✅ FECHADA 6/6 (2026-08-11 — marcos v1.8/v1.9 do ESTADO_ATUAL; seed-dataviz.md v0.20)
Arquivo canônico: seed-dataviz.md — o 9º do sistema. Existe por conflito de regra-mãe: o seed-componentes.md manda "componente consome semântico", e o semântico de UI carrega intenção de interface (action-primary, feedback-danger); a série 2 de um gráfico não é "ação" nem "erro" — é a segunda categoria de um dado, com leis próprias (ordem fixa, diferenciação entre vizinhas, grayscale, isenção normativa). Mesmo precedente do e-mail (EM0) e da iconografia (NM5).
| Sub-bloco | Escopo | Status |
|---|---|---|
| DF · Fundamento | 7 decisões estruturais: arquivo próprio (DF1) · consumidor canônico shadcn Chart sobre Recharts v3 (DF2) · régua de acessibilidade em 4 pisos medidos (DF3) · grayscale como gate estrutural (DF4) · régua de validação em 4 camadas (DF5) · fronteiras (DF6) · uma fonte para os tokens (DF7) | ✅ estável (2026-08-09) |
| DT · Tokens de dado | Escalas v1.3 na §3c do seed-tokens.md: sequencial · no-data · divergente · gauge · stroke de traço fino |
✅ estável (2026-08-09) |
| DG · Gráficos core | 7 tipos (barra, empilhada, agrupada, linha, área, pizza, dispersão) + estados skeleton/empty/erro; 13 decisões, mais o redesenho visual DG14–DG17 | ✅ estável (2026-08-09/10) |
| DM · Monitoramento | Bullet graph canônico (gauge circular só por exceção) · sparkline na tabela §40 · gráfico do alerta ET5 (SUPERSEDIDO na v0.13: o e-mail de alerta NÃO leva gráfico) · spec DM1–DM11 no §4b | ✅ estável (2026-08-11 — spec escrita na v0.5, "aprovo" explícito do Rafael) |
| DP · Mapas | Diretriz MG-ES-BA · spec DP1–DP14 (§4d) · malha oficial IBGE 2025 (mgesba-2025.topo.json) |
✅ estável (2026-08-11) |
| DI · Impresso/PDF + integração | Grayscale/hachura para laudo e O&M · guia de integração da stack · DI1–DI19 | ✅ estável (2026-08-11 — DI-b fechado por PROVA IMPRESSA FÍSICA) |
Ordem de produção executada: DF → DT → DG → DM → DI → DP.
Pendência crítica de estado (2026-08-10): DG14–DG17, a paleta estendida e a spec do DM
existem apenas nos previews do Drive. RESOLVIDA em 2026-08-11, no dia seguinte — o lote de
formalização foi executado por inteiro: seed-tokens.md §3c v1.5 (categórica estendida,
magenta+violeta, supersede da restrição "nenhum hex novo") promovida a estável na v1.6 com
gêmeos na mesma edição e paridade-tokens.py de guarda · seed-dataviz.md v0.5 (supersede
DG11→DG14, emendas DG15–DG17, spec DM1–DM11 escrita) · suite-dataviz-dm.mjs criada. (Esta
linha só foi reconciliada aqui na v2.1, 2026-08-22 — o arquivo ficou 12 dias afirmando como
crítica uma pendência já morta; ver a nota de reconciliação do cabeçalho.)
Fronteiras declaradas (DF6): dashboard/layout de painel = F6 (a F5 entrega a peça, não o painel) · tempo real/websocket/persistência = produto (Lovable/Supabase) · BI exploratório ad-hoc = fora de escopo (revisável) · gráfico em e-mail = PNG @2x hospedado no R2, porque o runtime de e-mail não roda JS (herda EM5 e EM11).
Réguas que a fase acrescenta ao sistema: (1) o cinza é reservado a "sem dado" em qualquer gráfico SEED — nenhuma escala de valor pode usá-lo, e a distinção "gerou pouco × não reportou" nunca depende de cor (hachura obrigatória). Nasceu do gate do Rafael (ver log v1.9). · (2) paleta categórica estendida: a marca tem só 3 matizes livres para dado, então o dataviz ganha matizes próprios (magenta, violeta) que nunca aparecem em UI — padrão IBM Carbon/GitLab; nenhuma família de matiz repete antes da 6ª posição, e nenhum gráfico multi-série pareia tons da mesma família. · (3) vida vem de renderização, não de cor: zero contorno, canto arredondado, curva monótona, gradiente, palco mínimo e destaque×contexto (DG14–DG17) — a hipótese de que "mais cor = mais vida" foi testada contra 7 telas de referência e refutada: os gráficos da referência são quase monocromáticos.