learn and teleprompter must follow /Users/ksemenenko/Developer/PrompterLive/new-design/index.html closely at runtime, not only in static markup.
The important contracts are:
- RSVP keeps the ORP letter centered on the vertical guide.
- RSVP builds phrase-aware timing from TPS scripts, not only from flat word lists.
- RSVP keeps a five-word context rail on each side, matching
new-design/app.js. - Teleprompter camera stays behind the text as one background layer.
- Teleprompter word groups stay short enough to avoid run-on lines.
- Teleprompter preserves TPS word presentation details such as pronunciation guides, inline colors, emotion styling, and speed-derived spacing/timing.
- Teleprompter pre-centers the next card before it slides in, so block transitions do not jump at the focal line.
- Teleprompter controls stay readable at rest; they must not fade until they become unusable.
flowchart LR
Session["IScriptSessionService"]
Learn["LearnPage"]
Reader["TeleprompterPage"]
Js["design/app.js"]
Browser["DOM + media APIs"]
Session --> Learn
Session --> Reader
Learn --> Js
Reader --> Js
Js --> Browser
learnuses the shared RSVP timeline fromRsvpTextProcessorandRsvpPlaybackEngine.learnmust finalize TPS phrase groups before building the runtime timeline, or theNextphrase preview becomes incorrect.learncenters the ORP by measuring against the full horizontal word row, matchingnew-design/app.js.learnshows five context words on the left and right rails when enough words are available.teleprompterselects one primary camera device for#rd-camera.teleprompterdoes not render overlay camera elements such as#rd-camera-overlay-*.telepromptergroups words by pauses, sentence endings, clause endings, and short phrase limits.teleprompterforwards TPS pronunciation metadata to word-leveltitle/data-pronunciationattributes.teleprompterderives word-level pacing from the compiled TPS duration and carries effective WPM into the DOM for testable parity.teleprompterkeeps TPS inline colors visible even when a phrase group is active or the active word is highlighted.
- bUnit verifies teleprompter background-camera markup and readable phrase groups.
- bUnit verifies product-launch TPS modifiers survive into teleprompter word markup, timing, and pronunciation metadata.
- Core tests verify TPS scripts generate RSVP phrase groups.
- Core tests verify shorthand inline WPM scopes such as
[180WPM]...[/180WPM]survive nested tags. - Playwright verifies ORP centering and the
security-incidentphrase-aware flow inlearn. - Playwright verifies there is no teleprompter overlay camera box and that phrase groups do not overflow.
- Playwright verifies the teleprompter camera button attaches and detaches a real synthetic
MediaStreamon the background video layer. - Playwright verifies the full
Product Launchteleprompter scenario, including visible controls, TPS formatting parity, screenshot artifacts, and aligned post-transition playback.