Files
waggle-os/docs/briefs/2026-05-01-cc-sesija-D-apps-web-ui-alignment.md
Oleg Maslov 0c3e2ead3b
Some checks failed
Installer Smoke / installer-smoke (push) Has been cancelled
moving
2026-09-02 10:10:29 +02:00

14 KiB
Raw Permalink Blame History

CC Sesija D — Waggle apps/web UI Alignment sa Claude Design Prototype

Datum: 2026-05-01 Autor: PM Status: AUTHORED — awaiting Marko ratifikacija → CC kickoff Authority: Track A iz decisions/2026-04-30-pre-launch-sprint-consolidation-LOCKED.md + Pass 1 review strategy/ui-ux/2026-04-30-track-a-uiux-review-pass-1.md + Claude Design overnight completes project_overnight_2026_04_30_claude_design_completes.md Branch policy: Kreirati feature/sesija-D-ui-alignment iz main HEAD-a (NE iz feature/sesija-A — taj branch je za Tauri/backend integration, paralelan stream) Cost cap: $40 hard / $30 halt / $10-20 expected — UI iteracije sa screenshot verifications mogu biti tokens-heavy


§0 — Pre-flight gates (BLOCKING — CC mora da prođe pre §1 kickoff)

Gate G0.1 — Branch state verifikacija

CC izvršava i prijavljuje:

  • git fetch origin && git status — clean working tree
  • git log --oneline -5 origin/main — verify HEAD je production-ready
  • git checkout -b feature/sesija-D-ui-alignment origin/main — create branch
  • npm install --workspace=apps/web — verify dependencies clean

PASS uslovi: clean checkout, npm install zero errors, dev server može da krene (npm run dev --workspace=apps/web opens at localhost:5173 ili sl.) FAIL handling: halt + PM ratifikacija pre nastavka

Gate G0.2 — Test baseline establish

CC izvršava i prijavljuje:

  • npm test --workspace=apps/web — full vitest run
  • npm run lint --workspace=apps/web — ESLint clean
  • npm run typecheck --workspace=apps/web — TypeScript clean

Capture full test count (X passed / Y skipped / Z failed). To je baseline — svaki commit u Sesija D mora održavati ili poboljšati taj broj. Zero new failures.

Gate G0.3 — Visual reference acquisition

CC pristupa Claude Design "waggle app" project (URL: https://claude.ai/design/p/019dd700-75a0-7127-872a-3ce5e162d11f?file=Waggle+Workspace+OS.html) za pixel-level reference. Ako CC nema browser access, alternativa je da PM autoring pripremi screenshot folder u D:\Projects\PM-Waggle-OS\strategy\ui-ux\reference-screenshots\ sa po-state screenshots (Tweaks closed/open, dark/light theme, simple/professional/power tier) — koje CC koristi kao spec.

PASS uslovi: CC dobio access do reference (browser ili screenshot folder). FAIL handling: PM dostavlja screenshot bundle za 30 min, kickoff resume.


§1 — Scope declaration

Šta ulazi u Sesija D

Strukturni UI alignment apps/web/src/components/os/ existing React/TypeScript codebase sa Claude Design visual spec-om iz overnight Pass 1 fix iteracije + Waggle Landing.html visual tokens. Sedam Pass 1 fix-eva already done in Claude Design moraju biti reflected u waggle-os apps/web/ React komponentama.

Konkretno: Desktop.tsx + Dock.tsx + StatusBar.tsx + AppWindow.tsx + ContextRail (overlays/) + MemoryApp.tsx (filter pills) + Settings/Tweaks UI + Welcome callout system. Plus dark theme color tokens, typography (Inter + JetBrains Mono), spacing tokens.

Šta NE ulazi u Sesija D

  • Backend code (services/, hive-mind packages, MCP servers) — touched 0 lines
  • Business logic unutar apps (npr. MemoryApp logic, ChatApp message flow, AgentsApp agent execution) — UI/UX prezentacioni sloj only
  • 25 apps individual feature work — only shell + Memory + Chat + Cockpit polish u Sesija D
  • Tauri/.msi packaging — to je Sesija A scope, ne diramo
  • Landing site (apps/www ako postoji) — separate stream
  • Test infrastructure changes — postojeći vitest + playwright ostaje
  • New dependencies — koristimo postojeće (shadcn/ui + Tailwind + react-query + react-router)

§2 — Mapping table (Claude Design → waggle-os apps/web)

Claude Design component / state waggle-os target file Akcija Priority
Dock global position (fixed, bottom 14px, viewport-centered) apps/web/src/components/os/Dock.tsx Refactor outer wrapper iz left:0; right:0; flex-center u position: fixed; bottom: 14px; left: 50%; transform: translateX(-50%) na dock pill itself; verify ne pomera kad Tweaks panel toggle P0
Top menu bar (Waggle/File/Edit/View/Window/Help) sa View shortcuts ⌘1 Cockpit / ⌘2 Memory / ⌘3 Chat apps/web/src/components/os/StatusBar.tsx (ili novi MenuBar.tsx) Add macOS-style menu bar component sa keyboard shortcuts; bind shortcuts u global handler P0
Workspace selector "Q1 Strategy Review" (replaceable) apps/web/src/components/os/WorkspaceBriefing.tsx ili StatusBar Update default placeholder text + interaction popover P1
Model selector dropdown "qwen3.6-35b-thinking" sa interactive popover apps/web/src/components/os/ModelSelector.tsx Update default model + ensure popover trigger working + Phase 5 LOCKED scope only (Claude Opus + qwen-thinking, ne GPT/Llama/Gemini) P0
Memory app filter pills "all/decision/fact/insight/task/event" apps/web/src/components/os/apps/MemoryApp.tsx Add "event" pill to filter pills component P1
Welcome callout cards (Back/Next + "Don't show again", 3-card swipeable format) New component apps/web/src/components/os/WelcomeCards.tsx Implement card-based onboarding flow, replace any existing single-callout P1
Tweaks panel — Dock position dropdown sa default "Bottom" apps/web/src/components/os/apps/SettingsApp.tsx ili novi TweaksPanel.tsx Implement dropdown sa working state mgmt (bottom/top/left/right) P2
Tweaks panel — Billing Tier dropdown sa default "Pro" Same Tweaks panel Implement dropdown bound na user tier system P2
Z-order focus dim (0.7 opacity overlay za unfocused windows) apps/web/src/components/os/AppWindow.tsx Add focus state + dim CSS na non-focused windows P1
Cockpit window default state ("3 agents · 1 running · 1 queued") apps/web/src/components/os/apps/CockpitApp.tsx Update default mock state za prototype-friendly demo P2
Chat window persona ("Researcher · Deep investigation, multi-source synthesis") apps/web/src/components/os/apps/ChatApp.tsx ili ChatWindowInstance Update default persona display + add persona switcher hook P2
Color tokens — dark navy #0A0E1A bg, warm beige #F5E6D3 text, orange #ED915C primary CTA apps/web/tailwind.config.js ili apps/web/src/index.css Update theme tokens to match Claude Design palette P0
Typography — Inter (body) + JetBrains Mono (tags/numerals) Same tailwind config + globals.css Add font-family tokens, ensure web fonts loaded P1

Mapping discovery uslovi

CC mora prvo da read postojeće Dock.tsx, StatusBar.tsx, AppWindow.tsx files i prijavi PM-u diff-aware mapping — šta već postoji u kodu, šta treba dodati, šta menjati. Ne implement before reporting current state. PM ratifikuje mapping pre §3 implementation kickoff.


§3 — Implementation phases

§3.1 — Phase 1: Color + Typography tokens (P0, 1 dan)

Update tailwind config + globals.css sa Claude Design palette. Verify svi postojeći komponenti i dalje render-uju (visual regression check kroz Playwright snapshot tests). Zero functional change — samo theme refresh.

Deliverable: PR commit "feat(theme): align tokens sa Claude Design — dark navy + warm beige + orange CTA". Screenshot diff (before/after) attached.

§3.2 — Phase 2: Dock + StatusBar + MenuBar P0 (1-2 dana)

Three P0 fixes:

  1. Dock global position refactor (postojeći Dock.tsx) — exact CSS spec primenjen
  2. Top MenuBar implementacija sa keyboard shortcuts ⌘1/⌘2/⌘3 (i ⌘P workspace switcher, ⌘K spotlight)
  3. ModelSelector update sa Phase 5 LOCKED scope + interactive popover

Deliverable: PR commit per fix sa Playwright screenshot test koji verifikuje state. Test suite green.

§3.3 — Phase 3: Memory app filter pills + Welcome cards (P1, 1 dan)

Add "event" pill u MemoryApp filter component. Implement WelcomeCards component sa Back/Next + "Don't show again" + first-launch detection.

Deliverable: PR commits + visual regression tests + e2e test za welcome flow first-launch.

§3.4 — Phase 4: Z-order focus dim + AppWindow polish (P1, 1 dan)

AppWindow component dobija focus state, unfocused windows dim na 0.7 opacity. Window switching kroz ⌘` (cmd+backtick) implementiran.

Deliverable: PR commit sa interactive demo screenshots multi-window state pre/posle focus change.

§3.5 — Phase 5: Tweaks panel dropdowns (P2, 1-2 dana)

SettingsApp ili novi TweaksPanel komponenta dobija dva working dropdowns: Dock position (bottom/top/left/right) + Billing Tier (free/trial/pro/teams/enterprise). Real state management, ne dead UI. Billing Tier toggling menja Approvals chip visibility u dock + Team Governance access.

Deliverable: PR commit sa interactive demo, full test coverage.

§3.6 — Phase 6: Cockpit + Chat default states (P2, 0.5 dana)

CockpitApp dobija prototype-friendly default mock state. ChatApp dobija default persona display + persona switcher. Niska kompleksnost, kosmetičko poboljšanje za demo screenshots.

Deliverable: PR commit sa screenshot updates.


§4 — Visual reference assets (PM dostavlja)

PM autoring sa overnight Computer Use:

  • D:\Projects\PM-Waggle-OS\strategy\ui-ux\reference-screenshots\ folder sa pre-named PNG-ovima:
    • dock-fixed-tweaks-closed.png (Claude Design verified output)
    • dock-fixed-tweaks-open.png (Claude Design verified output)
    • welcome-callout-cards.png
    • tweaks-panel-dropdowns.png
    • view-menu-shortcuts.png
    • memory-filter-pills-event.png
    • model-selector-popover.png
    • multi-window-focus-dim.png
    • landing-hero.png (color reference)

Plus reference fajlovi:

  • landing-v3.1-refreshed-overnight.md — color tokens + typography spec source-of-truth
  • track-a-uiux-review-pass-1.md — original Pass 1 diagnostic
  • project_overnight_2026_04_30_claude_design_completes.md — accepted fix decisions

CC fetch-uje ove fajlove kao input pre §3.1 phase kickoff.


§5 — Acceptance criteria

CC Sesija D je COMPLETE kad svih 6 phases zatvoren PR-ovima na feature/sesija-D-ui-alignment branch sa:

  1. Test posture: vitest + playwright + tsc + ESLint zero new failures vs G0.2 baseline
  2. Visual diff: Screenshot diff before/after za svaki phase, embedded u PR description
  3. Pixel match: Dock pill x-position centered na viewport midpoint kad Tweaks closed AND open (per overnight spec)
  4. Functional: ⌘1/⌘2/⌘3/⌘`/⌘K/⌘P shortcuts sve work, popovers open na click, dropdowns store state
  5. Branch state: sve commits pushed na origin, branch ready za review (NE merge — Marko ratifikuje pre merge u main)
  6. Documentation: Update apps/web/README.md (ako postoji) sa novim color tokens + shortcut list

PM Pass 2 review (ja kroz Computer Use ili manual screenshots verification) na branch HEAD-u pre merge u main.


§6 — Cost projection (real-anchored)

Baseline procena per phase:

  • Phase 1 (tokens): ~5K LLM tokens — color tokens su deterministic, mali file diff
  • Phase 2 (dock+menubar+modelselector): ~30K — Dock.tsx ~200-400 LOC menjati, MenuBar od nule ~150-300 LOC, ModelSelector ~50-100 LOC
  • Phase 3 (filter pills + welcome): ~15K
  • Phase 4 (focus dim): ~10K
  • Phase 5 (tweaks dropdowns): ~25K — dva interactive dropdowns sa state mgmt + tests
  • Phase 6 (cockpit+chat): ~10K

Total estimate: ~95K tokens × Sonnet 4.6 cost = ~$15-20 per single pass. Cap $40 hard / $30 halt allows for 1-2 retry passes ako bilo koji phase fail QA.

Halt triggers:

  • Cumulative spend > $30 → halt + PM review
  • Any phase requires > 5 retry iteracija → halt + PM diagnostic
  • Test suite breaks i ne može vratiti zelenom unutar 1h → halt + PM rollback decision
  • TypeScript errors koji nisu auto-fixable unutar 30 min → halt + PM scope decision

§7 — Out of scope (eksplicitno isključeno)

  • Backend integration (services/, hive-mind packages)
  • New apps (sve od 25 postojećih ostaju, samo shell + 3 core polished)
  • BootScreen redesign — Day 1 polish, ne pre-launch
  • Animation polish (motion design) — Day 1 polish, ne pre-launch
  • Accessibility audit (WCAG full pass) — separate stream Sesija E ako prioritet
  • i18n / lokalizacija — Day 1 polish
  • Performance optimization (bundle size, code splitting) — Day 1 polish
  • Tauri-specific behavior (resize, traffic lights, system tray) — Sesija A scope

§8 — Audit trail anchors

  • Pre-launch sprint consolidation: decisions/2026-04-30-pre-launch-sprint-consolidation-LOCKED.md Track A
  • Pass 1 review (input): strategy/ui-ux/2026-04-30-track-a-uiux-review-pass-1.md
  • Overnight Claude Design completes (fix evidence): project_overnight_2026_04_30_claude_design_completes.md
  • Landing v3.1 (color/typography source): strategy/landing/2026-04-30-landing-v3.1-refreshed-overnight.md
  • Memory systems coexistence (cross-stream context): feedback_memory_systems_coexistence.md
  • This brief: briefs/2026-05-01-cc-sesija-D-apps-web-ui-alignment.md

§9 — Marko ratifikacija decisions (4 odluke)

Pre nego što CC krene, treba 4 ratifikacije:

  1. Branch baselineorigin/main HEAD ili feature/sesija-A ako Marko želi da Sesija D radi povrh A za smoother merge?
  2. Visual reference dostava — PM pravi screenshot bundle (1h Computer Use) ili CC samostalno fetch-uje Claude Design URL (rizik: Claude Design account cookie)?
  3. Cost cap — $40 hard cap OK ili menjamo? Probe-validated $35-45 reality nije relevantna ovde (drugi tip rada od Phase 5 production deployment), $40 ima headroom za 1-2 retry passes.
  4. Branch merge policy — CC otvara PR ka main i čeka Marko ratifikaciju, ili ja PM mergujem posle Pass 2 review u njegovo ime?

End of brief. Awaiting Marko ratifikacija na 4 odluke iz §9 → CC kickoff.