Files
gridpilot.gg/docs/architecture/website/WEBSITE_GUARDRAILS.md
2026-01-11 14:04:48 +01:00

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.* or toLocale*
  • 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.* or toLocale*

Templates accept ViewData only.

3) Display Object guardrails

Fail CI if any apps/website/lib/display-objects/**:

  • calls Intl.* or toLocale*

Display Objects must be deterministic.