# Milestone: Flutter Operator Console UX Plan ## 위치 - Roadmap: `agent-roadmap/ROADMAP.md` - Phase: `agent-roadmap/phase/operator-surface/PHASE.md` ## 목표 실제 Flutter 화면 구현에 들어가기 전에 operator console의 의미, headless-first 검증 순서, wireframe gate를 고정한다. 이 Milestone의 console은 terminal UI가 아니라 dashboard/control surface지만, 화면 구현은 terminal/YAML 기반 운영 검증과 wireframe 준비가 끝난 뒤로 미룬다. ## 상태 [계획] ## 구현 잠금 - 상태: 해제 - 결정 필요: 없음 ## 범위 - operator console의 제품 의미와 MVP 범위 정의 - dashboard/control surface가 필요한 이유와 아직 구현하지 않을 화면 범위 정의 - socket connection, backtest, market data의 headless 검증 시나리오 후보 - loading/empty/error/unavailable/disconnected 상태 정책 - 실행 요청 입력, 검증, 실패 응답을 YAML/terminal 결과로 먼저 확인하는 정책 - Riverpod/go_router app shell과 client integration boundary 기준 - 화면 MVP로 넘어가기 위한 wireframe 준비/승인 기준 ## 기능 ### Epic: [ux-plan] Flutter operator console UX plan 실화면 구현 전에 operator dashboard가 왜 필요한지, 화면 없이 무엇을 먼저 검증할지, 어떤 조건에서 화면 구현 잠금을 풀지 정의한다. - [ ] [scope] Operator console이 terminal UI가 아니라 dashboard/control surface임을 정의하고 MVP 범위와 비범위를 정리한다. - [ ] [headless-first] 화면 구현 전 CLI, terminal output, YAML scenario, log, test fixture로 검증할 운영 흐름을 정리한다. - [ ] [state-policy] loading/empty/error/unavailable/disconnected 상태와 operator action 가능/불가 정책을 headless 결과 표현 기준으로 정리한다. - [ ] [boundary] Riverpod/go_router app shell, feature-first 구조, `AltSocketClient`, generated/mapped contracts의 결합 기준을 정리한다. - [ ] [wireframe-gate] 후속 `Flutter Operator Console MVP`의 구현 잠금 해제 조건을 화면 wireframe 준비/승인 여부로 정리한다. - [ ] [validation-handoff] 후속 `Operator Headless Workflow Validation`이 실행할 terminal/YAML 시나리오와 결과 확인 기준을 인수 가능한 형태로 정리한다. ## 완료 리뷰 - 상태: 없음 - 요청일: 없음 - 완료 근거: 아직 기능 Task가 충족되지 않았다. - 리뷰 필요: - [ ] 사용자가 완료 결과를 확인했다 - [ ] archive 이동을 승인했다 - 리뷰 코멘트: 없음 ## 범위 제외 - 실제 Flutter production 화면 구현 - wireframe 없이 dashboard layout, chart, form 흐름을 확정하는 작업 - 별도 TypeScript web app - 고급 charting 전체 - push notification - mobile app store 배포 설정 ## 작업 컨텍스트 - 관련 경로: `apps/client/`, `packages/contracts/`, `services/api/` - 표준선(선택): 운영 기능은 화면보다 headless 검증을 먼저 만든다. Flutter는 feature-first 구조를 따르고, `go_router`는 화면 이동과 URL 구조, Riverpod은 API client/socket state/feature state 주입을 담당한다. Presentation widget은 production endpoint나 socket path를 직접 알지 않는다. - 선행 작업: API-Centered Proto-Socket Rail - 후속 작업: Operator Headless Workflow Validation, Flutter Operator Console MVP, Flutter Push Notification Boundary - 확인 필요: 없음