Files
2026-06-25 19:06:59 -04:00

59 lines
2.8 KiB
Markdown

# RentalDriveGo Decision Log v12.0
Date: 2026-06-25
Scope: Phase 12 reusable component-system implementation
## D12-001: Preserve the Phase 11 styling architecture
Status: Accepted.
Phase 12 uses CSS Modules and Phase 11 semantic tokens exclusively. No utility CSS framework, CSS-in-JS runtime, or arbitrary raw brand-color API was added.
## D12-002: Prefer native platform semantics
Status: Accepted.
Buttons, links, form controls, `details`, `progress`, and `dialog` remain native elements. Custom behavior is added only where keyboard state, focus return, browser APIs, or controlled composition require it.
## D12-003: Guard the component workbench
Status: Accepted.
`/[locale]/component-lab` is the Storybook-equivalent fixture route. It is available only when `COMPONENT_FIXTURES_ENABLED=true`, is marked noindex, and uses deterministic fictional content.
## D12-004: Keep the dependency graph unchanged
Status: Accepted.
The component system uses React, browser primitives, and the existing stack. No icon, overlay, form, animation, class-merging, or state-management dependency was added. A small internal SVG icon map avoids shipping an entire icon library for several symbols.
## D12-005: Use semantic, constrained component APIs
Status: Accepted.
Public APIs expose intent, status, density, alignment, or meaningful variants. Arbitrary colors and large Boolean prop collections are prohibited. Link and button semantics remain distinct.
## D12-006: Treat RTL as component behavior, not a global mirror
Status: Accepted.
CSS logical properties and document direction control layout. Directional icons opt into mirroring; brands, media, vehicle imagery, process chronology, and universal media controls remain fixed unless explicitly specified.
## D12-007: Suppress unresolved production evidence and destinations
Status: Accepted.
Claims, metrics, customer evidence, testimonials, pricing, CRM transmission, login destinations, sales destinations, and final media remain typed blocked states, disabled treatments, or development fixtures tied to existing issue IDs. Compilation is not product approval.
## D12-008: Keep server rendering as the default
Status: Accepted.
Only stateful controls and browser-dependent utilities create client boundaries. Static surfaces, typography, media shells, evidence structures, workflow patterns, comparison patterns, and section patterns remain server-compatible.
## D12-009: Record runtime evidence without laundering environment failures
Status: Accepted.
Static validation, formatting, lint, strict type checking, unit tests, production build, and direct HTTP route checks are recorded as executed. Browser navigation, visual baselines, frozen pnpm installation, audit, Node 24 verification, and manual assistive-technology checks remain explicit gates.