# Scenarios page video export and matching simulation Date: 2026-10-14 Scope: research_domains/lrigit/scenarios.html, the existing SVG flywheel. This is the page explicitly selected by the user. ## Product behavior - A seventh selectable matching scenario now explains atomic requirements, resource recall, primary evidence, capability gaps, candidate/work-package review, V1/V2 comparison and cross-challenge reuse. - It is visibly fictional simulation, with candidate A/B and explicit unverified gaps. It does not claim live matching, successful cooperation, mail sending or TableGit writes. - Original six scenes and the default insight scene remain. - Scenario selectors now fit two desktop rows / three mobile rows. Lower content and video aspect ratio shift together. - The export section is on scenarios.html itself: current step (from its beginning) or current scenario's full 12-step cycle. - Export takes an immutable snapshot of scenario, phase, language, layout, selected report version and speed. Later page changes cannot change an in-flight export. - The existing speed button cycles 1x, 1.5x, 2x, 4x, 0.25x, 0.5x. - A complete cycle has source duration 42.7 seconds. Output duration is source duration / selected speed. - Output: local WebM/VP8, 24fps, same display aspect ratio; progress, cancellation and cleanup. No external upload. - Frame materialization reuses flywheel-view's scene renderer and shared visualState calculations used by the live player. - Existing simple horizontal SMIL particles are sampled to static coordinates. Unrecognized animation fails explicitly rather than silently disappearing. - The video encoder is shared with the earlier independent TableGit scene export; the TableGit page is not the target of this change. ## Actual verification - Local Node syntax checks: PASS. - Pure renderer test: PASS for 7 scenarios x 12 phases x 2 layouts x 2 locales = 336 deterministic frames, plus prompt interpolation, ranges, matching artifact label, even output dimensions and preservation of the default scene. - VP8/WebM constant-frame container fixtures decoded by ffprobe: 1x: 42.700000 sec / 1025 frames. 1.5x: 28.466666 sec / 684 frames. 2x: 21.350000 sec / 513 frames. These validate media container/timing including the >30-second cluster boundary; they are not browser SVG captures. - Shared Shell validation was PASS before the seventh-scene addition; markup continues to use the same shell/style contract. - Configured formal topic-workflow gate was PASS before the seventh-scene addition and is rerun by formal publication. - Full repository validation: FAIL at the unchanged meaningful_missing=34 style-coverage baseline. - Current browser playback/download and SVG-to-WebCodecs integration: NOT_RUN. Previously observed local Chromium absence / cloud navigation block remain; no real-browser acceptance is claimed. - Existing validate-flywheel.mjs now expects seven scenes; local pure export/render checks are distinct from its repository integration reads. - Layout source/code checks do not certify live font metrics or viewport interaction. ## Follow-up Browser acceptance must download current-step and full matching-scenario videos at slow/normal/fast rates, verify raster frame content and duration, cancel a long export, check desktop/mobile font bounds, and switch scene/locale during an in-flight immutable export. Do not equate container fixtures with browser export acceptance or interpret fictional matching examples as authoritative matching records.