Files
Rental-operations-platform/contracts/phase9/implementation/TECHNOLOGY_PROFILE_v1.0.md
T
2026-06-25 19:06:59 -04:00

44 lines
1.9 KiB
Markdown

# Technology Profile
## Required capabilities
The production stack must support SSR or SSG, strict TypeScript, locale-aware route generation, server-readable cookies, CSP nonces or hashes, accessible native dialogs or an equivalent proven overlay primitive, CSS logical properties, automated component tests, Playwright-style browser tests, and deterministic visual-regression fixtures.
## Default profile when architecture has not selected a stack
This profile is a default, not a retroactive approval:
- React-compatible SSR framework with file-based routing
- TypeScript in strict mode
- CSS Modules plus global semantic custom properties
- no runtime CSS-in-JS dependency for static marketing layout
- server components or server rendering for page shell, metadata, locale, and theme attributes
- client code limited to navigation drawer, theme selector, locale selector, tour, demo form, and analytics adapter
- schema validation at network boundaries
- first-party API endpoint or server action for demo submission
- Playwright-compatible browser testing
Exact framework and dependency versions are pinned at repository creation and recorded in the decision log. Do not let the package manager quietly select floating major versions, because apparently version drift enjoys surprise appearances during deadlines.
## Styling constraints
CSS variables contain all visual tokens. Components may use CSS Modules, scoped styles, or an equivalent build-time strategy, but may not embed raw brand colors, physical left/right spacing, or duplicated light/dark values. Utility classes are permitted only if generated from the same semantic token source and if class ordering does not become the design system.
## Repository baseline
```text
src/
app-or-pages/
components/
content/locales/
lib/analytics/
lib/localization/
lib/theme/
styles/tokens.css
styles/globals.css
public/assets/
tests/a11y/
tests/browser/
tests/visual/
```