diff --git a/agent-roadmap/phase/operator-surface/milestones/operator-headless-workflow-validation.md b/agent-roadmap/archive/phase/operator-surface/milestones/operator-headless-workflow-validation.md similarity index 73% rename from agent-roadmap/phase/operator-surface/milestones/operator-headless-workflow-validation.md rename to agent-roadmap/archive/phase/operator-surface/milestones/operator-headless-workflow-validation.md index f4e3533..1fa3a36 100644 --- a/agent-roadmap/phase/operator-surface/milestones/operator-headless-workflow-validation.md +++ b/agent-roadmap/archive/phase/operator-surface/milestones/operator-headless-workflow-validation.md @@ -11,7 +11,7 @@ Flutter 화면 없이 ALT 운영 흐름을 terminal/YAML/log/test fixture 기반 ## 상태 -[진행중] +[완료] ## 구현 잠금 @@ -34,22 +34,24 @@ Flutter 화면 없이 ALT 운영 흐름을 terminal/YAML/log/test fixture 기반 운영 화면을 만들기 전에 같은 API/worker 경계를 화면 없이 검증한다. -- [ ] [scenario-format] operator scenario를 YAML 또는 동등한 파일 형식으로 표현한다. 검증: 예시 scenario가 parser 또는 dry-run 검증을 통과한다. -- [ ] [terminal-run] terminal에서 scenario를 실행하거나 대표 조회를 수행할 수 있다. 검증: CLI 또는 script가 exit code와 요약 출력을 남긴다. -- [ ] [market-check] market data status/import 관련 결과를 화면 없이 확인할 수 있다. 검증: fixture 또는 local smoke가 상태 출력을 확인한다. -- [ ] [backtest-check] backtest list/detail/result/start 관련 결과를 화면 없이 확인할 수 있다. 검증: fixture 또는 local smoke가 성공/실패 결과를 확인한다. -- [ ] [error-output] unavailable/error/disconnected 상태가 화면 없이도 판별 가능한 출력으로 남는다. 검증: typed error 또는 상태 코드 출력 테스트가 통과한다. -- [ ] [handoff] Flutter 화면 MVP로 넘길 수 있는 검증 evidence와 남은 wireframe 의존성을 정리한다. +- [x] [scenario-format] operator scenario를 YAML 또는 동등한 파일 형식으로 표현한다. 검증: 예시 scenario가 parser 또는 dry-run 검증을 통과한다. +- [x] [terminal-run] terminal에서 scenario를 실행하거나 대표 조회를 수행할 수 있다. 검증: CLI 또는 script가 exit code와 요약 출력을 남긴다. +- [x] [market-check] market data status/import 관련 결과를 화면 없이 확인할 수 있다. 검증: fixture 또는 local smoke가 상태 출력을 확인한다. +- [x] [backtest-check] backtest list/detail/result/start 관련 결과를 화면 없이 확인할 수 있다. 검증: fixture 또는 local smoke가 성공/실패 결과를 확인한다. +- [x] [error-output] unavailable/error/disconnected 상태가 화면 없이도 판별 가능한 출력으로 남는다. 검증: typed error 또는 상태 코드 출력 테스트가 통과한다. +- [x] [handoff] Flutter 화면 MVP로 넘길 수 있는 검증 evidence와 남은 wireframe 의존성을 정리한다. ## 완료 리뷰 -- 상태: 없음 -- 요청일: 없음 -- 완료 근거: 아직 기능 Task와 검증이 충족되지 않았다. +- 상태: 승인됨 +- 요청일: 2026-06-01 +- 완료 근거: `apps/cli/internal/operator/scenario.go`, `apps/cli/internal/cli/cli.go`, `apps/cli/internal/operator/runner.go`가 YAML scenario validate/run과 text/jsonl 출력을 제공한다. +- 완료 근거: `apps/cli/testdata/operator/*.yaml`, `apps/cli/testdata/operator/expected/*.jsonl`, `apps/cli/testdata/operator/headless_validation.md`가 market data, backtest, invalid request matrix의 command/input/output/exit code evidence를 정리한다. +- 완료 근거: 원격 ALT checkout에서 `go test ./apps/cli/...`가 통과했다. - 리뷰 필요: - - [ ] 사용자가 완료 결과를 확인했다 - - [ ] archive 이동을 승인했다 -- 리뷰 코멘트: 없음 + - [x] 사용자가 완료 결과를 확인했다 + - [x] archive 이동을 승인했다 +- 리뷰 코멘트: 2026-06-01 사용자 요청으로 완료 승인 및 archive 이동을 수행했다. `bin/test` 전체 smoke는 원격 checkout에서 `protoc-gen-go` 미설치로 차단되었으며, 필요하면 원격 toolchain 보강 후 재실행한다. ## 범위 제외 diff --git a/agent-roadmap/current.md b/agent-roadmap/current.md index 2dd44b0..8f2aed7 100644 --- a/agent-roadmap/current.md +++ b/agent-roadmap/current.md @@ -7,9 +7,9 @@ ## 활성 Milestone -- [진행중] Operator Headless Workflow Validation +- [진행중] Operator Client API/Core Integration Validation - Phase: `agent-roadmap/phase/operator-surface/PHASE.md` - - 경로: `agent-roadmap/phase/operator-surface/milestones/operator-headless-workflow-validation.md` + - 경로: `agent-roadmap/phase/operator-surface/milestones/operator-client-api-core-integration.md` ## 선택 규칙 diff --git a/agent-roadmap/phase/operator-surface/PHASE.md b/agent-roadmap/phase/operator-surface/PHASE.md index 0f19f03..7e719c3 100644 --- a/agent-roadmap/phase/operator-surface/PHASE.md +++ b/agent-roadmap/phase/operator-surface/PHASE.md @@ -22,9 +22,12 @@ Flutter client를 ALT의 공식 operator surface로 삼아 market data 상태와 - [완료] Flutter Operator Console UX Plan - 경로: `agent-roadmap/archive/phase/operator-surface/milestones/flutter-operator-console.md` - 요약: terminal형 콘솔이 아니라 dashboard/control surface라는 제품 의미, headless 검증 우선 원칙, 상태 정책, wireframe gate, validation handoff를 정리했다. -- [진행중] Operator Headless Workflow Validation - - 경로: `agent-roadmap/phase/operator-surface/milestones/operator-headless-workflow-validation.md` +- [완료] Operator Headless Workflow Validation + - 경로: `agent-roadmap/archive/phase/operator-surface/milestones/operator-headless-workflow-validation.md` - 요약: Flutter 화면 없이 terminal/YAML 기반 운영 시나리오로 market data와 backtest 조회/실행 결과를 먼저 검증한다. +- [진행중] Operator Client API/Core Integration Validation + - 경로: `agent-roadmap/phase/operator-surface/milestones/operator-client-api-core-integration.md` + - 요약: Flutter 실화면 전에 client core/provider/repository 경계에서 API socket 연결과 기본 market/backtest 호출을 검증한다. - [보류] Flutter Operator Console MVP - 경로: `agent-roadmap/phase/operator-surface/milestones/flutter-operator-console-mvp.md` - 요약: headless 운영 검증과 화면 wireframe 승인 뒤에만 Flutter에서 market data, backtest run, result를 조회하고 실행 요청할 수 있는 MVP 화면을 구현한다. diff --git a/agent-roadmap/phase/operator-surface/milestones/flutter-operator-console-mvp.md b/agent-roadmap/phase/operator-surface/milestones/flutter-operator-console-mvp.md index c689117..f40ac88 100644 --- a/agent-roadmap/phase/operator-surface/milestones/flutter-operator-console-mvp.md +++ b/agent-roadmap/phase/operator-surface/milestones/flutter-operator-console-mvp.md @@ -17,7 +17,8 @@ - 상태: 잠금 - 결정 필요: 아래 체크리스트 - - [ ] `Operator Headless Workflow Validation`이 완료되어 화면 없이 대표 운영 흐름을 검증했다. + - [x] `Operator Headless Workflow Validation`이 완료되어 화면 없이 대표 운영 흐름을 검증했다. + - [ ] `Operator Client API/Core Integration Validation`이 완료되어 Flutter 실화면 없이 client core에서 기본 API 호출을 검증했다. - [ ] 화면 wireframe 또는 동등한 화면 정의 산출물이 준비되었고 사용자가 승인했다. ## 범위 @@ -67,6 +68,6 @@ headless 검증과 wireframe 승인을 거친 운영 흐름만 실제 Flutter - 관련 경로: `apps/client/`, `packages/contracts/`, `services/api/` - 표준선(선택): `go_router`는 화면 이동/URL 구조, Riverpod은 API client/socket state/feature state 주입을 담당한다. UI는 `AltSocketClient` provider와 generated/mapped contracts boundary를 통해 API만 바라본다. -- 선행 작업: Flutter Operator Console UX Plan, Operator Headless Workflow Validation, wireframe 승인 +- 선행 작업: Flutter Operator Console UX Plan, Operator Headless Workflow Validation, Operator Client API/Core Integration Validation, wireframe 승인 - 후속 작업: Flutter Push Notification Boundary -- 확인 필요: headless 검증 완료와 wireframe 승인 전에는 구현 잠금을 유지한다. +- 확인 필요: headless 검증은 완료되었고, client API/core 연결 검증과 wireframe 승인 전에는 구현 잠금을 유지한다. diff --git a/agent-roadmap/phase/operator-surface/milestones/operator-client-api-core-integration.md b/agent-roadmap/phase/operator-surface/milestones/operator-client-api-core-integration.md new file mode 100644 index 0000000..64778e4 --- /dev/null +++ b/agent-roadmap/phase/operator-surface/milestones/operator-client-api-core-integration.md @@ -0,0 +1,68 @@ +# Milestone: Operator Client API/Core Integration Validation + +## 위치 + +- Roadmap: `agent-roadmap/ROADMAP.md` +- Phase: `agent-roadmap/phase/operator-surface/PHASE.md` + +## 목표 + +Flutter 실화면 구현 전에 client core, provider, repository 경계에서 API socket 연결과 기본 ALT API 호출이 안정적으로 동작하는지 검증한다. 화면 layout, dashboard depth, chart, form visual design은 뒤로 미루고, generated/mapped contracts와 proto-socket client layer가 market data와 backtest API를 호출하고 typed result/error를 받을 수 있음을 먼저 확인한다. + +## 상태 + +[진행중] + +## 구현 잠금 + +- 상태: 해제 +- 결정 필요: 없음 + +## 범위 + +- Flutter client의 화면 없는 API connection/bootstrap 경계 +- generated/mapped contracts 기반 request/response mapping +- API socket connect/disconnect/timeout 상태를 core state로 표현 +- market data status/list 계열 기본 호출 검증 +- backtest list/detail/result/start 계열 기본 호출 검증 +- unavailable/error/disconnected/typed `ErrorInfo` mapping 검증 +- UI 구현으로 넘길 API/core readiness evidence 정리 + +## 기능 + +### Epic: [client-api-core] Client API/core integration validation + +운영 화면을 만들기 전에 Flutter client 내부의 API 연결과 기본 호출 경계를 화면 없이 검증한다. + +- [ ] [client-contracts] generated/mapped contracts를 client core에서 사용할 수 있게 정리한다. 검증: Flutter/Dart test가 request/response mapping을 확인한다. +- [ ] [socket-core] API socket 연결, 해제, timeout 상태를 화면 없는 client state로 표현한다. 검증: fake 또는 local socket 기반 test가 상태 전이를 확인한다. +- [ ] [market-call] market data status/list 기본 API 호출을 client core에서 수행할 수 있다. 검증: test가 request payload와 parsed result/status key를 확인한다. +- [ ] [backtest-call] backtest list/detail/result/start 기본 API 호출을 client core에서 수행할 수 있다. 검증: test가 success result와 typed error mapping을 확인한다. +- [ ] [error-core] unavailable/error/disconnected 상태가 UI copy가 아닌 안정적인 client state로 남는다. 검증: typed error와 transport failure unit test가 통과한다. +- [ ] [handoff] Flutter Operator Console MVP로 넘길 API/core readiness evidence를 정리한다. 검증: 실행 명령, fixture/fake, 기대 상태, 남은 wireframe 의존성을 문서화한다. + +## 완료 리뷰 + +- 상태: 없음 +- 요청일: 없음 +- 완료 근거: 아직 기능 Task와 검증이 충족되지 않았다. +- 리뷰 필요: + - [ ] 사용자가 완료 결과를 확인했다 + - [ ] archive 이동을 승인했다 +- 리뷰 코멘트: 없음 + +## 범위 제외 + +- Flutter 실화면 구현 +- dashboard layout, navigation depth, chart, form visual design 확정 +- wireframe 승인 +- push notification +- production 운영 자동화 + +## 작업 컨텍스트 + +- 관련 경로: `apps/client/`, `packages/contracts/`, `services/api/`, `apps/cli/testdata/operator/` +- 표준선(선택): 화면 구현 없이 Riverpod/provider 또는 repository 수준에서 API client boundary를 먼저 안정화한다. 검증은 fake/local socket, fixture, Dart/Flutter test, grep 가능한 output 중 가장 작은 충분한 방식으로 남긴다. +- 선행 작업: Flutter Operator Console UX Plan, Operator Headless Workflow Validation +- 후속 작업: Flutter Operator Console MVP +- 확인 필요: 없음