UI Interview - V2 Card Mosaic

Alignment Status: review · Tier: prototype · Category: product-design · Skill: ui-interview · Date: 2026-06-23

Summary. This is a recovered review alignment page for the V2 Card Mosaic UI branch under monitoring-start. Claude completed the two-round stage-zero interrogation and a scoped mockup, then failed with a server error while wiring the review-page controls. This page completes that interrupted run without writing canonical UI specs.

Review boundary. The reviewer can approve, reject, retry, or modify the V2 branch. Until final compiled response YAML is provided with approval_status: ready-for-agent-review, canonical files such as design/ui-v2-card-mosaic.md remain unwritten.

Interview Stage

Invocation: /ui-interview v2-card-mosaic. Mode: full UI branch review, not requirements-only. Interview provenance: live-ui-interview.

The stage-zero interrogation loop completed in two HTML rounds. Round 1 confirmed the UI assumptions manifest and accepted the recommended defaults; Round 2 passed the coverage checkpoint and added the user aesthetic directive: polish, minimalism, as little text as possible, icon buttons where possible with text tooltips.

Reviewer action: inspect the interactive mockup and the rendered packet, then compile either partial feedback YAML or final gate-answer YAML from the bottom of this page.

Source Evidence

SourceDecision-relevant roleConfidence
design/ux-variations-monitoring-start/v2-card-mosaic.mdSelected UX variation thesis, screens in scope, axes, layout and component expectations.High
design/flow-tree-personal-workstation.yamlDesign-tree manifest identifying v2-card-mosaic as recommended next UI interview under monitoring-start.High
design/user-flow-personal-workstation.mdUpstream screen inventory and happy path for S3 board, S4 launch, and folded S5/S6 detail.High
design/_working/ux-variations-monitoring-start-brief.mdConfirmed reframe: two-layer surface, folded tool-adaptive detail, all-web PWA.High
interrogation/ui-interview-r1-v2-card-mosaic.html and research/_working/interrogation-ui-interview-r1.yamlRound 1 confirmed assumptions and accepted open-item recommendations, with the scope correction to build just V2.High
interrogation/ui-interview-r2-v2-card-mosaic.html and research/_working/interrogation-ui-interview-r2.yamlRound 2 coverage checkpoint passed and supplied the minimal-polish directive.High
research/positioning.md, research/journey-map.md, research/icp.md, research/concept-brief-gblock-party-personal.mdProduct and persona context for the Agent Conductor personal workstation.Medium-high

Confirmed Assumptions & Resolved Open Items

Every stage-zero assumption in Round 1 was confirmed except E2, which was corrected to build just this variation. The accepted open-item recommendations fixed card dimensions, stdout preview line count, side rail collapse, filter affordance, and mobile terminal ergonomics. Round 2 confirmed that coverage was complete.

Interactive V2 Mockup

Branch-contract preview. Fixture data and simulated terminal output are prototype-only; the layout, controls, detail containment, and approval behavior reflect the V2 branch contract. Use the demo strip to switch board/detail/API views, empty state, connection banner, and responsive widths.

Preview — interactive mockup
gblockparty
auth-refactor ·Claude Code ·api-gateway Running ·04:12
Heavy typing? Open on desktop →
claude-code · auth-refactor
Approved — agent resumed

Working Packet Review

The current V2 working packet is rendered below as structured HTML. It remains a review-state packet, but its UI behavior language is the branch-level contract unless explicitly marked as fixture-only; production UI spec files are written only after final compiled alignment YAML approval.

Preliminary UI Interview — V2 Card Mosaic (working packet)

Review-state working packet. Branch-level UI behavior contract for v2-card-mosaic; fixture data and simulated terminal output remain prototype-only. Drives alignment/ui-interview-v2-card-mosaic.html (review state). Production UI files (design/ui-v2-card-mosaic.md, design/ui-v2-card-mosaic-interview.md) are written only after final compiled YAML approval. - Skill / invocation: /ui-interview v2-card-mosaic (full UI mode, branch-review). - Interview provenance: live-ui-interview — stage-0 interrogation completed with the user over two rounds (assumptions manifest R1, coverage checkpoint R2); confidence gate passed. - Mode: full UI mode (NOT requirements-only). Branch-review of one UX variation. - Topic / branch: v2-card-mosaic under parent flow branch monitoring-start ("Board Monitoring & One-Click Start"), topic personal-workstation. - Mockup artifact: research/_working/ui-interview-v2-card-mosaic-mockup.html (embedded in the alignment page).

0. Source Evidence

#SourceWhat it providesConfidence
E1design/ux-variations-monitoring-start/v2-card-mosaic.mdThe selected UX variation spec — thesis, screen scope, axes, per-screen layout, components, risks, prototype scope. Primary input.High (canonical, approved-as-proposed)
E2design/flow-tree-personal-workstation.yamlFlow-tree manifest: branch monitoring-start is in-progress; recommended_next_ui_interview: v2-card-mosaic; sibling variations v1/v3/v4/v5; open questions.High
E3design/user-flow-personal-workstation.mdUpstream flow map: S3 board / S4 modal / S5/S6 detail; happy path steps 3–6 + Path C; failure & recovery table; server-canonical state.High
E4design/_working/ux-variations-monitoring-start-brief.mdThe confirmed reframe (folded tool-adaptive detail; two-layer surface; all-web PWA) load-bearing across all variations.High
E5interrogation/ui-interview-r1-v2-card-mosaic.html + research/_working/interrogation-ui-interview-r1.yamlRound-1 assumptions manifest (A1–E2) + open items (O1–O5), all confirmed / recommendation-accepted; E2 corrected to "build just this variation."High (user-confirmed)
E6interrogation/ui-interview-r2-v2-card-mosaic.html + research/_working/interrogation-ui-interview-r2.yamlRound-2 coverage checkpoint: gate pass; scope re-confirmed (build just V2); coverage confirm-complete; aesthetic directive OF1.High (user-confirmed)
E7research/positioning.md, research/journey-map.md, research/icp.md, research/concept-brief-gblock-party-personal.md, research/competitive-analysis.mdProduct/persona/competitive context (Agent Conductor persona; Vercel/Railway/Render/CI dashboard lineage as reference feel).Medium-High

Stage-1 research note: No design/*/design-inspirations-.md artifact exists. Reference feel is supplied by the V2 spec itself (Vercel / Railway / Render / CI dashboard lineage) and the competitive analysis; live web inspiration research was not required for this baseline/control branch. Research folded into design.


1. Confirmed UI Assumptions Manifest (stage 0, round 1 — all confirmed)

IDSourceAssumptionDecision
A1artifactV2 is the baseline / control of the 5-variation set; tracks the flow-map most literally; "boringly competent" is the goal; does not innovate on the four variant axes.Confirm
A2specScreens in scope = exactly three: S3 Agent Board, S4 Start Agent (modal), folded S5/S6 Agent Detail. Flow = Happy Path steps 3–6 + Path C "Parallel Sprint." S9/S8/S10 linked but not designed in depth.Confirm
A3artifactThe four axes are fixed at the flow-map default and NOT reopened here: responsive card grid · full-page detail route · modal launch · co-equal responsive. Axis changes route back to /ux-variations.Confirm
A4artifact + briefDetail is folded into one tool-adaptive route: terminal-primary (xterm.js/WebSocket) for CLI tools, structured-primary for API-native. No Mode A/B toggle. Mode C / IDE out of scope.Confirm
A5brief + specSingle-user personal workstation: sharing, collaboration, permissions, multi-tenant are N/A; no such UI is designed. Only "handoff" is the same user across their own devices (server-canonical state).Confirm
B1artifactRoute map: / board (hub) · /agents/:id folded detail. S4 modal + S8 recap are overlays/interstitials, not routes. Deep links resolve to a route, fall back to board. Browser back first-class.Confirm
B2artifactWhole card is the click target → full-page detail; board unmounts (V2's defining choice + main risk). Back to Board re-reads server-canonical state. Launch (modal) never navigates away.Confirm
B3artifactPersistent header: app name · approval-queue badge · Start Agent · QR/"Open on Mobile" · settings gear. Default sort error > waiting > running > idle; waiting re-sorts toward top.Confirm
C1artifactAgent Card stacks: (1) name + status badge; (2) tool · repo (· branch); (3) elapsed · tokens; (4) live stdout preview (mono, auto-scroll, fade-truncate) — the signature region; (5) conditional error/completion strip.Confirm
C2artifactDensity comfortable, not dense — large, well-spaced cards. Grid 3 col >1024 · 2 col ≤1024 · 1 col ≤640; columns capped at very large widths. Accepted tradeoff: ~12 agents scroll.Confirm
C3artifactColor reserved almost entirely for status (green/amber/red/grey); chrome grayscale; accent #4dabf7 only for primary CTA + links. Dark house palette; terminal bg darker than card.Confirm
D1artifactState coverage shown: card states (starting/running/waiting-pulse/error/idle/completed + hover/focus); board states (empty, connection-lost banner); modal states (loading skeleton, required-field markers, submit-time error highlights, transient launching spinner, inline error/tool-unavailable).Confirm
D2artifact + inferredAccessibility baseline-by-default: logical keyboard order & focus mgmt; ≥44px mobile tap targets; colorblind-safe status (badge carries shape/label, not color alone); reduced-motion respected.Confirm
E1artifactPrototype scope = S3 board (6–8 mixed-state cards + empty + connection-lost) · S4 modal end-to-end (incl. tool-unavailable) · folded detail both renderings (CLI xterm + API structured) · 3-breakpoint responsive proof · approval round-trip.Confirm
E2prompt + gateBuild order corrected: UI-interview FIRST (this mockup + approve/reject/retry), and per the user's correction build just this variation (V2) in this run — do not fan out to all five here. Downstream /prototype, /uat, /consolidate stay gated behind V2 approval.Correct → build just V2

2. Resolved Open Items (stage 0, round 1 — recommendations accepted)

IDQuestionResolution (accepted)
O1Card dimensions & stdout-preview line count~220–280px tall desktop; 4-line stdout preview (range 3–5); monospace ~12px; fade-truncated at bottom.
O2Detail side-rail width & collapse~24% width desktop (range 20–30%); collapsible on tablet; collapses below the primary region at ≤640px (terminal/stream full-width on phone).
O3Light filtering affordanceA single optional chip row (status filter + repo filter) only. Heavy/faceted filtering is V1's territory; V2 leans on big legible cards + sort.
O4Mobile terminal ergonomicsPhone CLI terminal is read-mostly with hint "Heavy typing? Open on desktop →"; structured (API-native) detail stays fully usable on phone.
O5Free floor"All looks good, this v2 mockup will calibrate how I deal with all the other variations." (Reference feel = Vercel/Railway/Render/CI dashboards per spec; accepted.)

2b. Round-2 Aesthetic Directive (coverage checkpoint, OF1)

OF1 (user, verbatim): "Polish, minimalism, as little text as possible, icon buttons where possible with text tooltips."

How applied: icon buttons with title/aria-label tooltips replace text buttons wherever the action is unambiguous (header QR/settings, detail stop/restart/back, card retry, approval verbs); chrome copy is minimized so status badges + live stdout carry the signal; generous whitespace; calm, restrained motion; premium, non-generic finish. The one always-labeled action is the primary Start Agent CTA. This directive refines — does not override — the V2 spec's "comfortable, legible, boringly competent" tone: minimalism here means less chrome text, not less information per card.


3. Parent Flow, Branch Role & Coordination

happy-path, C; screens S3, S4, S5, S6).

position on all four axes (board=card grid · connection=full-page route · launch=modal · posture=co-equal responsive).

remediation), approval (Path B — push-triggered approval; V2 surfaces the global queue badge/preview + focused-agent inline approval), diff-review (S9 — "Review diffs →" handoff), device-handoff (QR / async recap S8), settings (S10 — credential/tool fixes link out from card/modal).

v4-command-first, v5-glanceable-stream. V2 deliberately introduces the fewest net-new concepts so the others' single-axis deviations have a measuring stick.

stream) and live stdout previews are shared across all five variations.


4. Page Inventory & Route Map

ScreenRoute / surfacePurposeSuccess condition
S3 Agent Board/ (route, home/hub)Glance the fleet; answer "what is each agent doing?" without drill-in; launch new work.User reads fleet status + reaches what needs them (sorted top) at a glance.
S4 Start Agentmodal overlay over current viewLaunch a new agent (repo + tool + prompt).A new starting→running card appears; launch never costs the user their place.
S5/S6 Folded Detail/agents/:id (route)Deep work on one agent: live terminal/stream + inline approval + prompt injection.User can monitor, approve, and steer one agent, then return losslessly.
S8 Async Recapinterstitial over board (stub-linked)Long-absence catch-up timeline.Out of deep scope; linked.
S9 Diff Reviewroute (stub-linked)Review completed work diffs / ship.Out of deep scope; "Review diffs →" handoff.
S10 Settings/settings (stub-linked)Tool/key/credential management.Out of deep scope; linked from card/modal failure paths.

Overlays/interstitials (S4 modal, S8 recap) stack over whatever route is active; they are not routes. Deep links resolve directly to /agents/:id, falling back to /.


5. Global Shell Rules

(icon buttons + tooltips per OF1): approval-queue badge (count), QR / "Open on Mobile", settings gear, and the primary Start Agent CTA (accent; the one always-labeled action).

backoff retry; cards freeze at last-known state; Start/Stop disabled until reconnect.

identity · stop/restart icon controls.


6. Page-by-Page Anatomy

S3 — Agent Board (mosaic)

very large widths so cards stay readable.

prominent Start Agent CTA + muted quick-start link + muted "Open settings." Approval/diff hidden.

Agent Card (canonical component; vary by state)

Regions top→bottom (~220–280px tall desktop):

  1. Top row: agent name (left) + status badge (right; colorblind-safe = shape/icon + short label, not color alone).
  2. Meta row: tool · repo (· branch) — small/muted.
  3. Metrics row: elapsed · token usage — small/muted, right-aligned.
  4. Live stdout preview: ~4 lines (range 3–5), monospace ~12px, auto-scrolling tail, fade-truncated at bottom. V2's signature; best-effort raw tail, not a structured promise.
  5. Conditional strip: one-line error summary (error) or "completed — Review diffs →" (completed).

Waiting cards pulse gently (reduced-motion-respecting). Sort: error > waiting > running > idle.

S4 — Start Agent (modal overlay)

loading) · Tool selector (dropdown) · Prompt (textarea, tallest, ~4–6 rows) · "More options" toggle → optional Branch field.

(secondary, left). Inline error region above footer.

disabled briefly; success closes the modal and shows a starting card; a permanent spinner is a bug) · inline launch error + Retry · tool-unavailable warning + "Install tool" link (→ S10), Start disabled.

S5/S6 — Folded Agent Detail (/agents/:id)

(center) · stop / restart icon controls (right; destructive → confirm).

live interactive stream. Long terminal history scrolls inside the terminal body only; the rendered terminal shell, full detail route, top bar, side rail, inline approval, and prompt controls stay inside the detail viewport. Switching between reviewed approvals resets detail stream and scroll state so stale terminal output cannot push the next detail view.

in the same footprint. Structured progress scrolls internally and must not push inline approval or prompt controls out of reach.

Collapsible on tablet; collapses below the primary region at ≤640px.

over terminal for CLI; inline in stream for structured). Approval actions stay reachable after Review shown switches between queued approvals.

structured detail fully usable on phone.


7. Component Inventory

Agent Card · Status Badge (error/waiting/running/idle/starting/completed; drives color, sort, pulse; colorblind-safe) · Live stdout Preview · Start Agent button (header) + Start Agent modal (repo/tool/ prompt/branch/Start/Cancel) · Approval-queue badge (header) + global queue preview/actions (rail) + focused-agent inline approval card (detail) · xterm.js terminal (CLI) / parsed activity stream (API) · prompt-injection textarea · stop/restart/retry controls · connection/recovery banner + reconnecting overlay · Back to Board control · QR / Open-on-Mobile + PWA install prompt · Async Recap interstitial (stub) · optional status/repo filter chips.

ControlBehavior
Start Agent (header / empty)Opens S4 modal over current view; never navigates. Disabled only on connection loss.
Start Agent (modal footer)Fires launch only after repo+tool+prompt validate; incomplete submit highlights missing required fields; spinner + fields disable briefly during launch; success → modal closes, starting card drops in, then transitions to running; failure → inline error + Retry.
Cancel (modal)Closes modal, no side effects.
Agent Card (whole)Navigates to /agents/:id. Hover lift/accent.
"Review diffs →" (completion strip)Routes to S9 (linked).
Retry (error strip / detail)Re-launches with same prompt; card → starting.
Back to Board (detail)Navigates to /; re-reads live state.
Approve / Reject / Modify / Defer / Approve shownInline actions target only the focused detail agent; rail approval targets only the previewed global queue item. Reject is destructive → confirm.
Approval-queue badge / Review shownReviews the shown global queue item with fresh detail timers and scroll state; disabled when the approval queue is empty.
Triage all approvalsStub route to the future approval branch S7 Approval Triage / Approval Inbox.
Settings gear / QR / Install-tool link→ S10 / QR overlay / S10 (remembering modal selection).
Browser backFirst-class; back from detail → board.

Destructive/irreversible actions (stop, reject) get a confirmation affordance; launching and approving do not (happy path, reversible enough).


9. Layout, Density, Hierarchy & Responsive

touch usability, costs fleet density). Card ~220–280px tall; in-card controls ≥44px on mobile.

(tertiary, muted). Color reserved for status; rest grayscale.

global alarm.

--text:#e0e0e0; --muted:#8b8fa3`; status green/amber/red/grey on top; terminal bg darker than card.

/ full-width), modal = full-screen sheet, detail rail collapses below, CLI terminal history scrolls inside the terminal body and remains read-mostly. Tablet ≤1024 = 2-col, full card richness, modal ~480–520px, rail visible ~30% (collapsible). Desktop >1024 = 3-col generous gutters, modal ~520–560px, rail persistent ~24%, terminal ~75–80%. Columns capped at very large widths. No breakpoint is "the real one" — co-equal posture.

10. Visual Tone

Familiar, trustworthy, boringly competent — a polished deploy/CI dashboard (Vercel/Railway/Render lineage) for instant fluency. Dark palette; calm grayscale chrome with status color as the only loud element; soft card elevation; restrained motion (fade-in on launch, gentle waiting pulse, smooth stdout scroll — no gratuitous animation). Terminal reads as a real console. Refined per OF1 toward icon-led, minimal-text chrome.

11. Interaction States (coverage)

Card: starting · running (streaming) · waiting (pulse, sorted top) · error (red badge + summary + re-sort to top) · idle · completed (Review diffs →) · hover · focus. Board: default · empty · connection-lost banner. Modal: loading skeleton · required-field markers · submit-time validation errors · transient launching spinner · success close/card insertion · inline error · tool-unavailable. Detail: streaming · waiting/inline-approval · reconnecting overlay · stop/restart confirm · mobile read-mostly.

12. Accessibility Requirements (baseline, not optional)

Logical keyboard order + focus management; visible focus rings; ≥44px mobile tap targets; colorblind- safe status (badge = shape/icon + label, not color alone); prefers-reduced-motion disables pulse + auto-scroll; aria-labels + title tooltips on every icon button; correct button/link semantics; the whole-card click target also keyboard-activatable.

13. Prototype-First Section

card become running with live stdout → click a waiting card → approve in detail → Back to Board.

are built later by /prototype after V2's UI direction is approved here.

prompts — all fixture/in-memory for the mockup.

GitHub OAuth, model-key auth, server-canonical persistence, QR deep-link auth.

over tunnel; Multica-style stdout-parsing generality; iOS Safari Web Push reliability; agent resource isolation at 5–12 concurrent; BYO-client connectivity.

14. Risks & Failure Modes

sort-to-top, ceiling is real (this is why V1's dense table exists).

server state + deep links; round-trip cost inherent to V2.

15. Non-Goals

Multi-user sharing / collaboration / permissions (single-user); Mode A/B user toggle (folding is tool-driven); Mode C / IDE (code-server); heavy/faceted filtering (V1's job); in-depth S8/S9/S10 design (linked); reopening the four fixed axes (route to /ux-variations).

16. Implementation Notes

Lowest build complexity of the five (baseline): standard responsive CSS-grid of card components fed by one WebSocket state stream; plain routing (/, /agents/:id) + modal + interstitial; reuses shared stack + design system. Owns only its grid layout, card component, and modal. The two non-trivial pieces (folded tool-adaptive detail; live stdout previews) are shared across all five variations, not net-new relative to the set.

17. Open Questions Carried Forward (not blockers)

Terminal latency over tunnel (Open Q #1); stdout-parsing generality (Open Q #2); iOS Safari push reliability (Open Q #3); Mode C ROI (Open Q #4); resource isolation at 5–12 (Open Q #5); BYO connectivity (Open Q #6). These are evaluation criteria for /uat, not resolved here.


18. Proposed Branch Decision (PENDING — set by user via alignment YAML)

approve (UI direction is a valid control branch; advance) · reject (abandon) · retry (revise the mockup and ask again) · modify (reopen an upstream node via targets[]). No decision is recorded until final compiled alignment YAML.

19. Proposed Canonical File Destinations (on approval)

monitoring-start.ux_variations[v2-card-mosaic] with status + decision_id; append decisions[].

review → confirmed.


20. Interview Log

Provenance: live-ui-interview. Stage-0 interrogation loop, 2 rounds, confidence gate passed.

Round 1 — Assumptions Manifest (A1–E2): presented as the UI Assumptions Manifest; user confirmed A1, A2, A3, A4, A5, B1, B2, B3, C1, C2, C3, D1, D2, E1; corrected E2 → "build just this variation" (V2 only this run, not fan-out). 20/20 items resolved.

Round 1 — Open items (O1–O5): O1 accept (~220–280px, 4-line preview), O2 accept (~24% rail, collapse below ≤640), O3 accept (single chip row), O4 accept (read-mostly mobile terminal + "open on desktop" hint), O5 free: "All looks good, this v2 mockup will calibrate how I deal with all the other variations."

Round 2 — Coverage checkpoint: gate pass; G-scope confirm (build just V2); G-coverage confirm-complete; OF1 (free): "Polish, minimalism, as little text as possible, icon buttons where possible with text tooltips." → applied as the chrome/finish directive (§2b).

Options & recommendations presented: O1–O4 each offered a recommendation with rationale/tradeoff (accepted as-is). Axes A3 explicitly flagged as out-of-scope-to-reopen (→ /ux-variations).

Notable changes from the V2 spec draft: (1) chrome shifts toward icon buttons + tooltips and minimal text per OF1 — an explicit refinement of the spec's "comfortable/legible" tone (less chrome copy, same information density per card). (2) Build scope narrowed to V2-only this run (E2 correction); downstream fan-out deferred. No structural divergence from the V2 spec otherwise.

Mockup feedback / retry notes: (to be populated from alignment-page review YAML).

Final branch decision: (pending — alignment YAML).

Supplemental source view: recovered Markdown packet
# Preliminary UI Interview — V2 Card Mosaic (working packet)

> **Review-state working packet.** Branch-level UI behavior contract for `v2-card-mosaic`;
> fixture data and simulated terminal output remain prototype-only. Drives
> `alignment/ui-interview-v2-card-mosaic.html` (review state). Production UI files
> (`design/ui-v2-card-mosaic.md`, `design/ui-v2-card-mosaic-interview.md`) are written only
> after final compiled YAML approval.
>
> - **Skill / invocation:** `/ui-interview v2-card-mosaic` (full UI mode, branch-review).
> - **Interview provenance:** `live-ui-interview` — stage-0 interrogation completed with the user
>   over two rounds (assumptions manifest R1, coverage checkpoint R2); confidence gate passed.
> - **Mode:** full UI mode (NOT requirements-only). Branch-review of one UX variation.
> - **Topic / branch:** `v2-card-mosaic` under parent flow branch `monitoring-start`
>   ("Board Monitoring & One-Click Start"), topic `personal-workstation`.
> - **Mockup artifact:** `research/_working/ui-interview-v2-card-mosaic-mockup.html` (embedded
>   in the alignment page).

---

## 0. Source Evidence

| # | Source | What it provides | Confidence |
|---|--------|------------------|------------|
| E1 | `design/ux-variations-monitoring-start/v2-card-mosaic.md` | The selected UX variation spec — thesis, screen scope, axes, per-screen layout, components, risks, prototype scope. **Primary input.** | High (canonical, approved-as-proposed) |
| E2 | `design/flow-tree-personal-workstation.yaml` | Flow-tree manifest: branch `monitoring-start` is `in-progress`; `recommended_next_ui_interview: v2-card-mosaic`; sibling variations v1/v3/v4/v5; open questions. | High |
| E3 | `design/user-flow-personal-workstation.md` | Upstream flow map: S3 board / S4 modal / S5/S6 detail; happy path steps 3–6 + Path C; failure & recovery table; server-canonical state. | High |
| E4 | `design/_working/ux-variations-monitoring-start-brief.md` | The confirmed reframe (folded tool-adaptive detail; two-layer surface; all-web PWA) load-bearing across all variations. | High |
| E5 | `interrogation/ui-interview-r1-v2-card-mosaic.html` + `research/_working/interrogation-ui-interview-r1.yaml` | Round-1 assumptions manifest (A1–E2) + open items (O1–O5), all confirmed / recommendation-accepted; E2 corrected to "build just this variation." | High (user-confirmed) |
| E6 | `interrogation/ui-interview-r2-v2-card-mosaic.html` + `research/_working/interrogation-ui-interview-r2.yaml` | Round-2 coverage checkpoint: gate `pass`; scope re-confirmed (build just V2); coverage `confirm-complete`; aesthetic directive OF1. | High (user-confirmed) |
| E7 | `research/positioning.md`, `research/journey-map.md`, `research/icp.md`, `research/concept-brief-gblock-party-personal.md`, `research/competitive-analysis.md` | Product/persona/competitive context (Agent Conductor persona; Vercel/Railway/Render/CI dashboard lineage as reference feel). | Medium-High |

**Stage-1 research note:** No `design/**/design-inspirations-*.md` artifact exists. Reference feel is
supplied by the V2 spec itself (Vercel / Railway / Render / CI dashboard lineage) and the competitive
analysis; live web inspiration research was not required for this baseline/control branch. Research
folded into design.

---

## 1. Confirmed UI Assumptions Manifest (stage 0, round 1 — all confirmed)

| ID | Source | Assumption | Decision |
|----|--------|-----------|----------|
| A1 | artifact | V2 is the **baseline / control** of the 5-variation set; tracks the flow-map most literally; "boringly competent" is the goal; does not innovate on the four variant axes. | **Confirm** |
| A2 | spec | Screens in scope = exactly three: **S3 Agent Board**, **S4 Start Agent** (modal), **folded S5/S6 Agent Detail**. Flow = Happy Path steps 3–6 + Path C "Parallel Sprint." S9/S8/S10 linked but not designed in depth. | **Confirm** |
| A3 | artifact | The four axes are **fixed at the flow-map default** and NOT reopened here: responsive card grid · full-page detail route · modal launch · co-equal responsive. Axis changes route back to `/ux-variations`. | **Confirm** |
| A4 | artifact + brief | Detail is **folded into one tool-adaptive route**: terminal-primary (xterm.js/WebSocket) for CLI tools, structured-primary for API-native. **No Mode A/B toggle.** Mode C / IDE out of scope. | **Confirm** |
| A5 | brief + spec | **Single-user personal workstation**: sharing, collaboration, permissions, multi-tenant are **N/A**; no such UI is designed. Only "handoff" is the same user across their own devices (server-canonical state). | **Confirm** |
| B1 | artifact | Route map: `/` board (hub) · `/agents/:id` folded detail. S4 modal + S8 recap are overlays/interstitials, not routes. Deep links resolve to a route, fall back to board. Browser back first-class. | **Confirm** |
| B2 | artifact | Whole card is the click target → full-page detail; **board unmounts** (V2's defining choice + main risk). Back to Board re-reads server-canonical state. Launch (modal) never navigates away. | **Confirm** |
| B3 | artifact | Persistent header: app name · approval-queue badge · Start Agent · QR/"Open on Mobile" · settings gear. Default sort **error > waiting > running > idle**; waiting re-sorts toward top. | **Confirm** |
| C1 | artifact | Agent Card stacks: (1) name + status badge; (2) tool · repo (· branch); (3) elapsed · tokens; (4) live stdout preview (mono, auto-scroll, fade-truncate) — the signature region; (5) conditional error/completion strip. | **Confirm** |
| C2 | artifact | Density **comfortable, not dense** — large, well-spaced cards. Grid 3 col >1024 · 2 col ≤1024 · 1 col ≤640; columns capped at very large widths. Accepted tradeoff: ~12 agents scroll. | **Confirm** |
| C3 | artifact | Color reserved almost entirely for status (green/amber/red/grey); chrome grayscale; accent `#4dabf7` only for primary CTA + links. Dark house palette; terminal bg darker than card. | **Confirm** |
| D1 | artifact | State coverage shown: card states (starting/running/waiting-pulse/error/idle/completed + hover/focus); board states (empty, connection-lost banner); modal states (loading skeleton, required-field markers, submit-time error highlights, transient launching spinner, inline error/tool-unavailable). | **Confirm** |
| D2 | artifact + inferred | Accessibility **baseline-by-default**: logical keyboard order & focus mgmt; ≥44px mobile tap targets; colorblind-safe status (badge carries shape/label, not color alone); reduced-motion respected. | **Confirm** |
| E1 | artifact | Prototype scope = S3 board (6–8 mixed-state cards + empty + connection-lost) · S4 modal end-to-end (incl. tool-unavailable) · folded detail both renderings (CLI xterm + API structured) · 3-breakpoint responsive proof · approval round-trip. | **Confirm** |
| E2 | prompt + gate | **Build order corrected:** UI-interview FIRST (this mockup + approve/reject/retry), and per the user's correction **build just this variation (V2)** in this run — do not fan out to all five here. Downstream `/prototype`, `/uat`, `/consolidate` stay gated behind V2 approval. | **Correct → build just V2** |

---

## 2. Resolved Open Items (stage 0, round 1 — recommendations accepted)

| ID | Question | Resolution (accepted) |
|----|----------|----------------------|
| O1 | Card dimensions & stdout-preview line count | **~220–280px tall desktop; 4-line stdout preview** (range 3–5); monospace ~12px; fade-truncated at bottom. |
| O2 | Detail side-rail width & collapse | **~24% width desktop** (range 20–30%); collapsible on tablet; **collapses below** the primary region at ≤640px (terminal/stream full-width on phone). |
| O3 | Light filtering affordance | **A single optional chip row** (status filter + repo filter) only. Heavy/faceted filtering is V1's territory; V2 leans on big legible cards + sort. |
| O4 | Mobile terminal ergonomics | Phone CLI terminal is **read-mostly** with hint **"Heavy typing? Open on desktop →"**; structured (API-native) detail stays fully usable on phone. |
| O5 | Free floor | "All looks good, this v2 mockup will calibrate how I deal with all the other variations." (Reference feel = Vercel/Railway/Render/CI dashboards per spec; accepted.) |

## 2b. Round-2 Aesthetic Directive (coverage checkpoint, OF1)

> **OF1 (user, verbatim):** "Polish, minimalism, as little text as possible, icon buttons where
> possible with text tooltips."

**How applied:** icon buttons with `title`/`aria-label` tooltips replace text buttons wherever the
action is unambiguous (header QR/settings, detail stop/restart/back, card retry, approval verbs);
chrome copy is minimized so status badges + live stdout carry the signal; generous whitespace; calm,
restrained motion; premium, non-generic finish. The one always-labeled action is the primary
**Start Agent** CTA. This directive refines — does not override — the V2 spec's "comfortable, legible,
boringly competent" tone: minimalism here means *less chrome text*, not less information per card.

---

## 3. Parent Flow, Branch Role & Coordination

- **Parent user-flow branch:** `monitoring-start` — "Board Monitoring & One-Click Start" (flow paths:
  happy-path, C; screens S3, S4, S5, S6).
- **Selected UX variation:** `v2-card-mosaic` — the **baseline/control**. Takes the flow-map-native
  position on all four axes (board=card grid · connection=full-page route · launch=modal ·
  posture=co-equal responsive).
- **Touched sibling flows (linked, not designed here):** `recovery` (Path D — error card → detail
  remediation), `approval` (Path B — push-triggered approval; V2 surfaces the global queue
  badge/preview + focused-agent inline approval), `diff-review` (S9 — "Review diffs →" handoff), `device-handoff` (QR / async recap S8),
  `settings` (S10 — credential/tool fixes link out from card/modal).
- **Sibling UX variations this control is measured against:** v1-operator-console, v3-kanban-pipeline,
  v4-command-first, v5-glanceable-stream. V2 deliberately introduces the **fewest** net-new concepts so
  the others' single-axis deviations have a measuring stick.
- **Shared (not net-new) cost:** the folded tool-adaptive detail (xterm.js/WebSocket + structured
  stream) and live stdout previews are shared across all five variations.

---

## 4. Page Inventory & Route Map

| Screen | Route / surface | Purpose | Success condition |
|--------|-----------------|---------|-------------------|
| S3 Agent Board | `/` (route, home/hub) | Glance the fleet; answer "what is each agent doing?" without drill-in; launch new work. | User reads fleet status + reaches what needs them (sorted top) at a glance. |
| S4 Start Agent | modal overlay over current view | Launch a new agent (repo + tool + prompt). | A new starting→running card appears; launch never costs the user their place. |
| S5/S6 Folded Detail | `/agents/:id` (route) | Deep work on one agent: live terminal/stream + inline approval + prompt injection. | User can monitor, approve, and steer one agent, then return losslessly. |
| S8 Async Recap | interstitial over board (stub-linked) | Long-absence catch-up timeline. | Out of deep scope; linked. |
| S9 Diff Review | route (stub-linked) | Review completed work diffs / ship. | Out of deep scope; "Review diffs →" handoff. |
| S10 Settings | `/settings` (stub-linked) | Tool/key/credential management. | Out of deep scope; linked from card/modal failure paths. |

Overlays/interstitials (S4 modal, S8 recap) stack over whatever route is active; they are not routes.
Deep links resolve directly to `/agents/:id`, falling back to `/`.

---

## 5. Global Shell Rules

- **Persistent header (~56–64px, sticky, full width):** left = app name/logo (minimal). Right cluster
  (icon buttons + tooltips per OF1): approval-queue badge (count), QR / "Open on Mobile", settings
  gear, and the primary **Start Agent** CTA (accent; the one always-labeled action).
- **Connection banner (conditional, under header):** "Reconnecting to workspace…" with exponential
  backoff retry; cards freeze at last-known state; Start/Stop disabled until reconnect.
- **Optional chip row (O3):** single row — status filter chips + repo filter chip. Light only.
- **Detail top bar** replaces the board header on `/agents/:id`: Back to Board (chevron icon) · agent
  identity · stop/restart icon controls.

---

## 6. Page-by-Page Anatomy

### S3 — Agent Board (mosaic)
- Header (above) → conditional connection banner → conditional chip row → **mosaic** (fills rest).
- Grid: **3 col >1024px · 2 col ≤1024px · 1 col ≤640px**, generous gutters, columns capped (~3–4) at
  very large widths so cards stay readable.
- **Empty state** replaces the mosaic: centered minimal glyph + "Start your first agent" + single
  prominent Start Agent CTA + muted quick-start link + muted "Open settings." Approval/diff hidden.

#### Agent Card (canonical component; vary by state)
Regions top→bottom (~220–280px tall desktop):
1. **Top row:** agent name (left) + **status badge** (right; colorblind-safe = shape/icon + short label, not color alone).
2. **Meta row:** tool · repo (· branch) — small/muted.
3. **Metrics row:** elapsed · token usage — small/muted, right-aligned.
4. **Live stdout preview:** ~4 lines (range 3–5), monospace ~12px, auto-scrolling tail, fade-truncated at bottom. V2's signature; best-effort raw tail, not a structured promise.
5. **Conditional strip:** one-line error summary (error) **or** "completed — Review diffs →" (completed).
- Whole card = click target → `/agents/:id`. Hover = subtle lift/accent. Left-edge accent by status.
  Waiting cards pulse gently (reduced-motion-respecting). Sort: **error > waiting > running > idle**.

### S4 — Start Agent (modal overlay)
- Backdrop ~50% scrim, click-to-cancel. Centered ~520px desktop; near-full-width bottom sheet on mobile.
- Title "Start Agent." Fields: **Repo picker** (dropdown, GitHub-OAuth-populated, skeleton while
  loading) · **Tool selector** (dropdown) · **Prompt** (textarea, tallest, ~4–6 rows) · **"More
  options" toggle** → optional **Branch** field.
- Footer: **Start Agent** (primary accent, right; validates required repo/tool/prompt on submit and highlights missing fields) · **Cancel**
  (secondary, left). Inline error region above footer.
- States: loading skeleton · required-field markers · submit-time error highlights · transient launching spinner ("Starting agent…", fields
  disabled briefly; success closes the modal and shows a starting card; a permanent spinner is a bug) · inline launch error + Retry · **tool-unavailable** warning + "Install tool" link (→ S10),
  Start disabled.

### S5/S6 — Folded Agent Detail (`/agents/:id`)
- **Top bar:** Back to Board (chevron icon, left) · agent name · tool · repo · status badge · elapsed
  (center) · stop / restart icon controls (right; destructive → confirm).
- **Primary region (bounded to the active detail viewport):**
  - **CLI tools → terminal-primary:** large xterm.js terminal (~75–80% desktop), darker console bg,
    live interactive stream. Long terminal history scrolls inside the terminal body only; the
    rendered terminal shell, full detail route, top bar, side rail, inline approval, and prompt
    controls stay inside the detail viewport. Switching between reviewed approvals resets detail
    stream and scroll state so stale terminal output cannot push the next detail view.
  - **API-native → structured-primary:** parsed activity stream (steps, progress, file-change list)
    in the same footprint. Structured progress scrolls internally and must not push inline approval
    or prompt controls out of reach.
- **Side rail (right ~24% desktop — O2):** global approval-queue count, previewed next item,
  Approve shown / Review shown actions, Triage all approvals stub, and file-change summary.
  Collapsible on tablet; **collapses below** the primary region at ≤640px.
- **Inline approval card** (when waiting): Approve / Reject / Modify / Defer — in-flow (overlay/badge
  over terminal for CLI; inline in stream for structured). Approval actions stay reachable after
  `Review shown` switches between queued approvals.
- **Footer:** prompt-injection textarea + send (both renderings).
- **Mobile:** CLI terminal remains viewport-contained and **read-mostly** with "Heavy typing? Open on desktop →" hint (O4);
  structured detail fully usable on phone.

---

## 7. Component Inventory

Agent Card · Status Badge (error/waiting/running/idle/starting/completed; drives color, sort, pulse;
colorblind-safe) · Live stdout Preview · Start Agent button (header) + Start Agent modal (repo/tool/
prompt/branch/Start/Cancel) · Approval-queue badge (header) + global queue preview/actions (rail) +
focused-agent inline approval card (detail) · xterm.js terminal (CLI) / parsed activity stream (API) · prompt-injection
textarea · stop/restart/retry controls · connection/recovery banner + reconnecting overlay · Back to
Board control · QR / Open-on-Mobile + PWA install prompt · Async Recap interstitial (stub) · optional
status/repo filter chips.

## 8. Control & Link Inventory (behavior)

| Control | Behavior |
|---------|----------|
| Start Agent (header / empty) | Opens S4 modal over current view; never navigates. Disabled only on connection loss. |
| Start Agent (modal footer) | Fires launch only after repo+tool+prompt validate; incomplete submit highlights missing required fields; spinner + fields disable briefly during launch; success → modal closes, starting card drops in, then transitions to running; failure → inline error + Retry. |
| Cancel (modal) | Closes modal, no side effects. |
| Agent Card (whole) | Navigates to `/agents/:id`. Hover lift/accent. |
| "Review diffs →" (completion strip) | Routes to S9 (linked). |
| Retry (error strip / detail) | Re-launches with same prompt; card → starting. |
| Back to Board (detail) | Navigates to `/`; re-reads live state. |
| Approve / Reject / Modify / Defer / Approve shown | Inline actions target only the focused detail agent; rail approval targets only the previewed global queue item. Reject is destructive → confirm. |
| Approval-queue badge / Review shown | Reviews the shown global queue item with fresh detail timers and scroll state; disabled when the approval queue is empty. |
| Triage all approvals | Stub route to the future approval branch S7 Approval Triage / Approval Inbox. |
| Settings gear / QR / Install-tool link | → S10 / QR overlay / S10 (remembering modal selection). |
| Browser back | First-class; back from detail → board. |

Destructive/irreversible actions (stop, reject) get a confirmation affordance; launching and approving
do not (happy path, reversible enough).

---

## 9. Layout, Density, Hierarchy & Responsive

- **Density:** comfortable, not dense (deliberate tradeoff — buys per-agent glanceability + co-equal
  touch usability, costs fleet density). Card ~220–280px tall; in-card controls ≥44px on mobile.
- **Hierarchy (card):** status badge + name (primary) → stdout preview (secondary) → meta/metrics
  (tertiary, muted). Color reserved for status; rest grayscale.
- **Board hierarchy:** sort + pulse + red badges pull the eye; header approval badge is the single
  global alarm.
- **Detail hierarchy:** primary region (terminal/stream) dominates; chrome quiet.
- **Type scale:** name ~15–16px; meta/metrics ~12–13px muted; stdout ~12px mono.
- **Color:** dark house palette `--bg:#1a1a2e; --card:#16213e; --border:#2a2a4a; --accent:#4dabf7;
  --text:#e0e0e0; --muted:#8b8fa3`; status green/amber/red/grey on top; terminal bg darker than card.
- **Responsive (3 breakpoints):** Mobile ≤640 = 1-col stack, header condenses (Start may be sticky FAB
  / full-width), modal = full-screen sheet, detail rail collapses below, CLI terminal history scrolls
  inside the terminal body and remains read-mostly.
  Tablet ≤1024 = 2-col, full card richness, modal ~480–520px, rail visible ~30% (collapsible).
  Desktop >1024 = 3-col generous gutters, modal ~520–560px, rail persistent ~24%, terminal ~75–80%.
  Columns capped at very large widths. **No breakpoint is "the real one"** — co-equal posture.

## 10. Visual Tone

Familiar, trustworthy, **boringly competent** — a polished deploy/CI dashboard (Vercel/Railway/Render
lineage) for instant fluency. Dark palette; calm grayscale chrome with status color as the only loud
element; soft card elevation; restrained motion (fade-in on launch, gentle waiting pulse, smooth stdout
scroll — no gratuitous animation). Terminal reads as a real console. Refined per OF1 toward icon-led,
minimal-text chrome.

## 11. Interaction States (coverage)

Card: starting · running (streaming) · waiting (pulse, sorted top) · error (red badge + summary +
re-sort to top) · idle · completed (Review diffs →) · hover · focus. Board: default · empty ·
connection-lost banner. Modal: loading skeleton · required-field markers · submit-time validation errors · transient launching spinner · success close/card insertion · inline error ·
tool-unavailable. Detail: streaming · waiting/inline-approval · reconnecting overlay · stop/restart
confirm · mobile read-mostly.

## 12. Accessibility Requirements (baseline, not optional)

Logical keyboard order + focus management; visible focus rings; ≥44px mobile tap targets; colorblind-
safe status (badge = shape/icon + label, not color alone); `prefers-reduced-motion` disables pulse +
auto-scroll; aria-labels + `title` tooltips on every icon button; correct button/link semantics; the
whole-card click target also keyboard-activatable.

## 13. Prototype-First Section

- **First clickable journey:** land on S3 board → click **Start Agent** → fill modal → watch a starting
  card become running with live stdout → click a **waiting** card → approve in detail → Back to Board.
- **Experiment route map (this run):** **build just V2** (per E2 correction). The other four variations
  are built later by `/prototype` after V2's UI direction is approved here.
- **Fake / fixture data:** agent list, stdout streams, token/elapsed metrics, repo/tool lists, approval
  prompts — all fixture/in-memory for the mockup.
- **Visually mocked, not implemented:** WebSocket live state, simulated xterm.js-over-tunnel terminal output, Web Push,
  GitHub OAuth, model-key auth, server-canonical persistence, QR deep-link auth.
- **Deferred production infra (evidence needed before promotion):** xterm.js sub-100ms keystroke echo
  over tunnel; Multica-style stdout-parsing generality; iOS Safari Web Push reliability; agent resource
  isolation at 5–12 concurrent; BYO-client connectivity.

## 14. Risks & Failure Modes

- Cards waste space at scale (~12 agents scroll; no single-screen overview) — mitigated by column cap +
  sort-to-top, ceiling is real (this is why V1's dense table exists).
- **Route-switch drops board context** (detail unmounts the board) — mitigated by fast back + lossless
  server state + deep links; round-trip cost inherent to V2.
- stdout-preview reliability bounded by stdout-parsing open question — treat as best-effort tail.
- Terminal latency in folded CLI detail unproven — phone read-mostly + desktop handoff.
- "Generic" risk — being the familiar control, may underwhelm a power user (loses by being merely fine).
- Modal launch friction at high volume — mitigate with remembered last repo/tool defaults.
- No fleet-bottleneck spatiality (can't see a pileup as a column like V3) — inferred from badge + sort.

## 15. Non-Goals

Multi-user sharing / collaboration / permissions (single-user); Mode A/B user toggle (folding is
tool-driven); Mode C / IDE (code-server); heavy/faceted filtering (V1's job); in-depth S8/S9/S10 design
(linked); reopening the four fixed axes (route to `/ux-variations`).

## 16. Implementation Notes

Lowest build complexity of the five (baseline): standard responsive CSS-grid of card components fed by
one WebSocket state stream; plain routing (`/`, `/agents/:id`) + modal + interstitial; reuses shared
stack + design system. Owns only its grid layout, card component, and modal. The two non-trivial pieces
(folded tool-adaptive detail; live stdout previews) are shared across all five variations, not net-new
relative to the set.

## 17. Open Questions Carried Forward (not blockers)

Terminal latency over tunnel (Open Q #1); stdout-parsing generality (Open Q #2); iOS Safari push
reliability (Open Q #3); Mode C ROI (Open Q #4); resource isolation at 5–12 (Open Q #5); BYO
connectivity (Open Q #6). These are evaluation criteria for `/uat`, not resolved here.

---

## 18. Proposed Branch Decision (PENDING — set by user via alignment YAML)

`approve` (UI direction is a valid control branch; advance) · `reject` (abandon) · `retry` (revise the
mockup and ask again) · `modify` (reopen an upstream node via `targets[]`). **No decision is recorded
until final compiled alignment YAML.**

## 19. Proposed Canonical File Destinations (on approval)

- `design/ui-v2-card-mosaic.md` — UI branch packet (this content, finalized).
- `design/ui-v2-card-mosaic-interview.md` — interview log (§20 below).
- `design/flow-tree-personal-workstation.yaml` — add `ui_reviews[]` / `ui_experiments[]` under
  `monitoring-start.ux_variations[v2-card-mosaic]` with status + decision_id; append `decisions[]`.
- Archive working packet + mockup to `docs/history/archive/YYYY-MM-DD/HHMMSS/…`; convert alignment page
  `review → confirmed`.

---

## 20. Interview Log

**Provenance:** `live-ui-interview`. Stage-0 interrogation loop, 2 rounds, confidence gate passed.

**Round 1 — Assumptions Manifest (A1–E2):** presented as the UI Assumptions Manifest; user confirmed
A1, A2, A3, A4, A5, B1, B2, B3, C1, C2, C3, D1, D2, E1; **corrected E2** → "build just this variation"
(V2 only this run, not fan-out). 20/20 items resolved.

**Round 1 — Open items (O1–O5):** O1 accept (~220–280px, 4-line preview), O2 accept (~24% rail, collapse
below ≤640), O3 accept (single chip row), O4 accept (read-mostly mobile terminal + "open on desktop"
hint), O5 free: "All looks good, this v2 mockup will calibrate how I deal with all the other variations."

**Round 2 — Coverage checkpoint:** gate `pass`; G-scope `confirm` (build just V2); G-coverage
`confirm-complete`; **OF1 (free):** "Polish, minimalism, as little text as possible, icon buttons where
possible with text tooltips." → applied as the chrome/finish directive (§2b).

**Options & recommendations presented:** O1–O4 each offered a recommendation with rationale/tradeoff
(accepted as-is). Axes A3 explicitly flagged as out-of-scope-to-reopen (→ `/ux-variations`).

**Notable changes from the V2 spec draft:** (1) chrome shifts toward icon buttons + tooltips and minimal
text per OF1 — an explicit refinement of the spec's "comfortable/legible" tone (less chrome copy, same
information density per card). (2) Build scope narrowed to V2-only this run (E2 correction); downstream
fan-out deferred. No structural divergence from the V2 spec otherwise.

**Mockup feedback / retry notes:** (to be populated from alignment-page review YAML).

**Final branch decision:** (pending — alignment YAML).

Risks & Open Questions

Known non-blockers carried forward: terminal latency over tunnel, stdout-parsing generality, iOS Safari push reliability, Mode C ROI, resource isolation at 5-12 concurrent sessions, and BYO-client connectivity. These remain prototype/UAT evaluation criteria, not blockers to deciding whether the V2 UI direction is worth prototyping.

Proposed Canonical Artifacts & File Changes

PathAction after final approval
design/ui-v2-card-mosaic.mdWrite the approved UI branch packet.
design/ui-v2-card-mosaic-interview.mdWrite the interview log and decision record.
design/flow-tree-personal-workstation.yamlAdd ui_reviews[] / ui_experiments[] under v2-card-mosaic and append a decision record.
research/_working/preliminary-ui-interview-research.mdArchive after canonical write; remove active working copy.
research/_working/ui-interview-v2-card-mosaic-mockup.htmlArchive after canonical write if the approved spec embeds the mockup reference.
alignment/ui-interview-v2-card-mosaic.htmlConvert from review to confirmed.

Approval Gates

Answer any gate or select section feedback to compile partial YAML. Final approval requires every required gate to be answered with no unresolved negative or clarification feedback.

Gate A - Interview Stage & Provenance required

Is the recovered two-round live UI interview sufficient to treat this as a valid review-state UI-interview page?

Gate B - V2 Mockup Direction required

What is your decision on the V2 Card Mosaic mockup direction?

Gate C - Branch Decision Record required

Which branch decision should be recorded after approval?

Gate D - Artifact Destination & Proposed File Changes required

Approve the proposed canonical paths and write scope after final approval?

Gate E - Coverage Checkpoint required

Is the UI packet complete enough for a branch approval decision?

Gate F - Post-Approval Route required

After final approval and canonical writes, confirm the next route.

Compile Responses

Aggregates answered gate questions and selected section feedback into one response YAML payload. This is enabled for partial feedback; all required gates are needed only for final approval.