# D19 · CS-27 — LIGAR O QUE JA' EXISTE. 4 cards, todos `frontend`.

Enquadrado 25/09. Tudo o que esta' aqui foi MEDIDO no `main` (763df9d), ⛔ nao lido do texto.

## A CADEIA
    CS-28 (tokens)  ──┬── CS-29 (navegacao na Casca) ── CS-31 (o medico e a CONTAGEM)
                      └── CS-30 (a raiz e a entrada vestidas)
CS-30 e CS-29 correm em PARALELO depois de CS-28. 🩸 O dependente so' nasce depois de o pai ser
APROVADO PELO QA.

## TRES DIVERGENCIAS ENTRE O TEXTO DA DEMANDA E O CODIGO — medidas, ⛔ nao supostas

### 1 · O `tokens.css` E' importado. O que ⛔ nao chega e' a DUAS rotas — e sao as duas primeiras.
`src/componentes/base/index.ts:13` tem `import '@/estilo/tokens.css';` desde o CS-22 (7d9b95c).
⟹ A afirmacao (b) do texto («⛔ nao traz») e' FALSA; quem esta' errado e' o texto, ⛔ nao o comentario.
O DEFEITO E' REAL MAS TEM OUTRA FORMA: a folha entra pelo BARRIL, logo so' chega a's rotas que
importam de `componentes/base`. MEDIDO com o servidor de pe' e a ler a FOLHA SERVIDA:

| rota         | folhas | `--md-sys-*` definidas | usadas | SEM DEFINICAO |
|--------------|-------:|-----------------------:|-------:|--------------:|
| `/`          | 1      | 0                      | 3      | **3**         |
| `/entrar`    | 2      | 0                      | 4      | **4**         |
| `/calendario`| 2      | 116                    | 87     | 0             |
| `/sistema`   | 2      | 116                    | 88     | 0             |

⟹ As tres/quatro que caem sao as da CASCA (`casca.module.css` usa 4 com recurso a `Canvas`/
`CanvasText`). ⟹ **As unicas duas rotas sem desenho sao a RAIZ e a ENTRADA — exactamente as duas
que o dono abriu primeiro.** E' esta a razao medida do «nao esta nada parecido com as referencias».
⟹ CS-28 poe o import no LAYOUT RAIZ: uma folha para todas as rotas, inclusive o 404 e a casca.

### 2 · `/calendario` e `/cadastro/[token]` ⛔ NAO estao nus.
As 21 e 24 linhas do texto sao os `page.tsx`, que sao MOLDURA: o ecra' vive em
`calendario/Calendario.tsx` (57 `className`, pecas de base, 0 tokens em falta) e em
`cadastro/formulario.tsx` (50 `className`). O que esta' MESMO nu, medido:
 · `/` — `src/app/page.tsx`, **0 `className`**, ⛔ zero pecas de base;
 · `/entrar` — CSS proprio a' mao, ⛔ **zero pecas de base** (⛔ nao importa `componentes/base`).
⟹ CS-30 veste ESTAS DUAS. ⚠️ Um aceite sobre `/calendario` PASSARIA NA BASE e o portao reprova-o:
**aceite que ⛔ nao falha hoje ⛔ nao mede nada.**

### 3 · «Gravacoes» ⛔ nao pode ser entrada de menu sem um ecra' novo.
⛔ Nao ha' ecra' de LISTA de gravacoes: `/gravacao/[aulaId]` exige um id. A demanda proibe ecra'
novo (§5, e o criterio repete-o). ⟹ A gravacao alcanca-se por CLIQUE no cartao da aula REALIZADA,
no calendario (CS-31) — e a sala do ao vivo pelo cartao da aula `agora` E pela entrada de menu que
so' aparece quando ha' aula a correr. Se o dono quiser uma LISTA de gravacoes, e' ecra' novo e e'
outra demanda: ⛔ nao foi presumido aqui.

## O QUE ⛔ NAO PODE SER ACEITE, E PORQUE
O criterio (2) manda provar contra o SERVIDOR que a porta escondida continua recusada. **O servidor
JA' recusa hoje** (`@Papeis` em `upa`, `aula`, `vinculo`, `questao`, `participacao`, `parametro`)
⟹ qualquer aceite disso PASSA NA BASE e o portao reprova-o. Fica em dois sitios:
 · CS-29 aceite 7 — teste que le' os `@Papeis` dos controladores e exige que CADA entrada de menu
   bata com o papel que o servidor aceita (falha hoje: ⛔ nao ha' menu nenhum);
 · e o acto do QA contra a INSTANCIA, que e' onde o 403 vivo se mede.

## OBSERVACOES (⛔ NAO sao achados — ⛔ nada disto me impediu de enquadrar)
1. `capacitasalvador` tem linha de instancia so' de BACKEND (id 19, parada) e ⛔ nenhuma de
   frontend. O criterio (7) quer jornada contra a INSTANCIA; `fab instancia subir` declara sozinho
   o que falta (`bin/instancia:171`). Quem for QA conte com isso.
2. Achado **#18855** (o frontend leva `NEXT_PUBLIC_API_URL=127.0.0.1`, que no browser do dono e' a
   maquina DELE) morde exactamente o criterio (7). Ja' esta' aberto — ⛔ nao se abre outro.
3. Achado **#18879** ja' regista o defeito de navegacao. ⛔ Nao se duplica.
4. RASTREADOR: ⛔ nenhuma regra do pacote nomeia rastreador externo. A chave segue a sequencia do
   proprio produto na base da fabrica (ultimo `CS-26`) ⟹ epic **CS-27**, cards **CS-28..CS-31**.
   ⛔ Nenhuma chave foi improvisada fora dessa sequencia.
