# agent/utf8-text-files

Agent-facing text files are valid UTF-8 without mojibake. Reglen agent/utf8-text-files kører i site-scope med severity 'error' og indgår i agent-parathed-domænet sammen med 7 andre kontrakter i frameworket.

## Hvorfor utf8-text-files findes

llms.txt, llms-full.txt and the .md mirrors are consumed raw by LLMs — no browser charset-sniffing rescues them. Invalid UTF-8 (replacement characters) or mojibake (Ã​¦blegrÃ​¸d for æblegrød) turns Danish content into garbage in every AI answer that quotes it.

## Sådan håndhæves utf8-text-files

Reglen utf8-text-files evalueres på hele sitets fakta-indeks på én gang, fordi kravet kun giver mening på tværs af sider — den enkelte side kan se perfekt ud, mens mønsteret er problemet. Fejler en side, får agenten en finding, hvor fix-instruktionen for utf8-text-files er formuleret som en konkret arbejdsordre med filnavne og målbare krav — aldrig et vagt råd. Severity 'error' betyder at et brud på utf8-text-files fejler hele verifikationen med exit-kode 1, så hverken CI eller en agent kan skibe sitet før fundet er rettet.

## Test og fixtures

Som alle kontrakter i frameworket har agent/utf8-text-files en mutant-test, der beviser at reglen fejler, når kravet brydes — en regel uden en fejlende test er ikke en regel. Golden-fixturet beviser omvendt, at en fuldt compliant side består utf8-text-files sammen med de øvrige 85 regler, og denne demoside er selv underlagt hele kontrakten.

## Relaterede regler

- [agent/markdown-mirrors](https://pseo.mikkelkrogsholm.dk/regler/agent/markdown-mirrors/)
- [agent/token-efficiency](https://pseo.mikkelkrogsholm.dk/regler/agent/token-efficiency/)
- [agent/answer-first](https://pseo.mikkelkrogsholm.dk/regler/agent/answer-first/)
