63 lines
2.7 KiB
Markdown
63 lines
2.7 KiB
Markdown
---
|
|
ui_doc_type: definition-index
|
|
surface_type: ops-dev
|
|
source_evidence:
|
|
- type: code
|
|
path: apps/client/lib/src/app/nomadcode_workbench_shell.dart
|
|
notes: Workbench shell, titlebar, activity rail, Agent dock, section switching, optional IOP slot 구현 근거.
|
|
- type: code
|
|
path: apps/client/lib/src/features/workspaces/presentation/workspace_home_page.dart
|
|
notes: Workspace list, detail pane, task states, proto-socket diagnostics 구현 근거.
|
|
- type: docs
|
|
path: README.md
|
|
notes: NomadCode 제품 경계와 Flutter app source of truth 설명.
|
|
- type: docs
|
|
path: apps/client/README.md
|
|
notes: Workbench shell, Agent dock, IOP slot, WorkspaceHomePage mount 기준.
|
|
- type: user
|
|
path: null
|
|
notes: agent-ui 생성 요청.
|
|
---
|
|
|
|
# UI Definition
|
|
|
|
## Purpose
|
|
|
|
NomadCode의 현재 Flutter client UI를 agent와 사람이 같은 기준으로 읽을 수 있게 정리한다. 초기 기준은 구현 코드가 확인된 workbench shell과 workspace home surface이며, provider slot과 product UX 확장은 후속 정의 후보로 둔다.
|
|
|
|
## Surface Type
|
|
|
|
- Type: ops-dev
|
|
- Notes: product UI layer가 필요해지면 brand, content, assets, tokens, motion, provider console composition을 별도 갱신으로 추가한다.
|
|
|
|
## Source Evidence
|
|
|
|
| Type | Path | Notes |
|
|
|------|------|-------|
|
|
| code | `apps/client/lib/src/app/nomadcode_workbench_shell.dart` | Workbench shell, titlebar, activity rail, Agent dock, section switching, optional IOP slot 구현 근거. |
|
|
| code | `apps/client/lib/src/features/workspaces/presentation/workspace_home_page.dart` | Workspace list, detail pane, task states, proto-socket diagnostics 구현 근거. |
|
|
| docs | `README.md` | NomadCode 제품 경계와 Flutter app source of truth 설명. |
|
|
| docs | `apps/client/README.md` | Workbench shell, Agent dock, IOP slot, WorkspaceHomePage mount 기준. |
|
|
| 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을 대체하지 않는다.
|
|
- `구현됨`, `계획`, `가정`, `불명확` 상태를 섞어 쓰지 않는다.
|
|
|
|
## Decision History
|
|
|
|
- 2026-06-24: Flutter 구현 근거를 기준으로 `code-first` agent-ui 초안을 생성했다.
|