La fixture contiene src/app.ts, src/styles.css y README.md. El contenido compatible con UTF-8 ocupa 199 bytes. Hay 13 líneas físicas: 10 no vacías y 3 vacías. SourceTally las agrupa como TypeScript, CSS y Markdown, un archivo por lenguaje y extensión. No hay binarios, exclusiones, archivos grandes ni fallos.

TypeScript aporta 5 líneas y 96 bytes

El archivo app tiene cuatro líneas no vacías y una vacía. Declara título y saludo. El salto final termina la quinta línea sin crear una línea fantasma. Así valida la misma regla usada en flujos locales y remotos.

CSS aporta 5 líneas y 59 bytes

La hoja tiene cuatro líneas no vacías y una vacía. El conteo físico ignora sintaxis, por lo que llaves y declaraciones no cambian la regla. CSS queda separado de TypeScript aunque compartan funcionalidad: la tabla muestra composición, no dependencias.

Markdown aporta 3 líneas y 44 bytes

README.md contiene título, separador vacío y frase. La documentación se incluye como texto ordinario. Si la pregunta es solo código de aplicación, separa Markdown con la tabla de lenguajes en vez de restarlo silenciosamente siempre.

Carga la demo y verifica totales

Abre el analizador y elige Demo TypeScript. Debe mostrar 3 archivos, 199 bytes, 13 líneas físicas, 10 no vacías y 3 vacías. Lenguajes y extensiones deben sumar igual. Si cambia una cifra, fixture, cálculo, SSR o prueba son incoherentes y el lanzamiento debe fallar.