Ir ao conteúdo
SEED engenhariaDesign System

Mapa de cobertura

22. Registro da sessão de 2026-08-19 — a SI-P4 executa, e a cobertura acha o que a LISTA não continha

mapa-cobertura-ds.md v2.31 · §22seção 24 de 2422-registro-da-sessao-de-2026-08-19-a-si-p4.md · MD5 3d2dd567

Leitor novo: este documento mapeia cobertura — quem mede o quê, e o que ninguém mede. Esta seção é a vigente e supersede a §21 como fotografia do estado. Registro completo em validacao/MANIFESTO.md §92; contratos em seed-componentes.md §65.7.

22.1 COBERTURA NOVA#

Instrumento Contrato Placar (2 execuções idênticas) Alcance
guarda-si17.mjs (NOVO) SI17-a/b/c/d — identidade de entidade em USO (§65.7) 16 PASS · 0 FAIL · 86 [n/a] ALVO DE PASTA: 51 arquivos da raiz × 2 temas
contraste-composicao.mjs SC 1.4.3, agora também a 390px 16 PASS · 0 FAIL · 30 folhas [n/a] por alvo COBERTO 8 telas × 2 temas · largura nunca medida antes
prova-inercia.mjs modo INTEIRA=1 (página inteira, exige mesma ALTURA de documento) achou o próprio ruído: 8 a 19 pixels de borda no tela-shell a 390px 8 telas × 2 temas × 2 larguras

22.2 O QUE A COBERTURA NOVA ACHOU — e a lição vale para todo censo deste projeto#

O censo do .sigla dizia QUATRO telas. São OITO. As quatro que faltavam — tela-chat, tela-gantt, tela-quadro e tela-referencia — apareceram no primeiro segundo em que a guarda varreu a PASTA em vez de uma lista escrita à mão. O número errado estava em três lugares (o §69.6 do seed-componentes.md, a abertura-proxima-sessao.md §7-a e o §91.1 do MANIFESTO) e foi repetido por quatro sessões.

REGRA QUE FICA, irmã de "PLACAR QUE MEDE NOME NÃO MEDE COISA": LISTA ESCRITA À MÃO MEDE A LISTA, NÃO O ACERVO. Todo instrumento cujo alvo é digitado à mão herda o esquecimento de quem digitou. Quando o contrato é transversal, o alvo é a PASTA.

Medir numa largura nova é cobertura barata. Rodar o contraste a 390px pela primeira vez custou segundos e rendeu dois defeitos de instrumento (29º: texto com alfa 0 lido como preto; 30º: alvo coberto medido pela rota do pixel) e um defeito visível a olho nu numa tela estável (SH-P2: a barra superior do tela-shell colidia — rótulo cortado, Ctrl K sobre o texto, avatar sobre a busca).

A suite-reflow (BT7) não via o SH-P2, e está certa em não ver: ela mede rolagem horizontal de documento, e não havia — 390 contra 390. O que quebrava era colisão dentro da faixa.

22.3 AINDA SEM COBERTURA — nomeado, não fechado#

# O que ninguém mede
CC-P6 (nova) o contraste a 390px só foi apontado para as 8 telas. As 24 bancadas seguem medidas só a 1440px. Ausência de medição não é aprovação.
SH-P3 (nova) nenhum instrumento mede COLISÃO — sobreposição de elementos irmãos dentro de uma barra que não estoura o documento. O SH-P2 foi achado por captura e olho, não por guarda. É a classe de defeito que a BT7 estruturalmente não cobre
PI-P1 (nova) o modo INTEIRA=1 da prova de inércia tem ruído próprio de 8 a 19 pixels em borda antisserrilhada; o número que vale é o do clip de 900px
NV1-c literal de cor fora de var() — a SI-P4 fechou um caso; o censo do acervo continua desconhecido
AC-P4 ninguém compara o valor de par semântico redeclarado no artefato com o do gêmeo
AC-P5 / MR-P3 os três nomes da mesma superfície vermelha, e o valor divergente de um deles
DP-P9 camada aplicada depois da geração que o gerador não conhece
PN-P5 artefato com carimbo de hora: não é reprodutível, e o diff dele é ruído
CC-P4 / CC-P5 180 folhas que o contraste declara [n/a] a 1440px — 36 por "zero pixel de fundo dentro da área pintada" e 4 (× 2 temas) pelo 30º defeito, agora nomeadas em vez de adivinhadas
CC-P1 banco-dataviz-dg e banco-dataviz-dp seguem excluídos e impressos como excluídos

22.4 Estado documental#

seed-componentes.md v1.11 (§65.7 — contratos SI17-a/b/c/d; SI-P4 FECHADA; nasce SI-P5) · validacao/MANIFESTO.md v13.0 (§92) · mapa-cobertura-ds.md v2.1 (esta seção) · gêmeos de token v1.17, sem alteraçãonenhum token nasceu: todos os consertos foram de CONSUMO (as listas NOMES dos oito geradores) ou de FOLHA DE ESTILO (o bloco único do .sigla e o 3º degrau do CP15 no tela-shell).

22.5 Segunda metade da sessão de 2026-08-19 — a IL-P2 e o defeito que a pendência não continha#

Instrumento Contrato Placar (execuções idênticas) Alcance
guarda-il15.mjs (NOVO) IL15-a…r — a grade editável cumpre o §67 e o padrão grid da ARIA 1 PASS · 0 FAIL · 50 [n/a] · 6 execuções ALVO DE PASTA: 51 arquivos da raiz

O que ela achou, e nenhuma guarda anterior podia achar: a planilha do §48 era inalcançável por teclado — 56 células em tabindex="-1", nenhuma em "0", 40 Tabs sem o foco entrar. A guarda pressiona Tab, setas, Home, End, Ctrl+Home, Ctrl+End, F2, Enter e Esc; guarda que lê atributo nunca teria visto.

REGRA QUE FICA: PENDÊNCIA ESCRITA É HIPÓTESE, NÃO CENSO. A IL-P2 listava três divergências de semântica. Eram sete defeitos, e o que importava era de teclado.

AINDA SEM COBERTURA, acrescentado aqui:

# O que ninguém mede
CC-P7 (nova) o contraste do tela-painel é medido só na lente padrão. Nenhum instrumento troca a lente antes de medir — as outras sete, inclusive a grade, seguem não medidas
PN-P6 (nova) o alvo do gatilho da grade mede 234×40px: passa a SC 2.5.8 (24×24) e fica 4px abaixo do piso de 44px do projeto. Subir muda a densidade da planilha — julgamento de produto, vai a gate

Estado documental atualizado: seed-componentes.md v1.12 (§67.7) · validacao/MANIFESTO.md v13.1 (§93) · mapa-cobertura-ds.md v2.2 (esta subseção).

22.6 Terceira parte da sessão de 2026-08-19 — SI18, e a guarda PARAMETRIZADA em vez de duplicada#

Instrumento Contrato Placar (2 execuções idênticas) Alcance
guarda-si17.mjs (parametrizada) SI17 (.sigla) + SI18 (.ent) 30 PASS · 0 FAIL · 174 [n/a] 51 arquivos × 2 temas × 2 contratos

Nenhuma guarda nova nasceu — a régua do SI18 é a mesma do SI17 (escrever a posição no navegador e ler o estilo computado), e a regra do projeto manda parametrizar, não duplicar.

O que ela achou: 29 elementos .ent em 7 telas — a auditoria do §69 dizia 14 —, com quatro formas diferentes, um ponto transparente no tela-lista e um raio literal divergente no tela-referencia. E, ao trocar o literal pelo token, o raio caiu para 0px: o gerador não emitia --seed-radius-1.

PS-P5 REVOGADA pela medição: o .mini-avatar carrega o CLIENTE (iniciais do cliente, posição de entidade), não uma pessoa. Nasce PS-P6, de produto.

AINDA SEM COBERTURA, acrescentado aqui:

# O que ninguém mede
PS-P6 (nova) um CLIENTE desenhado com anatomia de PESSOA — iniciais + ponto de presença. O ponto de presença é aria-hidden e a presença não está escrita em lugar nenhum da linha: informação só por cor, e para ninguém
IN-P1 (nova) o arquivo guarda-si17.mjs carrega dois contratos e o nome só cita um. Renomear exige apagar arquivo, que só o Rafael autoriza

Estado documental: seed-componentes.md v1.13 (§65.8 e §62.8) · validacao/MANIFESTO.md v13.2 (§94) · mapa-cobertura-ds.md v2.3 (esta subseção).

22.7 Quarta parte da sessão de 2026-08-19 — duas guardas novas, e o que elas contam#

Instrumento Contrato Placar Alcance
guarda-valor-gemeo.mjs (NOVO) AC5-a/b/c — valor de token redeclarado × gêmeo 36 PASS · 0 FAIL · 11 [achado] · 32 [n/a] · 4.930 valores comparados 51 arquivos × 2 temas
guarda-literal-de-cor.mjs (NOVO) NV2-a/b — censo do literal de cor fora de var() censo: 1.912 com nome disponível · 504 sem nome 51 arquivos × 2 temas
guarda-tinta-marca.mjs MR2, agora sobre a SUPERFÍCIE (lista de nomes) 8 · 0 · 60 · 20 textos 34 × 2
contraste-composicao.mjs os dois alvos antes excluídos por custo dp 2 · 0 depois do conserto · dg com 1 [achado] por tema CC-P1 fechada

O eixo que a AC5 fecha: ninguém comparava o valor de token redeclarado no artefato com o do gêmeo. Foi por aí que a DD-P1 passou. Ela achou 1 defeito real em 4.930 comparações — o anel de foco do banco-formfield que não clareava no tema escuro — e três falsos que viraram cláusulas do próprio instrumento (variante declarada no <html>, e tema que o artefato não promete).

O que a NV2 conta, e o que o número quer dizer: fora da família de e-mail — que não pode usar var(), porque cliente de e-mail ignora propriedade personalizada —, o acervo tem 484 literais de cor que já têm nome nesta casa e 168 que não têm. A guarda não reprova: trocar literal por token pode mudar pixel no outro tema.

AINDA SEM COBERTURA, acrescentado aqui:

# O que ninguém mede / decidiu
AC5-P1 (nova) os 93 tokens de dialeto local que a AC5 listou: cada um é lacuna de token ou nome que devia morrer, e ninguém decidiu qual
NV2-P1 (nova) os 484 literais de cor com nome disponível fora do e-mail
CC-P8 (nova) o <span> com "●" da legenda do banco-dataviz-dg: caractere usado como amostra de cor. Mede 4,08 e 3,31 — cumpre o piso 3,00 da SC 1.4.11 como elemento não textual, mas a guarda de texto o vê como texto. Desenho, vai a gate
DM-P1 (nova) o banco-dataviz-dm.html não tem gerador: o gen-dm.py produz FRAGMENTOS, com nome fixo e sem aceitar destino. São 20 geradores de artefato, não 21
CC-P6 · CC-P7 contraste a 390px só nas 8 telas; contraste do tela-painel só na lente padrão
SH-P3 · PI-P1 · IN-P1 · PN-P6 · SI-P5 · PS-P6 ver §22.2, §22.5 e §22.6

FECHADO nesta parte: AC-P4 · AC-P5 · MR-P3 · NV1-c (como censo) · DP-P9 · DP-P10 · CC-P1 · a contagem de arquivos do §3, aberta havia seis sessões: 322 arquivos em 8 diretórios, contados sobre a listagem recursiva do device_list_dir (saída de máquina), com o método e o risco residual declarados no §95.7 do MANIFESTO.

Estado documental: seed-componentes.md v1.13 · validacao/MANIFESTO.md v13.3 (§95) · mapa-cobertura-ds.md v2.4 (§22.7) · gêmeos de token v1.17, SEM ALTERAÇÃO — nenhum token nasceu em toda a sessão. (Superado pelo §22.8: o estado documental atual é v1.14 / v13.4 / v2.5.)


22.8 Quinta parte da sessão de 2026-08-19 — o Rafael respondeu as quatro perguntas, e achou uma DIMENSÃO de cobertura que não existia#

Leitor novo: esta subseção fecha a sessão de 2026-08-19 (§22 a §22.8). O que interessa a um mapa de COBERTURA aqui não são as quatro respostas — essas estão no seed-componentes.md. É o fato de que uma dimensão inteira de cobertura estava em ZERO e ninguém sabia, porque nenhuma guarda a olhava.

22.8.1 A dimensão que não existia: CENTRO DO DESENHO DENTRO DO ALVO#

O Rafael apontou, num anexo de imagem e a olho nu, um ícone fora do centro do botão. Aquele controle passava em todas as guardas do acervo: tamanho de alvo (SC 2.5.8), nome acessível (SC 4.1.2), contraste de objeto gráfico (SC 1.4.11), foco visível. Nenhuma media POSIÇÃO INTERNA.

dimensão de cobertura antes depois
centro do desenho dentro do controle de ícone 0 controles medidos — a dimensão não existia 189 controles, 51 arquivos, 2 viewports, 0 fora do centro

Instrumento novo: validacao/guarda-centro-alvo.mjs (contrato CT1, seed-componentes.md §70). Fronteira declarada: mede só o tema claro (CT-P1) e só o estado de repouso (CT-P2). Duas pendências nascem já sabendo o que a guarda NÃO cobre — porque ausência de medição nomeada é dívida declarada, e ausência de medição silenciosa é buraco. ⚠ SUPERSEDIDO na §22.9, no mesmo dia: as duas fronteiras foram fechadas.

22.8.2 A cobertura que CRESCEU sozinha, sem ninguém editar guarda#

A guarda-si17.mjs varre a pasta, não uma lista. Quando os 11 clientes de tela-tabela e tela-referencia viraram quadrados .sigla, a guarda passou a medi-los no mesmo minuto, sem edição nenhuma:

artefato .sigla medidos antes depois
tela-tabela.html 1 7
tela-referencia.html 1 6

É o argumento empírico a favor de guarda-que-varre-pasta contra guarda-que-lê-lista: o acervo cresce e a medida acompanha sozinha. Com lista, os 11 elementos novos teriam entrado não medidos, e o placar continuaria verde.

22.8.3 A cobertura que estava MENTINDO, e a terceira reincidência#

A cláusula NUM-02 da suite-container.mjs contava elementos decorativos dentro da tabela e subtraía uma lista de classes escrita à mão. Quando .mini-avatar deixou de existir, ela reprovou 6 elementos corretos. Reescrita para medir a coisa (célula/linha oculta; enfeite que leva embora todo o texto da célula), sem citar classe nenhuma, e provada capaz de reprovar em duas injeções.

Terceira reincidência da mesma família nesta sessão — censo de telas da SI-P4 (dizia 4, eram 8), censo de elementos do SI18 (dizia 14, eram 29) e agora dentro de uma guarda. LISTA ESCRITA À MÃO MEDE A LISTA, NÃO O ACERVO — e a regra vale também para o miolo dos instrumentos, não só para a escolha dos alvos deles.

22.8.4 Contagem do acervo depois desta parte#

Nenhum artefato nasceu nem morreu: os 322 arquivos em 8 diretórios do §22.6 seguem valendo. O que mudou foi conteúdo de 12 arquivos (9 artefatos regerados ou editados, 2 moldes, 1 bancada) e o nascimento de 1 guarda e 1 montador de folha.

Artefatos novos de auditoria: render-audit/gate-v134/44 recortes PNG e a folha fechamento.html (2,9 MB, tudo embutido em base64, imagem faltando: 0).

Estado documental: seed-componentes.md v1.14 (§65.9, §65.10, §65.11 e §70) · validacao/MANIFESTO.md v13.4 (§96) · mapa-cobertura-ds.md v2.5 (esta subseção) · gêmeos de token v1.17, SEM ALTERAÇÃO — nenhum token nasceu em toda a sessão de 2026-08-19.

22.9 Sexta parte da sessão de 2026-08-19 — as duas fronteiras declaradas do CT1 fecham, e a cobertura passa a ter EIXO DE ESTADO#

Leitor novo: esta subseção presume que você nunca viu a conversa que a gerou. Na quinta parte (§22.8) nasceu o contrato CT1o desenho dentro de um controle de ícone tem de estar no centro da caixa do controle — porque o Rafael Sant'Ana (CEO da SEED engenharia, decisor único do projeto) apontou a olho nu, num anexo de imagem, um ícone torto num botão de 44px que passava em todas as mais de 60 guardas do acervo. A guarda nasceu com duas fronteiras declaradas: media só o tema claro e só o estado de repouso. As duas fecharam nesta sexta parte.

22.9.1 COBERTURA NOVA — o eixo de PONTEIRO estava em ZERO; o de FOCO já existia, e isso foi MEDIDO#

dimensão antes desta parte depois
centro do desenho por TEMA 1 tema (claro) 2 temas, e o tema escuro só é medido em quem promete tema escuro (5 dos 51 não prometem, medido por assinatura de cor, não por grep)
centro do desenho por ESTADO 1 estado (repouso) 4 estados: repouso · :hover · :active · :focus-visible, produzidos por interação real (ponteiro movido, botão pressionado, Tab apertado) e com asserção de que o estado pegou
combinações medidas 1 8 (2 temas × 4 estados), em 2 larguras (1440px e 390px)
medições efetivas 189 a 1440px 1.480 a 1440px e 1.472 a 390px · 0 fora do centro

Placar: 180 PASS · 0 FAIL · 228 [n/a] em cada largura, com duas execuções idênticas em cada uma. A matriz completa, separada por tema e por estado, está em seed-componentes.md §70.5.2placar que não separa o que tem regra diferente mente pela média.

QUEM MEDIA ESTADO ANTES DESTA PARTE — censo dos 52 arquivos .mjs da pasta validacao/, contado, não estimado. A primeira redação desta subseção afirmava que "nenhum instrumento media estado". Medido, isso estava errado, e a correção está aqui em vez de sumir:

eixo instrumentos que o tocavam ANTES o que isso significa
PONTEIRO (:hover, :active por mouse.move / mouse.down) 0 de 52 este eixo estava de fato em zero. Nenhum instrumento do acervo jamais moveu o ponteiro
FOCO (.focus() e/ou keyboard.press) 20 de 52 o eixo já existia: guarda-il15 (11 usos de tecla), suite-edicao-linha (7), suite-quadro (6), suite-texto-rico, suite-detalhe, suite-credencial, suite-data, suite-render, suite-identidade, suite-feedback, suite-navegacao, suite-pessoa, suite-sobreposicao, suite-superficies, guarda-forced-colors, suite-cn, suite-container, suite-gantt, suite-prioridade, suite-rotulagem
:focus-visible pelo NOME 1 de 52 (suite-navegacao.mjs) os outros 19 medem o efeito de focar, não a pseudo-classe que só liga com modalidade de teclado

A afirmação correta, e ela é mais estreita do que a primeira que eu escrevi: o que nasceu aqui é o eixo de PONTEIRO, que estava em zero nos 52 instrumentos; o eixo de foco já era coberto por 20 deles, e o que o CT1 acrescentou nele foi a modalidade de teclado explícita (um Tab por passe, sem o qual .focus() programático não casa com :focus-visible no Chromium) e a asserção de que o foco pegou. Este parágrafo é o registro de uma afirmação minha que a medição revogou — pendência escrita é hipótese, não censo, e vale também para o que eu mesmo acabei de escrever.

22.9.2 AINDA SEM COBERTURA — nomeado, não fechado#

# O que não é medido Por quê
CT-P3 combinação de estados (foco por teclado e ponteiro em cima ao mesmo tempo) o número de combinações cresce em fatorial e ainda não há evidência de que alguma mova tinta
CT-P4 os três cortes de candidatura do CT1 (conteúdo ≤60% · caixa quadrada · sem justify-content: space-*) eles nasceram porque a guarda condenou 37 controles corretos, mas o critério nunca foi provado capaz de errar — nem de excluir de menos, nem de excluir demais
eixo de PONTEIRO nos OUTROS contratos contraste, alvo, cor forçada e reflow seguem medindo só repouso — medido: 0 de 52 instrumentos move o ponteiro além dos dois desta parte dívida declarada nesta subseção, sem dono ainda. Contraste em :hover é o caso mais provável de esconder defeito real, porque fundo de hover é uma cor que ninguém mediu

22.9.3 Dois defeitos de INSTRUMENTO, e o formato do dano em cada um#

# defeito o dano, e por que ele é difícil de ver
33º do catálogo scroll-behavior: smooth em 3 artefatos fazia scrollIntoView() animar, e a guarda lia a posição antes de a rolagem terminar não produzia FAIL: produzia [n/a] com motivo plausível ("o ponteiro não alcança"). 14 medições perdidas em silêncio. Desligar animation e transition NÃO cobre scroll-behavior — ela é uma terceira forma de animar e tem de ser desligada por nome. Consertado, as 14 voltaram
motivo de [n/a] agregado <button disabled> (isento por contrato) e <div role="button"> sem tabindex (defeito de teclado, SC 2.1.1) saíam com o mesmo motivo motivo agregado esconde causa: um defeito real poderia ficar escondido atrás de uma isenção legítima. Separados, o acervo mostrou 4 casos, todos disabled, e nenhum defeito de teclado — mas isso é conclusão de medida, não de sorte

22.9.4 A pasta de prova, e por que ela é cobertura#

render-audit/prova-ct1/8 artefatos de dado sintético com defeito plantado, mais um LEIA-ME.md autossuficiente. Placar de referência: 40 PASS · 12 FAIL · 12 [n/a], idêntico em duas execuções, com os 4 caminhos de [n/a] disparando.

Ali, FAIL é o resultado desejado — é um teste de teste. Se a pasta voltar 0 FAIL, quem quebrou foi a guarda, não o acervo. Isto é cobertura de instrumento, categoria que este mapa não tinha: até aqui o mapa media o que as guardas cobrem do acervo, e não o que prova as guardas.

22.9.5 Contagem do acervo depois desta parte#

Nenhum artefato banco-* ou tela-* foi alterado. Nenhum token nasceu. Os 34 artefatos e os 51 HTMLs de raiz seguem idênticos byte a byte — e isso é resultado medido, não omissão: o bloco CT1 escrito na quinta parte já estava correto também no tema escuro e nos três estados de interação.

Nascem 12 arquivos: render-audit/prova-ct1/ (9) · validacao/monta-folha-v135.py · render-audit/spec-ct1.json · render-audit/gate-v135/fechamento.html (27 imagens embutidas em base64, imagem faltando: 0) mais os 29 PNG de recorte. Mudam 4: validacao/guarda-centro-alvo.mjs (reescrito) · validacao/corta-recorte.mjs (estendido com hover, ativo, rotulo e asserção de estado) · seed-componentes.md · validacao/MANIFESTO.md.

Estado documental: seed-componentes.md v1.15 (§70 reescrito: §70.5 supersede, §70.6 prova de inércia, §70.7 pendências) · validacao/MANIFESTO.md v13.5 (§97) · mapa-cobertura-ds.md v2.6 (esta subseção) · gêmeos de token v1.17, SEM ALTERAÇÃO.

22.10 Sétima parte da sessão de 2026-08-19 — duas dimensões que estavam em ZERO, e uma delas foi aberta por uma RECUSA#

Leitor novo: esta subseção presume que você nunca viu a conversa que a gerou. Na parte anterior (§22.9) eu registrei, na folha do gate, que o sino e o botão de menu da barra superior do tela-shell não mudavam nada ao receber o mouse — e classifiquei isso como "decisão de aparência", devolvendo a decisão ao Rafael Sant'Ana (CEO da SEED engenharia, decisor único do projeto). Ele recusou a pergunta: "o que o mercado sugere? pesquise e aplique, nao é decisao minha." Desta recusa nasceu a primeira dimensão abaixo. A segunda fecha a SH-P3, aberta havia quatro partes.

22.10.1 COBERTURA NOVA — o eixo de RESPOSTA AO PONTEIRO (contrato HV1)#

dimensão antes desta parte depois
o controle responde ao ponteiro? 0 controles medidos — a dimensão não existia 1.410 controles ativos, 51 arquivos, 2 temas, 1440px
o pressionado é distinto do sobrevoo? 0 1.410
a tinta sobrevive ao fundo novo do estado? 0 1.410, com piso ≥3,0 (só ícone, SC 1.4.11) e ≥4,5 (com texto, SC 1.4.3)

O que a cobertura nova ACHOU, e é o maior achado de uma medição nesta sessão:

cláusula reprovações proporção
HV1-a sem nenhuma resposta ao ponteiro 619 44%
HV1-b pressionado indistinguível do sobrevoo 1.350 96%
HV1-c contraste abaixo do piso no estado novo 90 6%violação de norma HOJE

Placar: 0 PASS em 51 arquivos.

A lição de cobertura: o Rafael viu DOIS botões e a régua encontrou 1.969 reprovações. É a terceira vez nesta sessão que um apontamento dele revela uma CLASSE — foi assim com o ícone fora do centro (2 apontados → 16 defeitos) e com a empresa logada (1 nome → 8 telas). Quando ele aponta uma coisa, a pergunta de cobertura não é "quantos como este?", é "que régua está faltando?".

E há uma lição sobre a natureza do instrumento: a guarda julga pelo PIXEL, com três capturas por controle, porque a primeira versão — que julgava por getComputedStylese desmentiu na primeira execução. Propriedade computada do ELEMENTO não descreve a APARÊNCIA do elemento: o que o usuário vê é a composição.

22.10.2 COBERTURA NOVA — COLISÃO, COBERTURA E CORTE (contrato SH1) · FECHA a SH-P3#

dimensão antes depois
colisão entre irmãos em fluxo 0 pares comparados 96.000 pares a 1440px e 95.140 a 390px
texto coberto (hit-test de quem está por cima) 0 9.826 nós de texto a 1440px
texto cortado sem reticência 0 todas as caixas que escondem excesso
espaçamento da SC 1.4.12 (line-height 1.5, letter-spacing .12em, word-spacing .16em) nunca medido em nenhum instrumento do acervo medido em todos os 51 arquivos, nos dois temas

Placar: 204 PASS · 0 FAIL · 0 [n/a] a 1440px · 198 PASS · 6 FAIL a 390px (os 6 são a pendência SH-P8).

O que a suite-reflow (BT7) estruturalmente não cobria, e por isso a SH-P3 existia: ela mede se o documento estoura na largura. Conteúdo pode encavalar sem estourar largura nenhuma. Guarda que mede o continente não mede o conteúdo. E foi exatamente ali que os defeitos reais estavam: quatro artefatos escondiam conteúdo a 390px sem que nenhum placar reclamasse.

22.10.3 CATEGORIA NOVA DE COBERTURA — DECLARAÇÃO COM SAÍDA VERIFICADA#

Duas situações do acervo eram legítimas e, para uma guarda que só olha pixel, idênticas a defeito: o painel de chat que sobrepõe de propósito (contrato CH3) e a régua do cronograma que é recortada e acompanha a área rolável. A saída não foi afrouxar a régua nem listar exceções à mão — foi criar data-sobrepoe="declarado:<id>" e data-recorte="sincronizado:<id>", e a guarda verifica que a saída existe, está visível e opera.

Isto é cobertura de um tipo que este mapa não tinha: cobertura da INTENÇÃO. Até aqui o mapa media o que as guardas alcançam do acervo; agora há um mecanismo para o acervo declarar o que é desenho, em linguagem que a máquina verifica. Declaração sem saída verificável não isenta: reprova.

22.10.4 CINCO defeitos de instrumento, todos de FALSO POSITIVO#

A primeira execução da SH1 acusou 398 colisões, 122 textos cobertos e 304 textos cortados. Depois de cinco consertos de régua — nenhum de artefato — o acervo saiu limpo a 1440px. Os defeitos foram: caixa de inline multilinha (106 falsos strong × strong) · 34º <details> fechado tem retângulo e não tem pixel · 35º elementFromPoint é hit-test, não pintura · 36º a técnica de leitor de tela é uma caixa de 1px com overflow:hidden (172 falsos span.vh) · 37º conteúdo rolado para fora de overflow:auto · 38º o eixo que esconde tem de ser o que transborda.

Lição de cobertura, e ela é o contrário do que a intuição diz: guarda nova que reprova DEMAIS é mais perigosa que guarda que reprova de menos, porque força conserto errado em artefato correto. Eu quase consertei uma tabela feita PARA LEITOR DE TELA para satisfazer um placar.

22.10.5 Contagem do acervo depois desta parte#

Nascem 26 arquivos: render-audit/prova-hv1/ (8) · render-audit/prova-sh1/ (14) · validacao/guarda-resposta-ponteiro.mjs · validacao/guarda-colisao.mjs · validacao/monta-folha-v136.py · render-audit/gate-v136/ (a folha + 32 recortes). Mudam 12: 4 moldes, 1 gerador, 4 artefatos regerados, seed-design-system.html, e os dois gêmeos de token.

Estado documental: seed-componentes.md v1.16 (§71 e §72) · validacao/MANIFESTO.md v13.6 (§98) · mapa-cobertura-ds.md v2.7 (esta subseção) · gêmeos de token v1.18 — os PRIMEIROS dois tokens da sessão inteira, e sem nenhum hex novo: o que nasceu foi o propósito com nome.

22.11 Oitava parte da sessão (2026-08-20) — a dimensão de VAZAMENTO entra, e o 40º defeito ensina o que "medir duas vezes" significa#

Leitor novo: esta subseção presume que você nunca viu a conversa que a gerou. Na parte anterior (§22.10) nasceu o contrato SH1nada se sobrepõe, nada fica coberto, nada é cortado em silêncio — com três cláusulas, e o acervo saiu 204 PASS · 0 FAIL a 1440px. Nesta parte o Rafael Sant'Ana (CEO da SEED engenharia, decisor único do projeto) mandou uma captura do tela-gantt.html a 390px com duas setas vermelhas nos botões "Anterior" e "Próximo" e escreveu: "o nome dentro do botao estoura para fora, isso tem soluçao?". As três cláusulas de SH1 davam aquela tela como limpa.

22.11.1 COBERTURA NOVA — o eixo de VAZAMENTO (cláusula SH1-d)#

dimensão antes desta parte depois
conteúdo que transborda caixa com overflow: hidden (o que o recorte esconde) coberto desde a §22.10, pela SH1-c idem
conteúdo que atravessa a fronteira visível da própria caixa (o que a caixa não segura) 0 caixas medidas — a dimensão não existia em nenhum dos 54 instrumentos 9.456 caixas com fronteira visível a 1440px e 9.244 a 390px, nos 51 arquivos × 2 temas × 2 espaçamentos

Fronteira visível = borda, fundo pintado, ou ser controle interativo. O recorte é da régua, não conveniência: texto que passa da caixa de um div transparente é layout normal e ninguém vê; texto que atravessa a borda de um botão salta aos olhos.

SH1-c e SH1-d são o mesmo defeito por dois lados, e é isso que faz desta uma dimensão nova de cobertura e não um refinamento: um instrumento que só olhasse overflow: hidden seria estruturalmente cego para metade do problema. Cobertura não se mede em número de guardas — se mede em número de PERGUNTAS que alguma guarda sabe fazer.

22.11.2 O que a cobertura nova achou#

alcance vazamentos
primeira execução sobre o acervo 168 — e todos eram do instrumento (39º defeito: clientWidth de inline não-substituído vale ZERO; censo: 124 code + 24 kbd + 16 span.kbd + 4 span)
depois do conserto da régua 2 — exatamente os dois botões que o Rafael apontou
depois do conserto do artefato, a 390px e 1440px, nos dois espaçamentos 0

22.11.3 A dimensão de cobertura que ninguém tinha combinado: a ALTURA da janela#

Este projeto padronizou largura (1440px e 390px) e nunca padronizou altura — todos os 54 instrumentos usam 900 por herança, não por decisão. Nesta parte a segunda medição do acervo a 390px saiu com altura 844, por descuido, e o placar divergiu: 8 FAIL a 390×844 contra 6 FAIL a 390×900.

A causa da divergência era o 40º defeito de instrumento: opacity: 0 NÃO tira o elemento do hit-test (visibility:hidden e display:none tiram), e a função que decidia "isto pinta?" olhava cor, imagem e borda, não opacidade. O div#toast invisível do banco-icones.html é position:fixed; bottom:16px — logo a posição dele depende da ALTURA da janela: a 844 ele cai sobre um rótulo, a 900 cai 56px abaixo, sobre nada.

LIÇÃO DE COBERTURA, e ela corrige uma regra de método deste projeto por dentro: rodar o mesmo comando duas vezes não é medir duas vezes — é obter o mesmo número duas vezes. Medir duas vezes é variar uma dimensão e ver se a conclusão sobrevive. A altura da janela é uma dimensão de cobertura real que estava congelada em um único valor, e por isso escondia defeito. Depois do conserto as duas alturas concordam em 198 PASS · 6 FAIL.

Fica declarado como dívida, não como conclusão: a única altura medida de propósito neste acervo continua sendo 900. Varrer uma segunda altura sistematicamente — em SH1 e nas outras guardas — não está feito.

22.11.4 Contagem e estado documental depois desta parte#

Nascem 3 arquivos: render-audit/prova-sh1/sh-d-vaza-botao.html · render-audit/prova-sh1/sh-isento-sem-fronteira.html · render-audit/prova-sh1/sh-achado-opacidade-zero.html. Mudam 6: validacao/guarda-colisao.mjs (cláusula SH1-d + dois consertos de régua) · validacao/tela-gantt-template.html · tela-gantt.html (regerado, nunca editado à mão) · render-audit/prova-sh1/LEIA-ME.md · seed-componentes.md · render-audit/gate-v136/fechamento.html.

A pasta de prova de SH1 vai a 16 fixtures, com placar de referência 42 PASS · 22 FAIL — e ali FAIL é o resultado desejado: se aquela pasta voltar 0 FAIL, quem quebrou foi a guarda.

Estado documental: seed-componentes.md v1.17 (§72 revista) · validacao/MANIFESTO.md v13.7 (§99) · mapa-cobertura-ds.md v2.8 (esta subseção) · gêmeos de token v1.18, sem mudança · propagação para a pasta do Drive: 69 arquivos escritos e 77 conferidos por MD5, 0 divergentes — o que fecha a propagação pendente que a queda da ponte deixou na sétima parte.

22.12 NONA parte (2026-08-20) — duas réguas mediam a coisa errada, e a segunda escondia 862 reprovações num arquivo canônico#

Autossuficiente: presume um leitor que nunca viu a conversa. Esta subseção registra o que a cobertura aprendeu ao fechar a pendência HV-P5 (contraste no estado de sobrevoo/pressionado). Registro completo em validacao/MANIFESTO.md §100.

O que passou a ser medido, e o que se descobriu que NUNCA foi#

dimensão antes agora como se soube
tinta de QUEM PINTA a letra dentro de um controle a HV1-c media a tinta do controle mede um alvo por elemento com nó de texto próprio medido: de 1.260 controles com texto, 364 pintam por descendente e 164 com tinta diferente. Rendeu 1 artefato correto absolvido e 12 defeitos reais que a régua velha não via
cobertura da varredura de contraste filtro /^(banco|tela)-.*\.html$/34 de 51 HTMLs de raiz os 17 restantes medidos um por um 32 PASS · 0 FAIL em 16 deles; o 17º (seed-design-system.html) tinha 862 folhas reprovadas
tinta × TODAS as superfícies de interação (não só a página) tinta de marca medida contra a página: 4,60 tabela tinta × 5 superfícies #098475 reprova em todas as que não são branco puro: 4,23 · 3,81 · 4,28
rolagem suave na ferramenta de RECORTE não desligada desligada por nome o recorte do seed-design-system.html saía fora da imagem — era o 33º defeito, num terceiro instrumento

As dimensões que seguem em ZERO, agora com nome#

dimensão quem mediria por que está em zero
estado de SELEÇÃO (tr.selecionada) para contraste ninguém a CT1 cobre repouso/hover/ativo/foco; a HV1 cobre hover/ativo. Seleção é estado de DADO, não de ponteiro — escapou dos dois eixos. Medido de propósito nesta parte: text-link sobre row-selected-bg = 4,28, abaixo do piso. Pendência SE-P1
COLISÃO DE ESPECIFICIDADE de CSS ninguém todas as guardas medem o resultado, nenhuma mede a causa. Ela já produziu três defeitos em três partes consecutivas: o avatar da barra superior (§71.7), a página corrente da paginação e o título da coluna de marca. Pendência ES-P1
defasagem entre a versão do gêmeo declarada no artefato e a atual ninguém medido por comando: o acervo declara seis versões — v1.5 (1) · v1.7 (2) · v1.8 (1) · v1.9 (15) · v1.12 (1) · v1.17 (23) · v1.19 (3). Pendência TK-P1
scroll-behavior nos 54 .mjs de validacao/ uma varredura de uma linha não medida nesta sessão. O 43º defeito foi encontrado por acidente num instrumento; ninguém varreu os outros
degrau de TEXTO GRANDE na HV1-c o próprio instrumento fora de propósito para a prova de inércia ser legível. Medido: 0 vereditos mudariam hoje. Pendência HV-P6

A lição de cobertura desta parte#

Um filtro por PREFIXO DE NOME DE ARQUIVO é uma lista escrita à mão com outra sintaxe. Ele herda o esquecimento de quem o digitou — e é pior que uma lista explícita, porque tem a aparência de alvo de pasta, que é justamente o mecanismo que esta casa criou para "a cobertura crescer sozinha". Alvo de pasta com filtro de nome dá a aparência de crescer sozinho e não cresce.

E o contraste com o outro instrumento é a prova: a guarda-resposta-ponteiro.mjs e a guarda-colisao.mjs varrem readdirSync(...).filter(f => f.endsWith('.html'))os 51 — e por isso viram o seed-design-system.html. A mesma pasta, dois instrumentos, duas coberturas diferentes, e ninguém tinha comparado as duas listas. Fica como régua nova: quando dois instrumentos varrem a mesma pasta, a diferença entre os dois conjuntos de alvo é um número que alguém tem de imprimir.


22.13 DÉCIMA parte (2026-08-20) — a cobertura de BT1 sai de "dez de trinta e quatro" para alvo de pasta, e nasce uma dimensão de ENTREGA#

Autossuficiente: presume um leitor que nunca viu a conversa. Esta subseção registra o que a cobertura aprendeu ao verificar por instrumento o contrato BT1a barra de controles de avaliação de todo artefato produzido é fixa no topo —, escrito em seed-componentes.md §64.1 desde 2026-08-16. Especificação completa em seed-componentes.md §74; registro de método em validacao/MANIFESTO.md §101; folha de conferência em render-audit/gate-v141/fechamento.html.

Vocabulário mínimo. Barra de provas = os botões que existem só para AVALIAR o artefato (alternar claro/escuro, prova em escala de cinza, seletor de largura), não para usá-lo. Alvo de pasta = instrumento que descobre seus alvos varrendo o diretório (readdirSync(dir).filter(f => f.endsWith('.html'))) em vez de percorrer lista escrita à mão — com isso a cobertura cresce sozinha quando nasce arquivo novo. [n/a] = veredito de "não se aplica", que nesta casa é sempre acompanhado de motivo nomeado.

O que passou a ser medido, e o que se descobriu que NUNCA foi#

dimensão antes agora como se soube
BT1 — barra de provas travada no topo lista escrita à mão de 10 artefatos (nove telas + banco-dominio, com tela-site excluída), declarada verificada em 2026-08-17 ao fechar a BT-P2 validacao/guarda-barra-fixa.mjs, alvo de pasta, varre os 51 HTMLs de raiz: 33 PASS · 0 FAIL · 18 [n/a] o Rafael abriu um arquivo (banco-navegacao.html), viu os botões soltos no fluxo e escreveu "acredito ter outros". Havia onze
a barra GRUDA de fato (não só declara sticky) ninguém rolava a página: a verificação era da propriedade três das quatro cláusulas são comportamentais — rola até o fim e mede o retângulo dos onze reprovados, dois (banco-feedback, banco-superficies) tinham position:fixed — a propriedade "passava" e o comportamento reprovava (topo a +12px, tolerância 4px)
a barra não COBRE conteúdo (BT1-d) dimensão inexistente medida com a página NO TOPO: o irmão seguinte tem de começar depois do fim da barra 2 reprovações. A primeira versão desta cláusula media depois de rolar, e reprovava o sticky legítimo — foi a pasta de prova que pegou
a barra não é COBERTA (BT1-c) dimensão inexistente, embora o defeito já tivesse acontecido hit-test no centro da barra + interceptação do clique 0 no acervo hoje — mas o defeito é real: em 2026-08-17 a tela-chat tinha barra e painel empatados em z-index:60 e, a 320px, o chat cobria a barra inteira
largura de janela como eixo de BT1 não existia medido a 1440×900 e 320×900 o defeito histórico da tela-chat só aparecia a 320px. Medido: a 320px a peneira acha 92 candidatos (contra 93) e descarta 585 (contra 608); o veredito não muda
fidelidade da DEMONSTRAÇÃO entregue ao decisor dimensão inexistente — folha de conferência só tinha imagem estática validacao/extrai-vivo.mjs extrai o trecho VIVO do artefato real e a guarda HV1 oficial mede o quadro extraído 6/0/0 · 6/0/0 · 10/0/0 · 4/1/0 — e o único "1" reproduz um defeito real remanescente do artefato, o que é a prova de que o quadro é fiel

A dimensão de cobertura que nasce aqui: a FORMA DE ENTREGA também tem de ser medida#

O Rafael pediu, verbatim: "ao invés de me pedir para abrir o arquivo … abaixo do print, traxa a pagina viva para eu poder passar o mouse e testar … basta repetir o codigo daquela parte correto?"

Não basta. Trecho redigitado na folha de conferência torna a folha uma SEGUNDA FONTE — ela pode mostrar um botão que se comporta de um jeito enquanto o artefato se comporta de outro, e ninguém notaria. É a classe de defeito que este projeto chama de dado sintético plausível: o mais perigoso, porque não chama atenção e por isso não é conferido.

Régua nova: DEMONSTRAÇÃO VIVA É EXTRAÍDA, NUNCA REDIGITADA. E, sendo extraída, ela é mensurável — daí a linha nova na tabela acima. Antes desta parte, a única coisa que a folha de conferência garantia era que a imagem tinha sido gerada; nada garantia que o que o decisor tocava correspondia ao artefato.

Fronteira declarada da nova dimensão: o <iframe> não é o artefato — não tem o layout inteiro em volta. Ele não serve para julgar composição, aperto de largura nem colisão; para isso o veredito continua sendo do artefato e das guardas. Ele serve para passar o mouse e clicar.

O 44º defeito de instrumento — e por que ele é um defeito de COBERTURA, não só de código#

A primeira versão do extrai-vivo.mjs lia CSS com expressão regular. Medido ao provar a folha: em TRÊS dos CINCO quadros o bloco de tokens não entrou--seed-text-primary resolvia vazio e o fundo saía transparente. Causa: chave { dentro de COMENTÁRIO CSS desalinha um parser de texto, e esta casa acabou de escrever, no mesmo dia, comentários que contêm { position: fixed }.

A régua certa já existia na casa: a guarda-literal-de-cor.mjs percorre o CSSOM (document.styleSheetscssRules) desde que nasceu — no CSSOM o comentário não existe e o seletor já vem normalizado. Reescrito por CSSOM: 5 de 5 resolvem.

Terceira vez NA MESMA SESSÃO em que a régua certa já estava escrita em outro arquivo (as outras duas: a HV1-c alinhada ao contraste-composicao.mjs, e o scroll-behavior que dois instrumentos já desligavam e um terceiro não). Isso é um achado de cobertura: não existe censo de qual técnica cada instrumento usa para a mesma tarefa. Nomeado como pendência IN-P2.

As dimensões que seguem em ZERO — atualizadas#

dimensão quem mediria por que está em zero
BT2 — seletor de LARGURA DE PÁGINA em toda bancada ninguém BT1 e BT2 nasceram no mesmo gate (§64.1) e só um ganhou régua. A guarda-barra-fixa.mjs declara não julgar a composição da barra. Dos 33 artefatos com barra provada, quantos têm seletor de largura é hoje desconhecido — e "desconhecido" é exatamente o estado que a BT-P2 tinha quando foi declarada fechada. Pendência BT-P3
qual técnica cada .mjs usa para ler CSS (texto vs. CSSOM) uma varredura de uma linha o 44º defeito custou 3 de 5 quadros. Apenas guarda-literal-de-cor.mjs e extrai-vivo.mjs v2 estão confirmados em CSSOM; os outros não foram verificados. Pendência IN-P2
token consumido sem ser declarado, NO ATO DA ESCRITA ninguém as suítes pegam depois (NV-01/NV-02 acusaram 6 arquivos nesta parte: 38·1 → 39·0 e 92·1 → 93·0), e a guarda BP1 pegou o mesmo defeito em seis bancadas em 2026-08-17. Defeito que repete em família é defeito de método, não de arquivo
estado de SELEÇÃO para contraste ninguém inalterado desde §22.12. Pendência SE-P1
COLISÃO DE ESPECIFICIDADE de CSS ninguém inalterado desde §22.12. Pendência ES-P1
defasagem de versão do gêmeo declarada no artefato ninguém inalterado desde §22.12 (seis versões no acervo). Pendência TK-P1
scroll-behavior nos 54 .mjs de validacao/ uma varredura de uma linha ainda não medida. Segue de §22.12

A lição de cobertura desta parte#

PENDÊNCIA DE CONTRATO TRANSVERSAL NÃO FECHA POR LISTA — FECHA POR INSTRUMENTO DE ALVO DE PASTA. A BT-P2 foi declarada fechada em 2026-08-17 com "aplicada e MEDIDA em nove telas mais banco-dominio". Dez artefatos, num acervo de trinta e quatro. A frase não era falsa — os dez estavam certos; o que estava errado era chamar aquilo de fechamento de um contrato que diz "todo artefato produzido".

É a mesma família do 42º defeito de §22.12 (filtro por prefixo de nome deixando 17 de 51 fora) e a mesma família da lição de §22.2 ("o censo por classe é hipótese, não medida"). Três aparições em duas sessões consecutivas.

Régua operacional que sai daqui: ao declarar fechada uma pendência de contrato transversal, o fechamento tem de citar o instrumento, o alcance impresso pelo instrumento (quantos arquivos ele varreu, na pasta que varreu) e o censo de [n/a] com motivo. Fechamento que cita uma lista de nomes é hipótese com aparência de medida.


22.14 DÉCIMA parte, SEGUNDA rodada (2026-08-20) — nasce a dimensão de RECURSO QUE CHEGA, e ela veio de uma pergunta sobre outra coisa#

Autossuficiente: presume um leitor que nunca viu a conversa. Especificação completa em seed-componentes.md §75; registro de método em validacao/MANIFESTO.md §102; folha de conferência em render-audit/gate-v142/fechamento.html.

Vocabulário. Pilha de font-family = a lista de alternativas de uma declaração. Genérica = serif, sans-serif, cursive, monospace e afins, que o navegador sempre resolve. @font-face embutido = a fonte viaja com o arquivo e por isso é portátil; fonte de sistema = existe na máquina de quem olha e por isso não é.

Como esta dimensão nasceu#

O Rafael viu num anexo "uma imagem que não carregou" e perguntou se ela mudava a avaliação de contraste. A resposta medida foi não — cor, tamanho, peso, retângulo do texto dentro do cartão e cor do fundo no pixel saíram idênticos com e sem a imagem. A pergunta estava respondida em quatro números.

Mas a investigação achou o que a pergunta não continha: ninguém nesta casa jamais mediu se as famílias tipográficas e os recursos externos que um artefato declara realmente chegam. Medido no seed-design-system.html: 0 de 45 imagens e 0 de 2 famílias carregam. Consequência: todo recorte daquele artefato já mostrado ao decisor saiu com a tipografia de reserva.

Lição de cobertura: pergunta do decisor sobre um DETALHE é o modo mais barato de descobrir uma DIMENSÃO inteira que não existia. Ele não pediu uma dimensão nova; ele perguntou se um pixel importava. A resposta honesta obrigou a medir o que ninguém media.

O que passou a ser medido#

dimensão antes agora como se soube
família tipográfica que o artefato declara REALMENTE resolve dimensão inexistente validacao/guarda-tipografia-viva.mjs (contrato TP1), alvo de pasta, varre os 51 30 PASS · 21 FAIL · 0 [n/a]; 0 TP1-a — nenhum artefato perdeu o controle da tipografia
recurso EXTERNO que o artefato busca dimensão inexistente toda requisição que falha sai nomeada, com host e errorText 21 artefatos dependem de rede: 13 da família de e-mail (assets.seed.eng.br), 7 bancadas (fonts.googleapis.com), 1 o showcase legado (3 hosts, 46 recursos)
imagem declarada tem PIXEL dimensão inexistente complete && naturalWidth>0 por <img> 14 artefatos com imagem sem pixel. O texto de alt que aparece no lugar é tinta que NENHUMA régua desta casa mede — <img> não tem nó de texto próprio
PORTABILIDADE da fonte — resolve por @font-face ou por fonte de sistema? dimensão inexistente achado contado, nunca FAIL 85 pilhas resolvem por fonte de sistema. Elas resolvem aqui e não resolveriam numa máquina limpa
texto que atravessa DUAS superfícies a régua de contraste resolvia um fundo por elemento protótipo validacao/mede-fundo-por-linha.mjs, que mede por linha com Range.getClientRects() medido: a régua deu 6,56 onde o pixel dá 3,92. Pendência CC-P11
opacity em tinta lição de método escrita, sem sigla nem caso fundador caso fundador medido 4,60 declarado × 4,01 real no kicker do cartão de post. Pendência CC-P12

A atribuição por família muda o que o número SIGNIFICA — e isso é achado de cobertura#

As 21 reprovações de TP1-b não são 21 defeitos:

  • 13 são da família de e-mail e são isenção declarada: e-mail não pode embutir ativo; imagem remota é a norma do meio e o cliente bloqueia até o leitor liberar. O host é assets.seed.eng.br, da própria SEED.
  • 7 são bancadas que carregam a fonte do Google Fonts. Este é o achado novo e real.
  • 1 é o showcase legado, com 46 recursos externos num só arquivo.

Régua nova: placar de contrato transversal só é legível depois de ATRIBUIR o FAIL a uma família de artefato. "21 FAIL" e "7 bancadas mais uma isenção declarada de 13" descrevem o mesmo número e exigem decisões opostas. Nesta rodada a atribuição foi feita à mão — é dívida declarada, e a pendência TP-P1 é fazê-la sair impressa pelo próprio instrumento.

A lição de instrumento: cinco passes, e a repetição é o achado#

A guarda TP1 esteve errada cinco vezes antes de acertar: reprovou 48 de 51, depois 46, depois 22 com 3 falsos positivos, depois 6 de 6 na própria pasta de prova, e só então ficou correta. As cinco vezes o erro foi o mesmo em forma diferente — medir algo adjacente ao que o contrato nomeia: família em vez de pilha · pilha sem olhar a genérica · CSSOM declarado em vez de computed (devolvia var(--seed-font-sans) sem resolver) · computed sem excluir a fonte padrão do navegador.

QUANDO UMA RÉGUA NOVA REPROVA EM BLOCO, A PRIMEIRA HIPÓTESE NÃO É "O ACERVO ESTÁ RUIM" — É "A RÉGUA ESTÁ MEDINDO OUTRA COISA". E as cinco vezes foram pegas pela pasta de prova ou pela atribuição por família, nunca por um placar verde. Placar verde não descobre régua errada; contraditório descobre.

E uma armadilha catalogada para quem escrever a próxima guarda de fonte: document.fonts.check("18px 'Indie Flower'") devolve true com a folha de fonte falhando — responde sobre a família resolvida. As réguas honestas são [...document.fonts].length e a largura em canvas do mesmo texto com e sem a família.

⚠⚠ CONTAMINAÇÃO DE AMBIENTE, DECLARADA: o contêiner recebeu apt install fonts-montserrat nesta rodada, para consertar a fidelidade dos recortes. Montserrat passou a resolver como fonte de sistema, e é daí que vêm os 85 achados de portabilidade. A guarda imprime o aviso em toda execução. Contaminação de ambiente que não é declarada é dado sintético plausível com outro nome.

As dimensões que seguem em ZERO — atualizadas#

dimensão por que está em zero
BT2 — seletor de LARGURA DE PÁGINA inalterado desde §22.13. Pendência BT-P3
qual técnica cada .mjs usa para ler CSS inalterado desde §22.13. Pendência IN-P2
token consumido sem declaração NO ATO DA ESCRITA inalterado
estado de SELEÇÃO para contraste inalterado. SE-P1
COLISÃO DE ESPECIFICIDADE inalterado. ES-P1
defasagem de versão do gêmeo inalterado. TK-P1
scroll-behavior nos 55 .mjs ainda não medida
isenção por família DENTRO do placar nova: TP-P1

22.15 DÉCIMA PRIMEIRA parte (2026-08-20/21) — três dimensões novas, e as três nasceram de coisas que um placar VERDE não é capaz de ver#

Contexto para quem chega sem ter visto a sessão: a frente "serra em arcos" é o grafismo de rodapé do DS v2. Ela nasceu, foi estudada em cinco rodadas, ganhou onze vereditos do decisor e não estava em nenhum canônico até 2026-08-21. O registro completo está em validacao/MANIFESTO.md §103; o componente, em seed-componentes.md §76. Esta seção registra apenas o que a rodada acrescentou ao MAPA DE COBERTURA — isto é, dimensões que ninguém media, não artefatos.

A lição transversal da rodada, e ela é sobre a natureza dos instrumentos desta casa: as três dimensões abaixo têm a mesma forma. Em cada uma existia um placar VERDE, matematicamente correto, e estruturalmente incapaz de ver o defeito. Placar verde não descobre régua errada — e também não descobre régua AUSENTE.

① COBERTURA DE PROPAGAÇÃO — a dimensão que custou três instrumentos#

O que ninguém media: se tudo o que uma sessão criou foi propagado. Esta casa conferia religiosamente o MD5 de cada arquivo enviado — 17 na nona parte, 53 na décima, 44 na décima segunda rodada, sempre 0 divergentes. E essa conta é cega por construção: ela mede a fidelidade do que foi enviado e nada sobre o que ficou de fora. Um placar de 52/52 é matematicamente incapaz de ver o 53º arquivo que ninguém enviou.

O custo, medido: censo por instrumento (todos os caminhos validacao/*.py|*.mjs citados nos 412 arquivos de texto da pasta, extraídos por expressão regular) → 138 instrumentos citados, 3 inexistentes: guarda-grafismo.mjs (a guarda GR1, citada por 6 arquivos), gen-variantes-montanha.py (citada por 5) e gen-serra-formatos.py. Busca no índice do Google Drive, não só na pasta sincronizada: zero — nunca subiram. E o createdTime do índice mostra o padrão: às 00:50:19–00:50:25Z de 2026-08-21 entraram oito arquivos em validacao/, todos da fase FINAL daquela sessão. Os três perdidos são da fase anterior. Propagou-se o resultado e esqueceu-se o percurso.

A RÉGUA NOVA — pendência PR-P4. Todo fechamento de propagação passa a imprimir DUAS contas: (1) enviados × conferidos por MD5 e (2) arquivos CRIADOS ou EDITADOS na sessão × arquivos enviados, com a diferença NOMEADA. Sem a segunda, "0 ausentes" é opinião, não medida. Aplicada já nesta rodada: 47 criados/editados · 47 enviados · 0 ausentes — pela primeira vez esse "0" é medido. Família: é o 42º defeito outra vez — o ALVO estava errado, não a medição.

Estado hoje: dimensão INSTRUMENTADA À MÃO (a conta é feita, não é automática). Promover a script é a PR-P4.

② VALOR DE MARCA FORA DO CANÔNICO — a dimensão que deixou uma cor inventada viver quatro rodadas#

O que ninguém media: se um hex usado em artefato existe nos gêmeos de token. Havia guarda para literal de cor com nome disponível (NV2, 484 casos) e para valor divergente do gêmeo (AC5), mas nenhuma para "este valor não existe em lugar nenhum do sistema".

O caso fundador: #0A6B60, o plano mais distante das peças escuras da serra e da montanha. Varredura: 0 ocorrências em seed-tokens.md e seed-tokens.json. Entrou "por precedente" — e o arquivo do precedente não existia (dimensão ①). Viveu quatro rodadas e chegou a peça aprovada antes de o decisor apontar. Veredito dele: "eu nao autorizei e vc nao deveria ter criado sem autorizacao algo canonico e ja decidio."

A medição que fechou a saída em uma: #0A6B60#006C62 (turquesa-700): ΔE76 = 1,03, abaixo do limiar de percepção humana (~2,3) · contraste entre as duas 1,011 · no pixel da peça inteira a troca move 0,31% dos pixels com delta máximo de 10 em 255. Não havia escolha de aparência a fazer; havia um hex fora do sistema a remover.

REGRA §0-b DA CASA (nova): valor de marca que não existe no canônico não se cria — nem "por precedente", nem "provisoriamente até o gate", nem porque a diferença é invisível. Teste barato antes de qualquer "tem precedente": ls o arquivo do precedente. A GUARDA QUE FALTA, e ela é barata: varrer os literais de cor de todo artefato e reprovar o que não for stop de rampa canônica nem token semântico — a guarda-literal-de-cor.mjs já percorre o CSSOM e já tem a lista de nomes; falta a cláusula do valor órfão. Dimensão em ZERO até isso existir.

Estado hoje: dimensão NOMEADA, em ZERO. O caso fundador está consertado por varredura manual (14 arquivos encontrados, 12 peças limpas), não por instrumento.

③ ARTEFATO ÓRFÃO — a dimensão de "quantos artefatos não têm gerador"#

O que ninguém media: quantos artefatos da pasta são irreproduzíveis. A regra da casa manda checar ls validacao/gen-<nome>.py antes de editar — o que responde por artefato, um a um, no momento do conserto. Ninguém nunca perguntou o total.

O caso fundador: render-audit/gate-z3/fechamento-largos.html, 199.311 bytes, sem gerador nenhum — a string "fechamento-largos" só aparecia no handoff. Artefato não reproduzível é artefato não corrigível, e isso só apareceu no dia em que a cor teve de mudar. Consertado escrevendo o gerador que faltava (validacao/monta-folha-z3-largos.py), não editando o HTML à mão.

Régua: quando o ls do gerador dá "não existe", a saída é ESCREVER O GERADOR — editar o HTML à mão conserta o dia e mantém a dívida. O censo total é uma varredura de uma linha e não foi feita: cruzar os artefatos de render-audit/ e da raiz contra os gen-*.py/monta-*.py que os produzem, e imprimir os órfãos. Irmã da varredura de scroll-behavior e da IN-P2, que existem pelo mesmo motivo: lição escrita não é lição aplicada; o que aplica lição é varredura.

Estado hoje: dimensão NOMEADA, em ZERO (um caso achado por acidente, nenhum censo).

Uma dimensão que EXISTIA e ganhou caso fundador: "declarou e não aparece" na TINTA DE GRAFISMO#

Medido: na capa 4:1 antiga o #0A6B60 estava declarado no HTML e não chegava a NENHUM pixel0 px exatos da cor na imagem, porque a faixa de 31px deixa o traço do plano de trás em 1,50px e o antisserra dilui a cor inteira. A propriedade no código não descreve a aparência da peça. Só o juiz-pixel vê isso — e aqui ele viu um valor que existia no CSS e não existia na tela. Isto reforça a regra do §4.0 do handoff mestre por um caminho novo: não é só o FUNDO que a composição resolve; é a própria TINTA de traço fino.

Uma FRONTEIRA de método que esta rodada fixou, e ela é de canon#

O decisor, verbatim: "considere que o topo segue uma regra e o rodapé outra regra." Consequência para a cobertura: regra derivada de um modelo fica ESCOPADA a ele. O toque exato — que parecia lei da casa — é regra do RODAPÉ; a montanha do topo mantém a oclusão com folga, e isso não é dívida, é regime distinto.

Régua nova: veredito dado sobre UM artefato/modelo não se generaliza para outro sem ele dizer. Generalizar por conta própria teria mudado em silêncio uma peça aprovada — que é a forma mais cara de "conserto".

As dimensões que seguem em ZERO — atualizadas nesta parte#

dimensão por que está em zero
BT2 — seletor de LARGURA DE PÁGINA inalterado desde §22.13. BT-P3
qual técnica cada .mjs usa para ler CSS inalterado desde §22.13. IN-P2
token consumido sem declaração NO ATO DA ESCRITA inalterado
estado de SELEÇÃO para contraste inalterado. SE-P1
COLISÃO DE ESPECIFICIDADE inalterado. ES-P1
defasagem de versão do gêmeo inalterado. TK-P1
scroll-behavior nos 55 .mjs ainda não medida
isenção por família DENTRO do placar TP-P1
ÁREA E FAIXA DE GRAFISMO (contrato GR1) REGREDIU A ZERO: a guarda existia e foi perdida na propagação. As três cláusulas estão reconstruídas (GR1-a área ≤10% · GR1-b glifo velado 0px · GR1-c faixa ≤~8%), o código não. GR-P3
valor de marca fora do canônico nova, dimensão ② acima
artefato órfão (sem gerador) nova, dimensão ③ acima
cobertura de propagação nova, dimensão ① — instrumentada à mão. PR-P4

22.16 DÉCIMA SEGUNDA parte (2026-08-21) — a dimensão de grafismo sai de ZERO, e nasce a dimensão de ESTABILIDADE DO INSTRUMENTO#

Para quem chega sem contexto: este arquivo mede a cobertura do SEED Design System v2 — não "o sistema está bom", mas "o que o sistema é capaz de ver". Cada linha é uma DIMENSÃO de medição, e o estado dela é o estado do instrumento, não do artefato.

① ÁREA E FAIXA DE GRAFISMO (contrato GR1) — de ZERO a medida, com pasta de prova#

Na §22.15 esta dimensão foi registrada como REGREDIDA A ZERO: a guarda existia, foi perdida na propagação, e as três cláusulas estavam reconstruídas no papel mas sem código. Agora existe instrumento:

antes (§22.15) agora
contrato escrito, código inexistente validacao/guarda-grafismo.mjs, alvo de pasta sem filtro de nome
nenhum placar reproduzível; "GR1 7 PASS" era histórico 18 peças medidas em 4 corridas + pasta de prova, com placar em JSON
nenhuma pasta de prova render-audit/prova-gr1/7 fixtures geradas, referência 10 PASS · 3 FAIL · 8 [n/a], uma prova por cláusula
nenhuma condição variada escala de captura 1× e 2× — placar idêntico, porcentagens sobrevivem

O que a dimensão passa a ver, e não via: área de grafismo pela tinta (não pela caixa do elemento); glifo do símbolo velado com erosão de 1px para não contar antisserra como núcleo; e a distinção entre faixa PINTADA e faixa DECLARADA, que são números diferentes e agora saem os dois.

O que ela ainda NÃO vê, declarado: (a) traço em milímetros para impressão — tudo é px de tela (MR-P6); (b) o regime SERRA-CENA por formato, que só existe depois da emenda MR-P4 ser aprovada; (c) legibilidade de forma (se o desenho lê como serra), que não é medível por guarda e continua sendo gate visual humano.

② ESTABILIDADE DA CAPTURA DO PRÓPRIO INSTRUMENTO — dimensão NOVA, e ela vale para todas as guardas#

Nenhuma guarda desta casa media se a própria medição é repetível. As 55+ .mjs desligam animação, transição e scroll-behavior; nenhuma perguntava se mexer na página e desfazer devolve a mesma imagem.

Medido no 47º defeito: quatro capturas seguidas sem tocar em nada são byte-idênticas, mas depois do ciclo visibility:hiddenvisibility:'' no <svg> do símbolo oficial, 112 px dentro do glifo voltam diferentes. O único sinal que existia era um número geometricamente impossível no placar: sobreposição de −77 px entre dois planos.

Régua nova: toda guarda que mexe na página para medir tem de imprimir uma prova de estabilidade — o estado de controle renderizado duas vezes, em duas cargas independentes, exigindo 0 px de diferença; e alvo instável sai [n/a] nomeado. A GR1 imprime isso por peça. Alcance da dimensão hoje: 1 de 56 instrumentos. E a pendência mais antiga aberta do projeto — a HV-P7, intermitência de 1 em 6 passes na guarda-resposta-ponteiro — é exatamente esta pergunta sem esta régua.

③ COBERTURA DE PROPAGAÇÃO (PR-P4) — segue instrumentada à mão, mas agora com formato fixo#

A dimensão nasceu na §22.15 e continua sem script. O que mudou: o fechamento desta parte imprime as duas contas no formato definitivo — (1) enviados × conferidos por MD5, e (2) criados/editados na sessão × enviados, com a diferença nomeada. Enquanto for à mão, a dimensão mede a disciplina de quem fecha, não o sistema.

Tabela consolidada das dimensões — atualização#

dimensão estado
ÁREA E FAIXA DE GRAFISMO (GR1) medida, com pasta de prova e condição variada. Regime SERRA-CENA pendente de MR-P4
estabilidade da captura do instrumento nova, dimensão ② — 1 de 56 instrumentos
grafismo em MILÍMETROS (impressão) ausenteMR-P6
cobertura de propagação à mão — PR-P4
valor de marca fora do canônico §22.15, dimensão ②
artefato órfão (sem gerador) §22.15, dimensão ③ — ⚠ 4 arquivos novos desta parte nasceram COM gerador, por regra

22.17 DÉCIMA TERCEIRA parte (2026-08-21) — a dimensão de grafismo passa a medir CANON; e nasce a dimensão de INTEGRIDADE DAS SAÍDAS DO INSTRUMENTO#

① ÁREA E FAIXA DE GRAFISMO (GR1) — de "medida contra número fixo" para "medida contra CANON POR FORMATO"#

Na §22.16 esta dimensão saiu de zero. Agora ela mudou de natureza, e a diferença importa para ler qualquer placar antigo:

antes (§22.16) agora
GR1-c media contra um teto (~8%), e as 4 peças aprovadas pelo decisor reprovavam de propósito GR1-c mede contra o regime e o formato: detalhe ≤~8%; serra-cena com o teto que ELE aprovou para aquele formato
o teto era um número no código o teto é uma tabela transcrita do canon (v5.4 §7.4), com a citação e o veredito dele impressos em cada linha do placar
formato novo receberia o teto de todo mundo formato sem linha no canon sai [n/a] NOMEADO — teto não se interpola (§0-b)
7 fixtures 12 fixtures, com prova de inércia 7 de 7 nas antigas

O que a dimensão passa a ver: (a) se a peça respeita o teto do seu próprio formato; (b) o regime em que a peça está, medido por contagem de formas de traço e impresso; (c) a lacuna "formato sem teto de canon", que antes não existia como categoria e agora é um [n/a] com nome — e é uma pergunta para o decisor, não um número a inventar.

O que ela ainda NÃO vê, declarado: milímetros para impressão (MR-P6); legibilidade de forma (gate visual humano); e o teto do topo em razão diferente de 1:1, que o canon não mediu.

② INTEGRIDADE DAS SAÍDAS DO INSTRUMENTO — dimensão NOVA (48º defeito)#

Nenhuma régua desta casa verificava se todas as saídas de um instrumento foram produzidas. Medido nesta parte: uma constante renomeada quebrou o escritor de JSON da GR1 enquanto o placar de texto saiu completo e correto; o JSON no disco ficou duas horas velho e a folha de conferência foi montada com ele — e folha é o que o decisor lê. O único sinal foi o exit=1.

Régua: instrumento que produz texto + arquivo derivado (JSON, PNG, log) confere-se por exit code e mtime do derivado, não pelo texto do placar. E quem monta folha a partir de derivado confere que o derivado é mais novo que a última execução. Alcance da dimensão hoje: 1 de 56 instrumentos (só a GR1 tem derivado conferido). Irmã da dimensão de estabilidade de captura (§22.16 ②) e do 46º defeito (| head truncando geração por SIGPIPE): a família toda é "a saída principal parecia bem e o trabalho real não aconteceu".

③ COBERTURA DE PROPAGAÇÃO (PR-P4) — segue à mão, e ganhou um caso de teste real#

O fechamento desta parte propagou canon (não só instrumento), e por isso a conta 2 tem uma linha nova de natureza diferente: arquivo promovido (marca-seed.md), cuja prova não é "foi enviado" mas "é byte-idêntico ao que o decisor aprovou" — md5 igual ao da proposta. Propagação de canon tem uma conferência a mais que propagação de artefato.

Tabela consolidada — atualização#

dimensão estado
ÁREA E FAIXA DE GRAFISMO (GR1) ✅ medida contra canon por formato; 12 fixtures; inércia provada. Lacuna nomeada: formato sem teto
integridade das saídas do instrumento nova, dimensão ② — 1 de 56
estabilidade da captura do instrumento §22.16 ② — 1 de 56
grafismo em MILÍMETROS (impressão) ausenteMR-P6
cobertura de propagação à mão — PR-P4 (agora também para canon promovido)

22.18 DÉCIMA QUARTA parte (2026-08-21) — o topo troca de EIXO, e nasce a dimensão de FECHAMENTO AUDITADO#

① COBERTURA DO TOPO — de "só a razão 1:1" para QUALQUER FORMATO#

antes (§22.17) agora
topo julgado por % da altura, e só na razão 1:1; qualquer outro formato saía [n/a] topo julgado por LARGURA: F ≤ w / 6,5625. Todo formato é medível
a lacuna "topo em formato não medido" era pendência GR-P8 GR-P8 fechada — deixou de ser lacuna, virou regra
12 fixtures 14, com as duas do eixo novo

A lição de cobertura, e ela é generalizável: escopo apertado demais parece prudência e é, na prática, uma guarda que se recusa a medir. O [n/a] estava tecnicamente honesto (o canon não media aquele formato) e ainda assim reduzia a cobertura a um único formato de peça. A pergunta certa não era "qual formato?" — era "o EIXO da medição está certo?".

② FECHAMENTO AUDITADO — dimensão NOVA#

Até hoje o fechamento de uma parte era conferido por duas contas (MD5 e cobertura de propagação). Nasce um terceiro instrumento, e ele nasceu de um pedido dele depois de a sessão anterior morrer no meio: "caso tenha perdido algo, revise para nao ficar erro para tras."

A auditoria mede 7 eixos: (1) citação órfã — todo caminho de instrumento citado existe? · (2) coerência de versão — cabeçalho × seção mais alta · (3) afirmação velha de canon · (4) placar velho apresentado como corrente · (5) higiene da cópia de trabalho · (6) frescor dos derivados (o 48º defeito, executável) · (7) fixtures × md5 do log de geração.

Achados da primeira execução: eixos 1, 2, 5, 6 e 7 limpos; eixo 3 com 2 achados reais e eixo 4 com 7 sobras — todos em documentos que eu mesmo havia escrito horas antes, na mesma sessão. É o argumento mais forte que existe para esta dimensão: quem escreve não relê com olho de auditor, e "escrito hoje" não é sinônimo de "correto agora" quando o canon muda no meio do dia.

Alcance declarado: o eixo 1 confere contra o inventário do Drive montado pelas listagens lidas na sessão (validacao/, render-audit/ não recursivo, prova-gr1/, gate-gr1/, raiz) — não é um ls recursivo completo. Auditoria com alcance declarado é medida; sem alcance, é opinião.

Tabela consolidada — atualização#

dimensão estado
faixa de grafismo no TOPO ✅ medida em qualquer formato (eixo de largura)
fechamento auditado (7 eixos) nova, dimensão ② — roda à mão, 1 execução
integridade das saídas do instrumento §22.17 ② — 1 de 56, agora coberta pelo eixo 6 da auditoria
estabilidade da captura §22.16 ② — 1 de 56
grafismo em MILÍMETROS ausente — MR-P6
cobertura de propagação à mão — PR-P4

22.19 DÉCIMA QUINTA parte (2026-08-22) — nasce a dimensão de UNIDADE FÍSICA, e ela mostra que "medido em px" não é o mesmo que "medido"#

① TRAÇO EM UNIDADE FÍSICA (mm) — de ausente para medido, sem piso de canon#

antes agora
dimensão ausente (pendência MR-P6 desde 2026-08-20) medida por validacao/mede-traco-mm.py, nas 12 peças
todo número do grafismo em px de tela px e mm/pt para as peças com alvo físico declarado
nenhum piso de impressão no projeto pisos de mercado pesquisados (offset · digital · serigrafia, positiva e reversa) — e o piso de canon segue inexistente, esperando veredito
peça de tela e peça de papel medidas pela mesma régua peça de tela sai [n/a] NOMEADO — não tem milímetro

O que a dimensão passa a ver, e não via:

  • que a lei do traço em px torna o traço físico função da resolução de exportação — o mesmo desenho, exportado a 600 DPI em vez de 300, imprime com metade da espessura;
  • que uma peça aprovada (o verso do cartão) passa o piso digital reverso por 0,004 mm;
  • que uma peça do acervo (o verso do cartão nos 7 formatos) reprova nos quatro planos;
  • que duas peças da mesma família estão em escalas físicas diferentes (cartão a 299,7 DPI, pasta A4 a 105,7).

O que ela ainda não vê: qual processo a gráfica vai usar (por isso o placar sai por processo, não como veredito único); e não existe guarda de alvo de pasta para isto — virar guarda só faz sentido depois de haver piso de canon para comparar.

A lição de cobertura, e ela generaliza: "medido" sem unidade declarada é meia medida. Este projeto tinha 12 peças, 5 estudos, uma guarda de alvo de pasta e centenas de números — todos corretos, todos em px, e nenhum deles respondia à pergunta que a gráfica faz. Irmã da lição do 49º defeito: número certo na unidade errada descreve outra coisa.

Tabela consolidada — atualização#

dimensão estado
traço em unidade FÍSICA (mm) medida; piso de canon inexistente, aguardando veredito (MR-P6)
resolução de exportação da peça impressa ausente como regra — a pasta A4 está a 105,7 DPI (MR-P8)
medida física da peça ⚠ o cartão está em 89×51 mm (padrão americano); o brasileiro é 90×50 (MR-P9)
fechamento auditado (7 eixos) §22.18 ②
faixa de grafismo no TOPO §22.18 ①
cobertura de propagação à mão — PR-P4

22.20 DÉCIMA SEXTA parte (2026-08-22) — a dimensão de unidade física sai de MEDIDA para GOVERNADA, e as duas que ficam em zero passam a ser consequência da regra#

① TRAÇO EM UNIDADE FÍSICA (mm) — de medido, sem piso de canon para governado por canon#

antes (§22.19) agora
medido em mm/pt, comparado só com pisos de MERCADO (offset · digital · serigrafia) comparado também com o piso de CANON: 0,25 mm (marca-seed.md v5.6 §7.4-c)
o piso de canon não existia — esperava veredito (§0-b) existe, com veredito verbatim e método declarado (ESCALA, não grampo)
a peça aprovada passava o piso digital reverso por 0,004 mm passa por 0,074 mm — folga de 42% em vez de 2%
escopo "só peça impressa" era texto é código: o ppmm só é passado nas chamadas de cartão do gen-z3-largos.py

O que a dimensão passa a ver, e não via: se uma peça impressa respeita o piso que o decisor aprovou — antes ela só sabia dizer se a peça sobreviveria a um processo de impressão genérico. É a mesma virada que a dimensão de grafismo teve em §22.17, quando a GR1-c passou de "um número fixo" para "o teto que ele aprovou para o formato": a régua deixa de medir o mundo e passa a medir a DECISÃO.

② As duas dimensões que ficam em ZERO — e agora são consequência da regra, não lacunas soltas#

dimensão estado por que ela agora é obrigatória
resolução de exportação da peça impressa ausente como regra — a pasta A4 está a 105,7 DPI (MR-P8) com o piso em mm, a conversão px↔mm depende do DPI. Peça exportada em resolução de mock recebe o piso na resolução errada — o número passa e a peça imprime fino
guarda de alvo de pasta para o piso em mm ausente — a conferência é mede-traco-mm.py rodado à mão enquanto for à mão, uma peça nova nasce sem ninguém perceber. É a mesma classe da lição do §22.12: lista escrita à mão tem a aparência de cobertura

Alcance declarado desta rodada: as provas foram pré-voo (5/5 byte-idênticos antes de tocar o gerador), inércia (L4/L5 byte-idênticas depois) e reversibilidade (TRACO_PISO_MM=0 reproduz o antes byte a byte), mais a leitura do stroke-width no artefato renderizado. Não houve varredura do acervo inteiro em busca de outras peças com alvo físico — e é justamente essa varredura que falta para a dimensão virar guarda.

A lição de cobertura desta parte: régua sem número de canon para comparar produz diagnóstico, não veredito. A §22.19 tinha a medição completa e correta em milímetros, e ainda assim não podia reprovar nada — porque não havia piso aprovado, só pisos do mercado. A dimensão só fecha o circuito quando existe (a) o número medido, (b) o número decidido e (c) alguém que compare os dois sem ser convidado. Hoje esta dimensão tem (a) e (b); o (c) é a MR-P8 e a guarda que não existe.

Tabela consolidada — atualização#

dimensão estado
traço em unidade FÍSICA (mm) governada por canon (0,25 mm · v5.6 §7.4-c) — conferência à mão
resolução de exportação da peça impressa ausente como regra (MR-P8) — agora consequência do piso
guarda de alvo de pasta para o piso em mm ausente — medição sob demanda
medida física da peça ⚠ cartão em 89×51 mm (padrão americano); brasileiro é 90×50 (MR-P9)
snapshot local do projeto inexistente — o Design System v2.zip era cópia de bootstrap do Claude chat, obsoleta desde o Cowork, e foi apagada por ele de propósito. A proteção hoje é o versionamento do Drive + os 4 canônicos
fechamento auditado (7 eixos) §22.18 ②
cobertura de propagação à mão — PR-P4

22.21 DÉCIMA SÉTIMA parte (2026-08-22) — nasce a dimensão de PROVENIÊNCIA DO VALOR, e ela estava em zero para o acervo inteiro#

① PROVENIÊNCIA DO VALOR — de ausente para nomeada (medida: 1 valor de centenas)#

antes agora
nenhuma guarda pergunta quem decidiu um número do sistema a pergunta existe, e a primeira resposta foi "ninguém"
a medida do cartão (89×51 mm) era tratada como decisão de marca é 3,5×2 polegadas — default de software americano, sem nenhum veredito no histórico
valor errado se procurava por contradição (dois números divergindo) passa a se procurar por origem (um número que ninguém escolheu não contradiz nada — e é por isso que sobrevive)

Como a lacuna apareceu: não por auditoria. Por ele perguntar o que a opção significava. A §107.7 havia escrito a pendência como "o cartão está em 89×51 mm; o padrão brasileiro é 90×50 mm — decisão dele": dois números corretos e nenhuma consequência medida. Ele respondeu que não podia decidir com aquilo.

A lição de cobertura, e ela é sobre COMO SE ESCREVE PENDÊNCIA: pendência enunciada como "A ou B" transfere a decisão sem transferir a informação. Uma pendência bem escrita traz o custo medido de cada saída — foi o que a §107.4 fez com o piso em mm (três saídas, uma imagem por saída, recomendação escrita) e o que a §107.7 não fez com a medida da peça. A diferença entre as duas está no mesmo documento, escrita pela mesma sessão, no mesmo dia.

② O que a dimensão nova enxerga, e o tamanho do que ela não enxerga ainda#

Medido: 1 valor teve a proveniência conferida (a medida do cartão) — e deu herança de ferramenta, não decisão.

Não medido: todos os outros. O sistema tem 8 hex canônicos, uma rampa de 10 stops por família, tetos por formato, pisos de traço, escalas tipográficas, grades, razões (12,7 · 6,5625 · 0,0795) e as medidas físicas da pasta A4 — e não existe inventário de origem de nenhum deles. A razão 12,7 tem veredito (é a proporção do post aprovado). A medida da pasta A4, ninguém sabe.

O que faria a dimensão virar guarda: uma varredura que, para cada valor citado como canônico, exigisse uma âncora de decisão (veredito verbatim, data, ou número derivado de outro que já a tenha). Enquanto isso não existe, a proveniência é conferida uma por vez, quando alguém pergunta — que é exatamente o que aconteceu aqui.

③ A dimensão de UNIDADE FÍSICA sobreviveu à troca de formato — e isso era uma dúvida real#

o que se temia o que foi medido
trocar o formato quebraria o piso de 0,25 mm 0,250 mm nos três formatos (89×51 · 90×50 · 90×48) — o piso é aplicado por ESCALA a partir do px/mm da peça
a guarda aprovaria a peça nova por analogia ela devolveu [n/a] com o motivo escrito e mandou a lacuna ao decisor (§0-b funcionando)
a conversão espalharia mudança pelo acervo acervo dos 7 formatos: 21·0·0, intacto; peças largas: 15·0·0

Escrever o piso em MILÍMETRO em vez de PIXEL — a decisão da §108 — é o que fez a troca de formato custar uma linha de canon em vez de uma remedição inteira. A unidade em que uma regra é escrita determina o que ela sobrevive.

Tabela consolidada — atualização#

dimensão estado
proveniência do valor nomeada, praticamente em zero — 1 valor conferido, nenhum inventário
medida física da peça decidida e no canon (90×50 mm · v5.7 §7.4-d)
sangria e margem de segurança ausente em 100% das peças (MR-P10) — e o verso é fundo cheio
traço em unidade FÍSICA (mm) ✅ governada por canon (0,25 mm) — conferência à mão
resolução de exportação da peça impressa ⚠ ausente como regra (MR-P8)
guarda de alvo de pasta para o piso em mm ⚠ ausente — medição sob demanda
cobertura de propagação à mão — PR-P4

22.22 DÉCIMA OITAVA parte (2026-08-22) — duas dimensões saem de zero, e a guarda acha na estreia um defeito que a conferência à mão não acharia#

① GUARDA DE ALVO DE PASTA PARA O PISO EM MM — de ausente para contrato MM1#

antes (§22.20 ② e §22.21) agora
o piso de 0,25 mm estava no canon e nos geradores, conferido à mão contrato MM1, guarda de alvo de pasta, com placar e exit code
quem era peça impressa vivia numa tabela de nomes dentro do instrumento de diagnóstico vive no próprio artefato: <meta name="alvo-fisico" content="90x50mm">
nenhuma fixture: nunca se viu a régua reprovar de propósito 7 fixtures, uma cláusula por fixture, placar de referência escrito ANTES: 13 PASS · 3 FAIL · 5 [n/a]
uma cláusula implícita (o piso) três: piso · coerência do alvo declarado · ≥3 pesos distintos

A mudança de natureza está na declaração, não no placar. Enquanto a lista de peças impressas morava no instrumento, acrescentar uma peça impressa nova não acrescentava cobertura — alguém tinha de lembrar de editar a lista. Com a declaração no artefato, a peça chega medida. É a mesma virada de "lista escrita à mão" para "alvo de pasta" que a §22.12 catalogou como lição, aplicada agora do lado do DADO e não do lado da varredura.

② RESOLUÇÃO DE EXPORTAÇÃO DA PEÇA IMPRESSA — de ausente como regra para corrigida na peça (MR-P8)#

antes agora
pasta A4 874×1240 px = 105,7 DPI, razão errando o A4 por 0,3% 2480×3508 px = 300,0 DPI exatos, razão de A4 exata
piso de traço não aplicado (a peça nem era tratada como impressa) aplicado — traço mais fino 0,251 mm
inércia 6 de 7 formatos byte-idênticas

Mas a dimensão NÃO virou regra, e isso é declarado: não existe piso de resolução no canon, e criar um seria inventar valor de marca (§0-b). A A4 foi corrigida por decisão, não por guarda. A guarda imprime o DPI como diagnóstico e não julga. Logo: uma peça impressa nova pode nascer a 100 DPI e MM1 dirá PASS se o traço em mm couber. A dimensão está coberta na peça, não no processo.

③ O que a guarda achou na estreia — e por que isso vale mais que o placar#

A primeira execução reprovou em bloco as 3 peças de cartão aprovadas e a A4. ⭐ Sexta aplicação da régua "régua nova reprovando em bloco = a régua mede outra coisa" — e desta vez ela estava meio certa: um dos dois achados era da régua, o outro era real.

achado de quem era o que era
MM1-c reprovando peça aprovada da régua contava formas de traço; a serra real tem 5 formas para 4 planos (a frente entra e sai da peça em segmentos)
MM1-a reprovando a A4 por 0,1% do gerador — real round(...,2) devolvia 0,24980 mm onde o canon manda 0,25. O piso estava sendo violado pelo arredondamento

A lição de cobertura desta parte, e ela é o argumento inteiro do instrumento: conferência à mão arredonda; instrumento não. O mede-traco-mm.py rodado à mão imprimia 0,250 mm para a pasta A4 — três casas decimais, exatamente o piso, verde. O defeito estava na quarta casa. Uma verificação que exibe menos precisão do que a regra exige não é verificação: é confirmação.

Tabela consolidada — atualização#

dimensão estado
guarda de alvo de pasta para o piso em mm contrato MM1, com fixtures e placar de referência
resolução de exportação da peça impressa corrigida na peça (A4 a 300 DPI), ausente como REGRA — não há piso de resolução no canon
alvo físico declarado no artefato ✅ nova, e é o que sustenta ① — ⚠ artefato antigo não declara e sai [n/a] (MM-P1)
sangria e margem de segurança ausente em 100% das peças (MR-P10), com decisão dele pendente
proveniência do valor ⚠ §22.21 — 1 valor conferido, nenhum inventário
medida física da peça ✅ decidida e no canon (90×50 mm)
cobertura de propagação à mão — PR-P4

22.23 DÉCIMA NONA parte (2026-08-22) — nasce a dimensão de OBRIGAÇÃO LEGAL E NORMATIVA, e ela estava em zero no acervo inteiro#

antes agora
nenhuma guarda, nenhum documento e nenhum inventário pergunta "esta peça é exigida por lei?" duas famílias identificadas com fundamento citado: placa de obra e sinalização elétrica
o inventário de peças físicas (canon §12) era o do Manual 2018 e ele não contém uma única peça específica de engenharia elétrica — a classe regulada estava inteira ausente
cor de peça era assunto só de marca em sinalização de segurança a cor é NORMATIVA (NR-26 → NBR 7195) — a marca não manda
conteúdo obrigatório de peça: nunca verificado placa de obra tem conteúdo obrigatório (nome · título · registro CREA) e forma livre

A lição de cobertura, e ela é sobre o QUE se mede: este projeto tem ~60 guardas que medem contraste, foco, colisão, área, faixa, traço, tipografia viva, barra fixa — todas propriedades visuais. Nenhuma mede CONFORMIDADE. Uma peça pode passar em todas as guardas desta casa, ser bonita, respeitar cada teto do canon — e ser ilegal, por não trazer o registro do responsável técnico que a Lei 5.194/1966 exige. A dimensão que faltava não é mais fina que as outras: é de outra natureza.

② O conflito que a dimensão nova revelou no primeiro uso#

amarelo da SEED #FAD61D, acento único da marca (canon §3.4)
amarelo da NBR 7195 CUIDADO / ADVERTÊNCIA
onde colidem peça instalada em subestação, sala de painéis, canteiro — o mesmo amarelo diz "a SEED assina" e "há risco"
estado MR-P11 resolvida em 2026-08-22 (marca-seed v5.13 §17.6): amarelo de marca não entra em peça instalada em ambiente com sinalização de segurança — assinatura turquesa e branco; demais meios mantêm o acento único

Note que este achado não veio de uma guarda: veio de ler a norma que governa o ambiente onde a peça vai morar. Cobertura de conformidade se lê em norma, não em pixel — e é por isso que ela não podia ter nascido das guardas existentes.

③ SANGRIA E MARGEM — de ausente em 100% das peças para medida#

antes agora
sangria nenhuma peça tem, e ninguém tinha medido se precisa medido: a serra toca 3 bordas → sangria é obrigatória nesta família
margem de segurança nunca medida 4,24 mm de conteúdo ao corte: PASS em 3 mm, FAIL em 5 mm por 0,76 mm
instrumento nenhum validacao/mede-sangria.py — lê o artefato, não a fórmula
valor de canon inexistente ainda inexistente — é valor de marca (§0-b), com folha entregue e veredito pendente

Alcance declarado: a medição cobre as peças com alvo físico declarado (3 cartões + pasta A4). Peça de tela sai [n/a]. Dobra, vinco e lombada não estão medidos — a pasta A4 com aba é o primeiro caso e não existe como arquivo de produção.

Tabela consolidada — atualização#

dimensão estado
obrigação legal e normativa da peça nomeada, sem instrumento — 2 famílias mapeadas, nenhuma guarda
cor normativa × cor de marca ✅ resolvido (MR-P11, 2026-08-22, marca-seed v5.13)
sangria e margem de segurança medida; valor de canon pendente (MR-P10)
inventário de peças do sistema 36 peças em 5 famílias (inventario-pecas-ds.md, proposta) — antes: 8 peças de escritório genérico
peça com dobra/vinco ausente — a pasta A4 não é arquivo de produção
guarda de alvo de pasta para o piso em mm ✅ contrato MM1 (§22.22)
cobertura de propagação à mão — PR-P4

22.24 VIGÉSIMA parte (2026-08-22) — a sangria nasce e fecha no mesmo dia, e com ela nasce a distinção GATE × PRODUÇÃO#

① SANGRIA E MARGEM — de ausente para governada e conferida, em uma rodada#

antes (§22.23) agora
medida, com candidatos de mercado e nenhum valor de canon canon §7.4-e: 3 mm + 3 mm, por veredito dele
o método de produzir sangria não estava escrito em lugar nenhum é regra: a composição é definida para a área de corte e não se mexe; a sangria é crescimento para fora
conferência: nenhuma MM1-d (sangria ≥ 3 mm em arquivo de produção) e MM1-e (conteúdo ≥ 3 mm do corte)
fixtures: 7 11
arquivo de produção: não existia existeproducao/cartao-90x50/, 15 PASS · 0 FAIL · 0 [n/a]

② A distinção que nasceu: ARQUIVO DE GATE × ARQUIVO DE PRODUÇÃO#

Esta é a dimensão nova, e ela é conceitual antes de ser técnica. Até hoje o projeto tinha um arquivo por peça e o chamava de "a peça". Com a sangria existem dois, do mesmo desenho, com tamanhos diferentes e guardas diferentes:

GATE PRODUÇÃO
tamanho área de corte corte + 3 mm
medido por GR1 (área · véu · faixa) MM1-d/e
razão da peça casa com a tabela de tetos §7.4 não casa — e não deve

A consequência de cobertura: um arquivo de produção guardado na pasta de gate produz [n/a] na GR1 por razão fora da tabela — um defeito que não é defeito. A separação não é organizacional: é o que mantém as duas réguas medindo a coisa certa. E cada arquivo declara o próprio papel (<meta name="papel">), pela mesma doutrina da §22.22: a informação vive no dado, não numa lista dentro do instrumento.

③ ⚠ A referência escrita ANTES estava errada — e o registro do erro é a parte útil#

Previ 34·6·15; a guarda devolveu 30·6·19. Os dois desvios eram meus: esqueci que a fixture do conteúdo-na-margem tem sangria correta (logo passa MM1-d), e supus que as 6 fixtures antigas tinham bloco de conteúdo posicionado — não têm, e para elas [n/a] é o veredito certo.

A lição de cobertura, e ela é sobre disciplina de instrumento: a referência só se ajusta DEPOIS de entendida a causa de cada divergência. Ajustar a referência porque "a guarda disse outra coisa" transforma a pasta de prova em decoração — é o oposto exato do que ela existe para fazer. Fica impresso no gerador quais foram os dois erros, para a próxima sessão não achar que sempre foi assim.

E um defeito de instrumento no caminho: a MM1-e reportava a própria linha de corte como "o conteúdo mais perto do corte" e passava por acidente, escondendo a distância real do texto. Régua que mede a si mesma sempre passa.

Tabela consolidada — atualização#

dimensão estado
sangria e margem de segurança canon + guarda (§7.4-e · MM1-d/e)
arquivo de gate × arquivo de produção ✅ nova, declarada no artefato — ⚠ hoje só o cartão tem arquivo de produção
peça com dobra / vinco / furo ausente (MR-P12) — a pasta A4 com aba não existe como produção
obrigação legal e normativa da peça ⚠ nomeada, sem instrumento (§22.23)
cor normativa × cor de marca MR-P11 resolvida (2026-08-22, v5.13)
cobertura de propagação à mão — PR-P4

22.25 VIGÉSIMA PRIMEIRA parte (2026-08-22) — o inventário deixa de ser proposta, e nasce uma dimensão sobre COMO o trabalho é proposto#

① INVENTÁRIO DE PEÇAS — de proposta para confirmado contra a operação#

antes (§22.23) agora
36 peças levantadas, nenhuma confirmada com quem opera as 20 peças das famílias de papelaria e de campo são REAIS — veredito dele
risco declarado: "inventário com peça inventada é pior que inventário curto" risco eliminado por confirmação, não por inferência
não se sabia o que falta × o que existe sem padrão o layout de frota é a única a criar de zero; as outras 19 existem e precisam ser padronizadas

Leitura declarada: entendi "acho que layout do carro é que está faltando" como "não existe na operação". Se o sentido era "faltava na sua lista", o efeito é o mesmo. Registro a ambiguidade em vez de escolher em silêncio.

② DIMENSÃO NOVA — a legibilidade da PROPOSTA, não do artefato#

Ele recusou a proposta de ondas com uma frase: "3 ondas é vago, nao da pra enteder o que quer dizer."

A lição, e ela é irmã da §22.21 (pendência enunciada como "A ou B"): plano com nome de fase e sem definição de entregável é plano que só o autor entende. Um lote de trabalho só é decidível se disser, por peça: o que é · o que ele recebe · o que eu preciso dele · de que outra peça depende. E as palavras do plano precisam ser definidas antes de usadas — "mock", "produção", "gate", "pronto" significam coisas diferentes para quem escreve e para quem lê.

Este projeto mede 60 dimensões do artefato e nenhuma da COMUNICAÇÃO com o decisor — e é a segunda vez em duas partes que o custo aparece: primeiro a pendência mal-escrita (§22.21), agora o plano mal-escrito.

③ Uma regra de PROCESSO que muda o que se produz: arquivo sob demanda#

Perguntei sobre uma peça (a pasta A4) e ele respondeu sobre o sistema: mock é o padrão; arquivo de produção nasce sob demanda (canon v5.11 §7.4-e).

Efeito na cobertura, e é positivo: arquivo de produção feito antes da compra envelhece — a gráfica pode pedir 5 mm em vez de 3, ou faca diferente — e vira arquivo errado com aparência de pronto, que é pior que arquivo nenhum porque ninguém desconfia dele. A regra reduz a superfície do acervo que pode apodrecer em silêncio.

Tabela consolidada — atualização#

dimensão estado
inventário de peças confirmado contra a operação (20 reais · 1 a criar)
legibilidade da proposta ao decisor nova, sem instrumento — 2 falhas registradas em 2 partes
arquivo de produção sob demanda por regra — só o cartão tem hoje
sangria e margem ✅ canon + guarda (§22.24)
obrigação legal e normativa da peça ⚠ nomeada, sem instrumento (§22.23)
cor normativa × cor de marca MR-P11 resolvida (2026-08-22, v5.13) — a frente está sem bloqueio de decisão
cobertura de propagação à mão — PR-P4
Esc