8.4 KiB
8.4 KiB
Main UI/UX Visual-Truth PRD
Document Control
- Date: 2026-02-18
- Owner: Product + UI Engineering
- Status: Approved for implementation
- Primary route:
src/app/page.tsx - Design truth references:
- Reference A: Command Grid shell (blocked/new-task top actions)
- Reference B: Open Thread center takeover (conversation detail state)
1. Product Intent
Deliver a full redesign of the main BeadBoard experience so the live application visually and behaviorally matches the approved references while preserving existing backend workflows.
This is not a cosmetic patch. The shell, state model, and interaction hierarchy are being redefined.
2. Goals
- Replace current green-card Social presentation with the new command-grid visual language.
- Add Open Thread as a center takeover state (not right drawer-first).
- Keep backend behavior, URL deep links, and mutation endpoints working.
- Unify Social, Graph, and Swarm under one shell and token system.
- Make both sidebars independently collapsible with persistent state.
3. Non-Goals
- No backend schema migrations.
- No changes to core issue/dependency semantics.
- No new authentication or role systems.
- No
/sessionsredesign (route is deprecated and redirected).
4. Users and Jobs-to-be-Done
Primary User
- Technical operator managing active work and blockers in real time.
Core Jobs
- See blocked/high-priority work immediately.
- Open a task and communicate/update status without leaving context.
- Navigate between Social, Graph, and Swarm quickly.
- Collapse side rails to focus when needed.
5. Experience Principles
- Action first: top chrome should drive action, not telemetry overload.
- Visual hierarchy over density: each region has one clear job.
- State clarity: user always knows whether they are in Grid or Thread mode.
- Consistent symbols: one icon system for view switching + card jump actions.
- Fast and keyboard reachable: primary actions should be obvious and accessible.
6. Information Architecture
Global Layout (Desktop)
- Left Sidebar: view switch icons + workstream tree + global scope controls.
- Center: either Command Grid or Open Thread takeover.
- Right Sidebar: agent pool + telemetry/activity context.
- Top Bar: minimal, action-first.
Mobile Layout
- Dedicated mobile composition (not scaled desktop).
- Bottom nav for view switching.
- Open Thread is full-screen takeover with safe-area padding.
7. State Model
Primary States
command_grid
- Shows top-level task stream/cards.
- Shows summary counts in center header.
open_thread
- Center takeover with task summary + conversation timeline + message input.
- Right sidebar may collapse/minimize depending on viewport.
URL Contract
Maintain existing params and add sidebar params:
- Existing:
view,task,swarm,drawer,graphTab,panel,epic - New:
left=open|closed,right=open|closed
Persistence precedence:
- URL (source of truth)
- Local storage fallback (when URL missing)
- Default layout values
8. Surface Requirements
8.1 Top Bar (Action-First)
Required content:
- Brand/scope label.
Blocked Itemsaction.New Taskaction.
Not in top bar:
- Agent pool status blocks.
- Large telemetry stat tiles.
- Secondary controls that can live in sidebars.
Behavior:
Blocked Itemstoggles blocked-focused filtering in center and URL.New Taskopens create flow using existing beads mutation path.
8.2 Left Sidebar
Required:
- View switcher icons at top (
Social,Graph,Swarm). - Workstream/epic navigation below.
- Collapse toggle.
Rules:
- Icons match card jump icon language.
- Keyboard focus visible and logical tab order.
- Collapsed mode keeps view switch accessible.
8.3 Center: Command Grid
Required:
- Header with title/subtitle and summary counts.
- Grid/list of task cards with strong status hierarchy.
- Strong visibility for blocked and in-progress items.
Card actions:
- Jump to graph for task context.
- Jump to activity/timeline context.
- Open thread (enters takeover state).
8.4 Center: Open Thread Takeover
Required regions:
- Task identity/status header.
- Task summary + assignee + due date metadata.
- Chronological conversation timeline.
- Composer row with message input + send action.
Behavior:
- Escape/close returns to prior command-grid selection context.
- Existing edit/comment/status update flows continue to use current APIs.
- Unsaved edits require warning before destructive navigation.
8.5 Right Sidebar
Required:
- Agent pool monitor list.
- Activity/telemetry feed.
- Collapse toggle.
Rules:
- Right sidebar is context rail, not primary action area.
- In thread takeover on smaller screens, it may minimize/collapse.
8.6 Graph and Swarm Views
Required:
- Full visual reskin using same token system and shell language.
- Keep existing graph/swarm behavior and deep links.
- Keep consistent icon/action vocabulary.
9. Design Token Contract (Locked)
All main-route UI must use tokenized values. No ad-hoc one-off hex values in component files.
Required Tokens
- Background:
--ui-bg-app,--ui-bg-shell,--ui-bg-panel,--ui-bg-card - Border/Text:
--ui-border-soft,--ui-border-strong,--ui-text-primary,--ui-text-muted - Status/Action:
--ui-accent-ready,--ui-accent-blocked,--ui-accent-warning,--ui-accent-info,--ui-accent-action-green,--ui-accent-action-red - Typography:
--ui-font-sans,--ui-font-mono,--ui-tracking-tight,--ui-numeric-tabular
Color policy:
- Match reference palette closely.
- Permit small WCAG contrast adjustments where needed.
10. Copy and Label Rules
Use plain operational language.
Approved examples:
Blocked ItemsNew TaskOpen ThreadNo activity yet
Avoid marketing-style labels and ambiguous verbs.
11. Accessibility Requirements (Must Pass)
- Icon-only buttons include
aria-label. - No clickable
div/spanfor action controls. - All interactive controls have visible
:focus-visiblestate. - Form controls have labels and sensible autocomplete behavior.
- Async updates use polite live regions when applicable.
- Keyboard support for sidebar toggles, view switching, composer actions.
- Preserve semantic headings and logical region order.
12. Performance Requirements
- No layout-thrashing reads in render.
- Avoid
transition: all; transition only explicit properties. - Keep card rendering cheap; memoize derived lists where needed.
- Keep thread rendering stable under high event volume.
- Preserve responsive behavior without JS measurement hacks.
13. Route Policy
/sessionsis deprecated.- Required behavior: hard redirect
/sessionsto/?view=social. - Remove active nav entry points to
/sessions.
14. Acceptance Criteria
Design acceptance:
- Desktop and mobile visually match references by region and hierarchy.
- Command Grid and Open Thread states are both implemented.
- Sidebars independently collapse and persist state.
Behavior acceptance:
- URL state round-trip works for selection/view/layout state.
Blocked ItemsandNew Taskare functional.- Graph/Swarm remain behaviorally correct after reskin.
- Existing mutation paths still work.
Quality gates:
npm run typechecknpm run lintnpm run test- Vercel guideline audit output per phase (
file:line, terse findings)
15. Verification Matrix
Screenshot checkpoints
1920x10801440x1024390x844
Flow checks
- Open grid -> filter blocked -> open thread -> send message -> close thread -> restore context.
- Switch Social/Graph/Swarm from left icon rail.
- Collapse/expand each sidebar independently.
- Reload with URL params and verify exact state restoration.
16. Risks and Mitigations
- Risk: token updates leak to unrelated routes.
- Mitigation: scope tokens/class application to main shell first, then promote intentionally.
- Risk: URL state regressions break deep links.
- Mitigation: add targeted URL parsing/building tests before refactor.
- Risk: visual drift during incremental implementation.
- Mitigation: enforce screenshot checkpoints each phase.
- Risk: stale runtime lock artifacts pollute git status.
- Mitigation: keep runtime lock files ignored and untracked.
17. Delivery Phases
- Shell V2 + collapsible sidebars + URL state foundation.
- Command Grid visual truth implementation.
- Open Thread center takeover implementation.
- Graph/Swarm full reskin.
/sessionshard redirect.- Final gates + audit and handoff.