End-to-end user test for the chat-first MC with unified MC + Telegram threads, orchestrator-owned WAT, and workbench-as-chat. Reference designs: mc-ux-journey.html, mc-chat-first-design.md, mc-chat-first-test-plan.md (v1). Target feel: Claude Code / Cursor / Aion UI / Emergent / Loveable / Replit — clean AI-agent chat shell. Workbench feels like picking an ongoing chat; detail console is fallback only.
Format: DO → EXPECT → WHAT YOU SHOULD SEE. Desktop 1280×720 + mobile 375×812. Tessa: real interaction only, no DOM-injection sign-off (per tessa-real-interaction memory).
Segment 1 — Landing (chat-first home)
- DO: Open MC
/ on mobile. EXPECT: lands directly in chat shell — compact status strip, threads list, composer. SEE: clean AI-chat layout (Claude-Code-ish dark/light), NO board, NO KPI dump. Send button visible, ≥44px, no FAB overlap.
- DO: Scroll the page vertically with a finger. EXPECT: smooth scroll, no blocked sections. SEE: no element is unreachable. (Elmar's bug: scroll broken on mobile.)
- DO: Resize / rotate. EXPECT: layout reflows; nothing clipped.
Segment 2 — Unified Threads (MC + Telegram)
- DO: Open the Threads panel. EXPECT: see threads from both MC and Telegram in one list. SEE: each thread has title + last-message preview + relative time + a tiny badge (📱 Telegram / 💬 MC) so you know the origin.
- DO: Tap a Telegram-origin thread. EXPECT: the full conversation loads — same chat shell. Continues right where the Telegram thread left off.
- DO: Tap "+ New". EXPECT: fresh thread, focused composer.
- DO: Side-swipe a thread on mobile. EXPECT: archive / rename action revealed (mobile-native gesture).
Segment 3 — Send + receive (real interaction)
- DO: Type a plain question, tap send. EXPECT: message appears in thread, working indicator shows, orchestrator reply lands inline within ~30s.
- DO: Send a second message referencing the first. EXPECT: continuity. SEE: chat scrolls to latest.
- DO: Send from the same thread on Telegram. EXPECT: the message also appears in the MC thread view (and vice versa) — unified.
Segment 4 — Action cards (orchestrator-owned WAT)
- DO: State a multi-part intent ("fix the kitchen lights AND draft the briefing"). EXPECT: reply renders action/proposal cards — run-now / make-a-ticket / send-to-Larry / answered. SEE: cards with ≥44px buttons, no raw
mc-action/mc-proposal fenced text leaked.
- DO: Tap "Create ticket" / "Run now". EXPECT: action fires inline; confirmed in thread; no page navigation needed.
Segment 5 — Workbench (chat-first too)
- DO: Open a worker-in-progress ticket. EXPECT: the workbench looks like the chat shell — same thread look, live activity in the same readable bubble style. SEE: glass-box tool calls, file/command chips embedded in the chat, not in a separate side panel. NOT a terminal-first console.
- DO: Toggle to "raw console" view. EXPECT: falls back to the detail console — but only as a fallback; the default is chat.
Segment 6 — Board / tickets (secondary, not primary)
- DO: Open
/board. EXPECT: board accessible via bottom nav but clearly secondary to chat. SEE: clean kanban; tap a card → goes to the chat for that ticket (not a form).
- DO: On mobile, scroll the board. EXPECT: smooth; no horizontal overflow; filter tabs reachable, no FAB clipping.
Segment 7 — Mobile touch controls (the real bug zone)
- DO: Scroll every page: home/chat, threads, board, workbench, tasks, reports. EXPECT: smooth touch scroll everywhere. (Elmar's report: scroll fails on some pages.)
- DO: Every interactive control — buttons, mode pills, action cards, ticket cards, thread items, nav tabs — tap to confirm ≥44×44 and not hidden behind other elements.
- DO: Test pinch/zoom — should be controlled, not break layout.
- DO: Tap the FAB / cloud icon. EXPECT: clear purpose, doesn't overlap critical actions (send button, composer, ticket actions).
- DO: Open keyboard, type in composer. EXPECT: composer scrolls into view, send button stays visible, layout doesn't break.
Segment 8 — Look & feel benchmark
- DO: Side-by-side mental compare with Claude Code / Aion UI / Loveable / Replit AI Agent chat. EXPECT: MC feels at least equivalent — clean typography, sensible chat-bubble spacing, no busy chrome, consistent dark/light. SEE: the AI-agent vibe (not the "ops dashboard" vibe).
Segment 9 — Simplification audit
- DO: List every nav item, panel, button. EXPECT: flag anything superseded by chat-first that should be removed — old composer modes (Quick Ticket / "Luci do it now" — if the orchestrator decides intent, are these still needed?), redundant pages, duplicate widgets.
- DO: List every visible state-string / mode toggle. EXPECT: flag jargon or dev-leak that an end-user shouldn't see.
Segment 10 — Regression
- DO: Hard-reload
/ticket/<id>. EXPECT: loads (no SW offline page; MC-3749 holds).
- DO: Existing flows untouched:
/board, /tasks, /reports, /workbench all still functional.
Severity bar
- Blocker → core flow broken (send, scroll, can't see buttons).
- Major → flow works but UX is bad (hidden buttons, overlap, mobile clipping).
- Minor → polish.
Verdict gate: APPROVED only on REAL user interaction; never DOM/code-only.