---
ui_doc_type: definition-index
surface_type: ops-dev
source_evidence:
  - type: code
    path: apps/client/lib/src/app/router.dart
    notes: Root route가 AltWorkbenchShell과 DashboardScreen을 mount한다.
  - type: code
    path: apps/client/lib/src/app/alt_workbench_shell.dart
    notes: top titlebar, right activity rail, center content switching, Agent dock, placeholder sections가 구현되어 있다.
  - type: code
    path: apps/client/lib/src/features/dashboard/presentation/dashboard_screen.dart
    notes: dashboard body와 status panel scaffold가 구현되어 있다.
  - type: docs
    path: README.md
    notes: Flutter client workbench scaffold와 headless-first 운영 UI 게이트를 설명한다.
  - type: docs
    path: apps/client/README.md
    notes: Workbench Shell 구조와 실제 operator screen 추가 전 API/core readiness 조건을 설명한다.
  - type: user
    path: null
    notes: 사용자가 agent-ui 생성을 요청했다.
---

# UI Definition

## Purpose

ALT Flutter client의 ops/dev workbench UI를 agent와 사람이 같은 기준으로 읽을 수 있게 정의한다. 현재 정의는 구현된 shell, dashboard scaffold, 반복 구성요소를 기준으로 하며, 실제 quant 운영 화면은 API/worker/domain headless 경계가 준비된 뒤 확장한다.

## Surface Type

- Type: ops-dev
- Notes: product UI 레이어는 현재 생성하지 않는다. ALT의 quant workspace 맥락에서는 운영자가 상태, 작업 큐, 백테스트, market data, agent dock을 반복적으로 확인하는 콘솔 표면을 1차 대상으로 둔다.

## Source Evidence

| Type | Path | Notes |
|------|------|-------|
| code | `apps/client/lib/src/app/router.dart` | `/` route가 `AltWorkbenchShell`과 `DashboardScreen`을 mount한다. |
| code | `apps/client/lib/src/app/alt_workbench_shell.dart` | titlebar, activity rail, center content switching, Agent dock, placeholder sections가 구현되어 있다. |
| code | `apps/client/lib/src/features/dashboard/presentation/dashboard_screen.dart` | dashboard body와 status panel scaffold가 구현되어 있다. |
| docs | `README.md` | Flutter client workbench scaffold와 headless-first 운영 UI 게이트를 설명한다. |
| docs | `apps/client/README.md` | Workbench Shell 구조와 operator screen 추가 전 readiness 조건을 설명한다. |
| user | 없음 | 사용자가 agent-ui 생성을 요청했다. |

## Structure

- `views/`: 화면 또는 업무 단위 정의
- `components/`: 반복 UI 구성요소 정의
- `archive/`: 현재 기준이 아닌 과거 정의/결정 로그

## Reading Rules

- 현재 UI 동기화는 이 디렉터리의 활성 문서를 기준으로 한다.
- `archive/**`는 과거 비교, 복원, 특정 근거 확인 요청이 있을 때만 읽는다.

## Sync Rules

- frame-view가 있으면 view region id와 frame region id는 동일해야 한다.
- view에서 참조한 component id는 `components/` 아래에 정의되어야 한다.
- frame은 definition을 대체하지 않는다.
- `implemented`, `planned`, `assumed`, `unknown` 상태를 섞어 쓰지 않는다.

## Decision History

- 2026-06-25: 기존 Flutter code와 README 근거를 기준으로 `code-first` agent-ui scaffold를 생성했다.
