El diagnostico heredado era falso por partida doble. No era una `url:`
multilinea de un catalogo: era el stripper de comentarios de
`evalCatalogFile` comiendose el `//` de un `https://` DENTRO de una cadena.
Y sobre todo, el guard NUNCA escaneo los call sites: un
`v.translationRef('key')` no contiene literal `#?` hasta que el compilador lo
normaliza, asi que los cinco defectos de chronos habrian pasado en verde
incluso con el script sano.
Reescrito sobre el contrato COMPILADO: importa los 166 morfos, los compila con
el `compileMorfo` real y valida cada ref ya normalizada contra los catalogos
(tambien importados, muerto el eval por regex). Las fuentes `.ts` se escanean
por AST de literales, asi que un `//` dentro de una cadena no puede volver a
romper nada; un ref construido con template aporta un prefijo dinamico en vez
de un falso huerfano.
Barrido de los 166: 172 errores a 0. Tres clases reales, ninguna cosmetica:
seis morfos declaraban `texts` SIN catalogo (card-group, css-field, picker,
qr-code, radio-cards, waveform: todo fallback ingles), media-player llevaba
seis claves menos que su morfo, y el chrome de palabras referenciaba ~130
claves inexistentes — el menu slash, la barra de burbuja, el menubar, find,
el panel de diseno y los anuncios servian ingles enteros.
Dentro de palabras, dos colisiones hoja<->rama: un nodo de catalogo no puede
ser etiqueta y grupo a la vez (`isLangRecord` rechaza nodos mixtos), asi que
la etiqueta baja a un hijo (`status.label`, `placeholder.default`) y las
descripciones del slash pasan a clave PLANA (`heading-1-d`), nunca `.d`
anidado, que exigiria lo imposible.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>