offplan · online
Workstream · sales-app

sales-app-react — Wrap

Activeworkstreamsales-apppriority P0
Owner
roman
Created
2026-05-09
Plan
sales-app-react-module-sequence
Priority
P0
Tags
ux, architecture, ops, testing

Goal

Close the journey: add welcome (skip-easy entry) and project-tour (multi-node walkthrough wired to swap in Roman's incoming interior 360°s), assemble everything into /projects/[slug] + /saved sub-route, ship the buyer-profile API stub + CRM-CONTRACT.md spec, and add a Playwright happy-path smoke test.

Council Review (CONV-30) amendments apply — see plans/sales-app-react-module-sequence.md §Council Review. Phase 5 amendments: A-IMPL-1 (Server Component + JourneyShell + Suspense pattern), A-RES-2 (ProjectTour gates behind "Coming soon" if <3/5 panos real), A-RES-4 (validate searchParams against fixture; redirect on miss), A-SEC-2/S-T5 (CRITICAL — ADGM DPR 2021 + retention TTL + erasure endpoint + privacy notice in CRM-CONTRACT.md), A-SEC-4 (CSRF + rate limit + origin allow-list), A-SALESUX-1 (PresenterBar new module), A-DEMO-4 (visual register reconciliation pass), A-SALESUX-5 (welcomeDefault per project), A-BUYUX-5 (Welcome shows only on first visit; returning identified buyers via ?profile=<lookupId> skip Welcome).

Per-module 4-step design loop (A-DEVUX-1): Welcome + ProjectTour are photo-heavy → real-page-stub. PresenterBar is a density module → use /wireframe.

Note: Per A-SEQ-2, the basic /projects/[slug]/page.tsx Server Component was shipped in sales-app-react-anchor (Phase 2) as minimal mount of <Exterior360>. This phase ENRICHES it with Welcome routing, URL state, and the JourneyShell wrapper.

Tasks

JourneyShell + URL state (A-IMPL-1)

Welcome module (photo-heavy)

ProjectTour module (photo-heavy + A-RES-2 gating)

PresenterBar module (density — A-SALESUX-1, NEW)

API stub + CRM-CONTRACT.md (A-SEC-2 ADGM compliance + A-SEC-4 auth)

Visual register reconciliation (A-DEMO-4)

E2E smoke + final verification

What's Next

Confirm Phase 4 (sales-app-react-capture) is complete — buyer-profile chip + capture modal must work in Storybook before this phase wires them into the route. Then start with src/app/projects/[slug]/page.tsx (the integration point that pulls everything together — surfaces wiring problems early). Then Welcome (simplest content module). Then ProjectTour. Then API stub + Playwright smoke. Finish with CRM-CONTRACT.md (best written after seeing the full flow work, so the spec reflects actual UX). Australian English sweep last.

Key Context

Session Log