Files
waggle-os/docs/ux-refactor/ux-audit-2026-07-04.md
Oleg Maslov 0c3e2ead3b
Some checks failed
Installer Smoke / installer-smoke (push) Has been cancelled
moving
2026-09-02 10:10:29 +02:00

53 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# UX Audit — Browser Walkthrough 2026-07-04
Method: real browser session (headless Chromium, 1440×900) against dev build
(sidecar :3333 + vite :8080), walked as a first-time user via `?forceWizard=true`.
Screenshots in session scratchpad `ux-01`..`ux-16`.
## The first-run interruption stack (the P0 story)
A new user's first 90 seconds today:
1. Onboarding ends with **"Let's go!"** — but the first task is **never sent**;
it sits prefilled in the composer (broken promise). *(F2)*
2. The instant the workspace loads, a **"Your 15-day trial has ended" modal**
covers everything. *(F1)*
3. Dismissing it immediately reveals a **4-step coach-mark carousel** over the
welcome panel. *(F5)*
4. Sending the message manually then fails: **"API key is invalid or expired"**
— even though onboarding's model step showed a green **"You have a working
model — you're ready to go."** *(F3)*
5. The error is dead-end small text: no Retry, no link to the settings screen
it names. *(F4)*
## Findings
| # | Sev | Finding | Evidence |
|---|-----|---------|----------|
| F1 | P0 | Trial-ended paywall modal re-fires on EVERY route navigation; "Continue with Free" dismissal is not persisted (fired 3× in 10 min: post-onboarding, `/`, `/memory`) | ux-07, ux-11, ux-12 |
| F2 | P0 | Onboarding final step "Let's go!" navigates to chat but does NOT send the chosen first task; text sits in composer | ux-08 |
| F3 | P0 | Model-gate step claims "You have a working model — you're ready to go" from key presence only; first real call 401s. Probe exists server-side (`llm-key-probe.ts`) but the claim isn't probe-backed | ux-03 vs ux-10 |
| F4 | P1 | Chat LLM error is inline small text, no Retry button, no link to "Settings > API Keys" it references | ux-10 |
| F5 | P1 | Coach-mark carousel fires immediately on first landing, stacking on top of the paywall dismissal; suppress on first-run landing / show later | ux-08 |
| F6 | P2 | Onboarding polish: (a) disabled "English (US)" pill looks clickable; (b) duplicate Back controls (header ← Back + footer Back); (c) all 8 "help with" chips preselected → zero signal; (d) template picker ignores stated role — no "Recommended" ranking (Strategy Consultant → no consulting-flavored guidance); (e) final step loses Back + step counter; (f) final-step suggestion chips not template/role-tailored (PRD/campaign chips inside Research Hub) | ux-01..06 |
| F7 | P2 | IA naming drift: sidebar "Agents & tasks" → page "Agent Center" (no tasks visible anywhere on it); sidebar "Library" → page/URL "Artifacts"; section label "EVERYTHING ELSE" is filler copy | ux-13, ux-14 |
| F8 | P2 | Sidebar active-state wrong on workspace Overview (highlights "Chat") | ux-15 |
| F9 | P3 | Welcome-back panel on a fresh workspace: "Here's where you left off … across 0 sessions"; should have a first-visit variant | ux-08 |
| F10 | P3 | ⌘K palette: ESC chip collides with close ✕ icon | ux-16 |
| F11 | P3 | Working-step accordion duplicates ("Worked across your memory, web & files" ×2 for one turn) | ux-10 |
| F12 | P3 | Agent Center: single row floats over a vast honeycomb void — needs a richer empty/sparse state (template suggestions) | ux-13 |
## What's already good (don't regress)
- Welcome hero: calm, single CTA, on-device trust line.
- Live greeting preview in who-are-you step.
- "Claude Code detected — 495 items — Import my history" one-click harvest.
- Chat working-state transparency (Auto Recall chip, timing).
- ⌘K palette structure (Jump to / Do).
- Trial modal's honest "You keep / You lose" framing (the content, not the timing).
## Wave plan
- Wave 1 (this session): F1, F2, F3/F4 (probe + actionable error), F5, F8, F9, F10.
- Wave 2: F6 (onboarding polish set), F7 (IA naming — product naming decision), F11, F12.