# Onboarding Welcome Specification ## Purpose A first-run welcome surface in the new visual language, explicitly monetization-free. Traceable to WU17. ## Requirements ### Requirement: Full-Screen Welcome Route The welcome screen MUST render as a full-screen route (not a modal dialog), containing: logo mark, headline, body copy, exactly 3 feature bullets, and exactly one primary call-to-action ("Empezar a escuchar"). #### Scenario: All elements render, one CTA - GIVEN the app launches for the first time - WHEN the welcome screen renders - THEN a logo, headline, body copy, and 3 feature bullets are visible - AND exactly 1 primary CTA is present ### Requirement: No Monetization Content (First-Class, Binding) The welcome screen MUST NOT render a PRO pill, any trial-duration text (e.g. a day count), any price, or a secondary "free version" link. This follows the binding no-monetization decision for this change. #### Scenario: Rendered content contains no monetization strings - GIVEN the welcome screen is rendered - WHEN its widget tree's text content is scanned - THEN it contains none of: the substring "PRO", a currency amount, or a day-count trial phrase - AND no secondary "free version" link is present ### Requirement: CTA Dismisses to Escuchar Tapping the primary CTA MUST dismiss the welcome screen and land on the Escuchar tab (index 0), with the welcome route removed from the navigation stack. #### Scenario: CTA navigates to Escuchar - GIVEN the welcome screen is showing - WHEN the user taps "Empezar a escuchar" - THEN the app shows the Escuchar tab - AND the welcome route is no longer on the back stack