## Purpose Canonical specification for delivery-and-rendering-performance requirements synced from OpenSpec change deltas. ## Requirements ### Requirement: HTTP delivery applies compression and cache policy The system SHALL apply transport-level compression and explicit cache directives for static assets, API responses, and public HTML routes. #### Scenario: Compressed responses are available for eligible payloads - **WHEN** a client requests compressible content that exceeds the compression threshold - **THEN** the response is served with gzip compression - **AND** response headers advertise the selected content encoding #### Scenario: Route classes receive deterministic cache-control directives - **WHEN** clients request static assets, API responses, or HTML page routes - **THEN** each route class returns a cache policy aligned to its freshness requirements - **AND** cache directives are explicit and testable from response headers ### Requirement: Media rendering optimizes perceived loading performance The system SHALL lazy-load non-critical images and render shimmer placeholders until image load completion or fallback resolution. #### Scenario: Feed and modal images lazy-load with placeholders - **WHEN** feed or modal images have not completed loading - **THEN** a shimmer placeholder is visible for the pending image region - **AND** the placeholder is removed after load or fallback error handling completes #### Scenario: Image rendering reduces layout shift risk - **WHEN** article images are rendered in hero, feed, or modal contexts - **THEN** image elements include explicit dimensions and async decoding hints - **AND** layout remains stable while content loads ### Requirement: Smooth scrolling behavior is consistently enabled The system SHALL provide smooth scrolling behavior for in-page navigation and user-initiated scroll interactions. #### Scenario: In-page navigation uses smooth scrolling - **WHEN** users navigate to in-page anchors or equivalent interactions - **THEN** scrolling transitions occur smoothly rather than jumping abruptly - **AND** behavior is consistent across supported breakpoints ### Requirement: Performance thresholds are continuously validated The system SHALL enforce page-speed and rendering performance thresholds in automated checks. #### Scenario: Performance budget gate - **WHEN** performance checks exceed configured budget thresholds - **THEN** CI performance gate fails - **AND** reports identify the regressed metrics and impacted pages