---
fonte: 01-canonicos/mapa-cobertura-ds.md
versao_da_fonte: v2.31
secao: 22
titulo: "Registro da sessão de 2026-08-19 — a SI-P4 executa, e a cobertura acha o que a LISTA não continha"
sequencia: 24 de 24
bytes_do_corpo: 100203
md5_do_corpo: 3d2dd5674959b002fb1ad97050335f5a
gerado_por: 06-validacao/geradores/gen-camada-ia.py
nota: fatia GERADA — o corpo abaixo é byte a byte o trecho do canônico; edite o canônico, nunca esta fatia. Canônico inteiro em https://ds.seed.eng.br/01-canonicos/mapa-cobertura-ds.md
---
## 22. Registro da sessão de 2026-08-19 — a SI-P4 executa, e a cobertura acha o que a LISTA não continha

> **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ção** — *nenhum 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 **CT1** — *o 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.2** —
*placar 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 `getComputedStyle` — **se 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 **SH1** — *nada 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 **BT1** — *a 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.styleSheets` → `cssRules`) 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 pixel** — **0 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:hidden` → `visibility:''` 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)** | **ausente** — **MR-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)** | **ausente** — **MR-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

#### ① OBRIGAÇÃO LEGAL E NORMATIVA — de **inexistente como pergunta** para **nomeada**

| 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 | **existe** — `producao/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 |
