Goal
Drive the unsettled visual language, logo/wordmark, and digital-element decisions to a ratified state. Output is the locked visual register that sales-app-react modules from Phase 2 onwards consume — meaning every UI decision in the React build downstream rests on a brand foundation Roman has actually signed off on, not on the bundle-as-shipped which Roman has not fully bought into.
Status
Workstream stub — needs its own /plan session before /build runs. This file is a placeholder that captures scope + open questions, so sales-app-react-anchor knows what blocks it. The actual interview, approaches, and ratified plan will be produced by running /plan plans/brand-language-and-identity.md in a dedicated session.
Council Review (CONV-30) amendments apply — see
plans/sales-app-react-module-sequence.md§Council Review. Brand-specific amendments: A-BRAND-1 (add tone-of-voice + copy register as scope item; tag Riviera fixture strings[copy:locked]factual vs[copy:provisional]voice-bearing), A-BRAND-3 (define minimum-viable-brief subset = palette + typography + status palette + accent system + density baseline as the gate that unblocks sales-app-react-anchor; mood/display/exclusions can land later as per-module conversations), A-BRAND-5 (decide cote/velvet sub-brand mark scope for v1 vs accent-only stubs with "project mark TBD" Wordmark fallback).
Scope (subject to /plan refinement)
- Visual language ratification or revision. Review the design system bundle (
os/design-system/bundle/) in detail. What works, what doesn't. Where does Sergei's WIP atelier track inform or diverge. Lock or evolve: palette, accent system, typography (Helvetica Neue display + Inter body + JetBrains Mono mono — confirm or adjust), display-text register (Skeleton White marketing vs Warm Stone product), atmospheric treatments. - Logo + wordmark. Bundle has a wordmark — ratify, refine, or replace. Consider: scope of mark system (wordmark only? wordmark + standalone monogram? full logo system with variants?). Sub-brand patterns for project-specific labels (Riviera, Cote, Velvet — does each get its own treatment, or is it parametric per project accent?). Use cases: top-bar, favicon, social cards, print/PDF offer summaries, loading screens.
- Digital element system:
- Icon set — single source of icons, weight, stroke, fill conventions, sizing scale. Bundle has
icons.svg— ratify or extend. - Photographic register — how renders are framed, when full-bleed vs contained, scrim treatments, what counts as "hero" vs "content" imagery. (Critical given the product is render-dominated.)
- Motion principles — durations, easings, what kinds of transitions are allowed (Pannellum drag inertia, Sheet slide-in, modal fade, hotspot pulse). Bundle has
--ease-*and--duration-*tokens — confirm or evolve. - Status palette — bundle has oxidised palette (#5C7A4A available / #B58440 reserved / #8A4438 sold). Confirm intensity, hover/active states, anonymisation rules per project.
- Micro-interaction style — hover treatments, focus rings, click feedback, loading states, empty states.
- Icon set — single source of icons, weight, stroke, fill conventions, sizing scale. Bundle has
- 8-dimension design brief. Adopted from open-design's design-brief methodology (per other terminal's recommendation, CONV-30): lock palette / accent / typography / display / layout-model / mood / density / exclusions in a single ratified document. Becomes the shared vocabulary for all sales-app-react module-level design conversations. Per A-BRAND-3: the minimum-viable-brief that unblocks sales-app-react-anchor is the first 5 dimensions (palette + typography + status palette + accent system + density baseline); mood/display/exclusions can ratify later as per-module conversations.
- Process artifact:
os/docs/design/visual-register.md. Single source-of-truth document sales-app-react consumes. Lists every locked decision with rationale + visual examples (HTML snippets / Storybook story URLs / image refs). - Tone-of-voice + copy register (A-BRAND-1). Wordmark voice, placeholder/empty-state copy, sales-hyperbole boundaries. Decision affects whether
src/data/riviera.tscontent (sourced from real Mered/H&dM marketing) needs a tone re-pass before sales-app-react modules quote it. Strings in the fixture are tagged[copy:locked](factual: prices, sqft, dates) vs[copy:provisional](voice-bearing) so brand can rewrite the latter without touching schema.
Open questions (for /plan interview)
- Is Sergei a participant in this workstream or is it Roman + Claude? Sergei has produced atelier mockups Roman is not happy with — does Sergei get a brief or does Roman drive solo?
- Logo scope — wordmark-only refinement, or full identity exercise?
- Reference corpus — clone open-design's
design-systems/directory (71 distilled DESIGN.md files: claude, linear, framer, airbnb, intercom, mintlify, etc.) as a pointing library for "we want something between X and Y" conversations? Seefeedback_design_inputs.mdfor canonical inputs allowlist. - Stakeholder review — Nadezhda is the demo target; does she review brand decisions or only the final modules?
- Critique rubric — adopt open-design's 5-dimension scored review (Philosophy / Hierarchy / Detail / Functionality / Innovation) for comparing the three current design states (live production / Sergei atelier / new bundle direction)?
- Trademark / availability check on the wordmark — in scope here or separate legal workstream?
Tasks (placeholder — refined by /plan)
- [ ] Run
/plan plans/brand-language-and-identity.mdto interview Roman, propose approaches, ratify a real plan - [ ] Bundle review session — what works, what doesn't
- [ ] Logo/wordmark direction
- [ ] Icon system audit + extension
- [ ] Photographic register principles
- [ ] Motion principles
- [ ] Status palette confirmation
- [ ] 8-dimension design brief filled in + ratified
- [ ] Write
os/docs/design/visual-register.mdas ratified source-of-truth - [ ] Sign-off review with Roman before unblocking
sales-app-react-anchor
What's Next
Run /plan plans/brand-language-and-identity.md in a dedicated session. The interview should explore: Sergei's role, logo scope, reference corpus inclusion, stakeholder review boundaries. Out of this comes a real plan with phases, approaches, and a workstreams table that supersedes this stub.
Key Context
- This workstream BLOCKS
sales-app-react-anchor(Phase 2 onwards of sales-app-react). It does NOT blocksales-app-react-foundation(Phase 1) which is visual-identity-free. - Bundle starting point:
os/design-system/bundle/(extracted fromOffplan Online Design System-handoff.zipin Roman's Dropbox). - Sergei's WIP PNGs (NOT canonical, per
feedback_design_inputs.md):~/VOLUME VISION Dropbox/Roman Tarasov/DB_Downloads/UI_UX Design _ Offplan (Roman's Copy)/ - sales-app-react plan that consumes this workstream's output:
plans/sales-app-react-module-sequence.md - design-brief 8-dimension framework reference: open-design repo at
https://github.com/nexu-io/open-design/tree/main/skills/design-brief(per CONV-30 other-terminal triage) - Audit of live production:
os/docs/audit/SUMMARY.md(informs which patterns survive, which don't) - Nadezhda IA shift:
os/docs/research/client-feedback-nadezhda-2026-05-08.md
Session Log
- CONV-30 (2026-05-09): Workstream created when Roman flagged that visual language, logo, and digital elements aren't fully settled. Stub captures scope + open questions; real /plan session needed before /build.
- CONV-30 (2026-05-11, buyer-journey track close): Plan integrated post-council (7 CRITICAL + 22 HIGH + 7 MEDIUM amendments inline), renamed from path2- slug to sales-app-react-, parallel brand-language-and-identity track established. State ratified, ready for /build (or /plan plans/brand-language-and-identity.md for the brand track).