# graph/url-pattern-per-type

Every page URL matches a declared page-type pattern. Reglen graph/url-pattern-per-type kører i site-scope med severity 'error' og indgår i linkgraf-domænet sammen med 3 andre kontrakter i frameworket.

## Hvorfor url-pattern-per-type findes

A drifting URL taxonomy breaks predictable internal linking, per-type sitemap partitioning and pattern-level indexation control. When the site config declares page types, every URL (except the homepage) must match one of their patterns. Skipped without config.

## Sådan håndhæves url-pattern-per-type

Reglen url-pattern-per-type 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 url-pattern-per-type er formuleret som en konkret arbejdsordre med filnavne og målbare krav — aldrig et vagt råd. Severity 'error' betyder at et brud på url-pattern-per-type 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 graph/url-pattern-per-type 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 url-pattern-per-type sammen med de øvrige 85 regler, og denne demoside er selv underlagt hele kontrakten.

## Relaterede regler

- [graph/orphan-pages](https://pseo.mikkelkrogsholm.dk/regler/graph/orphan-pages/)
- [graph/broken-internal-links](https://pseo.mikkelkrogsholm.dk/regler/graph/broken-internal-links/)
- [graph/click-depth](https://pseo.mikkelkrogsholm.dk/regler/graph/click-depth/)
