offplan · online
Workstream · sales-app

sales-app-react — Foundation

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

Goal

Land the load-bearing scaffold (types, Riviera fixture, Pannellum wrapper, BuyerProfile React Context, format helpers) so every subsequent sales-app-react phase is pure composition on top.

Council Review (CONV-30) amendments apply — see plans/sales-app-react-module-sequence.md §Council Review for full list. Phase 1 amendments include: A-SCALE-1 (CRITICAL — Roman directive: switch state primitive from Context to Zustand for cross-app reuse / multi-app future), A-RES-3/S-T4 (CRITICAL, persist middleware + version + Zod rehydrate validation), A-HEALTH-2 (full Panorama prop surface up front), A-DEMO-1 (loading slot), A-RES-1 (Storybook fallback = iframe story, not canvas polyfill), A-IMPL-2 (test convention + scripts), A-IMPL-3 (story title taxonomy), A-IMPL-4 (UnitStatus/Aspect as discriminated unions), A-HEALTH-5 (getProject helper + MissingProjectFallback), A-BRAND-4 (extract Wordmark.tsx swap point), A-HEALTH-1 (ESLint bare-string rule).

Drift-check (A-DEVUX-5): this task list mirrors plan Phase 1 tasks 1-7 plus the amendments above.

Tasks

What's Next

Read os/plans/sales-app-react-module-sequence.md Phase 1 in full, then the codebase research findings in §Step 2. Read docs/next16-tailwind4-notes.md BEFORE writing any code (per AGENTS.md directive). Start with extending src/types/index.ts — that unblocks the Riviera fixture, which unblocks the Pannellum wrapper story.

Key Context

Session Log