1020 B
1020 B
Website Guardrails (Mandatory)
This document defines architecture guardrails that must be enforced via tests + ESLint.
Authoritative contract: WEBSITE_CONTRACT.md.
1) RSC boundary guardrails
Fail CI if any apps/website/app/**/page.tsx:
- imports from
apps/website/lib/view-models/* - imports from Presenter code (presenters live colocated with ViewModels)
- calls
Intl.*ortoLocale* - performs sorting/filtering (
sort,filter,reduce) beyond trivial null checks
2) Template purity guardrails
Fail CI if any apps/website/templates/**:
- imports from
apps/website/lib/view-models/* - imports from presenter code (presenters live colocated with ViewModels)
- imports from
apps/website/lib/display-objects/* - calls
Intl.*ortoLocale*
Templates accept ViewData only.
3) Display Object guardrails
Fail CI if any apps/website/lib/display-objects/**:
- calls
Intl.*ortoLocale*
Display Objects must be deterministic.