From b9cf57cf394123b20db8d624c8e05b32477f975d Mon Sep 17 00:00:00 2001 From: toki Date: Mon, 25 May 2026 15:52:21 +0900 Subject: [PATCH] update roadmap: operator-surface phase and milestones --- agent-ops/roadmap/ROADMAP.md | 2 +- agent-ops/roadmap/current.md | 5 + .../roadmap/phase/operator-surface/PHASE.md | 7 +- .../client-integration-clone-adoption.md | 93 +++++++++++++++++++ .../milestones/flutter-operator-console.md | 11 ++- 5 files changed, 112 insertions(+), 6 deletions(-) create mode 100644 agent-ops/roadmap/phase/operator-surface/milestones/client-integration-clone-adoption.md diff --git a/agent-ops/roadmap/ROADMAP.md b/agent-ops/roadmap/ROADMAP.md index cda1252..f9f6122 100644 --- a/agent-ops/roadmap/ROADMAP.md +++ b/agent-ops/roadmap/ROADMAP.md @@ -21,7 +21,7 @@ ALT는 개인용 quant system workspace로, 한국장 일봉 MVP에서 시작해 - 요약: 일봉 기반 strategy execution, backtest lifecycle, result persistence, repeatable verification을 만든다. - [계획] 운영 표면 - 경로: `agent-ops/roadmap/phase/operator-surface/PHASE.md` - - 요약: Flutter client에서 백테스트와 market data 상태를 조회하고 실행할 수 있는 operator console을 만든다. + - 요약: NomadCode client 표준을 먼저 복제한 뒤 Flutter client에서 백테스트와 market data 상태를 조회하고 실행할 수 있는 operator console을 만든다. - [계획] 거래 확장 - 경로: `agent-ops/roadmap/phase/trading-expansion/PHASE.md` - 요약: paper trading, 미국장 확장, 주문/리스크/포트폴리오, 실거래 adapter 경계를 MVP 이후 단계로 연다. diff --git a/agent-ops/roadmap/current.md b/agent-ops/roadmap/current.md index bda75b6..3e99380 100644 --- a/agent-ops/roadmap/current.md +++ b/agent-ops/roadmap/current.md @@ -4,6 +4,8 @@ - [진행중] 기반 정렬 - 경로: `agent-ops/roadmap/phase/foundation-alignment/PHASE.md` +- [계획] 운영 표면 + - 경로: `agent-ops/roadmap/phase/operator-surface/PHASE.md` ## 활성 Milestone @@ -16,6 +18,9 @@ - [계획] Persistence and Worker Backbone - Phase: `agent-ops/roadmap/phase/foundation-alignment/PHASE.md` - 경로: `agent-ops/roadmap/phase/foundation-alignment/milestones/persistence-worker-backbone.md` +- [계획] Client Integration Clone Adoption + - Phase: `agent-ops/roadmap/phase/operator-surface/PHASE.md` + - 경로: `agent-ops/roadmap/phase/operator-surface/milestones/client-integration-clone-adoption.md` ## 선택 규칙 diff --git a/agent-ops/roadmap/phase/operator-surface/PHASE.md b/agent-ops/roadmap/phase/operator-surface/PHASE.md index ae17ed6..49e3faa 100644 --- a/agent-ops/roadmap/phase/operator-surface/PHASE.md +++ b/agent-ops/roadmap/phase/operator-surface/PHASE.md @@ -6,13 +6,17 @@ ## 목표 -Flutter client를 ALT의 공식 operator surface로 삼아 market data 상태와 backtest 실행 및 결과를 조회할 수 있게 한다. web/mobile/desktop 단일 UI 표면을 유지하면서 API와 generated contract 기준을 맞춘다. +Flutter client를 ALT의 공식 operator surface로 삼아 market data 상태와 backtest 실행 및 결과를 조회할 수 있게 한다. 먼저 NomadCode client 표준에서 정리된 skeleton, bootstrap, proto-socket, Mattermost push host integration 경계를 복제하고, web/mobile/desktop 단일 UI 표면을 유지하면서 API와 generated contract 기준을 맞춘다. ## Milestone 흐름 완료된 Milestone은 archive 경로를 가리키고, 검토중, 진행중, 계획 또는 보류 Milestone은 이 Phase 하위 `milestones/` 경로를 가리킨다. 완료, 검토중, 진행중, 계획 순서로 두어 아래로 갈수록 미래 작업에 가까워지게 정렬한다. +- [계획] Client Integration Clone Adoption + - 경로: `agent-ops/roadmap/phase/operator-surface/milestones/client-integration-clone-adoption.md` + - 요약: NomadCode client 표준을 ALT `apps/client`에 복제하기 위한 bootstrap, proto-socket, Mattermost push host integration, Riverpod/go_router 결합 기준을 정리한다. + - [계획] Flutter Operator Console - 경로: `agent-ops/roadmap/phase/operator-surface/milestones/flutter-operator-console.md` - 요약: Flutter client에서 market data, backtest run, result를 조회하고 실행 요청할 수 있는 운영 화면을 만든다. @@ -22,3 +26,4 @@ Flutter client를 ALT의 공식 operator surface로 삼아 market data 상태와 - 이 Phase는 Flutter client의 운영 화면과 API/client 통신 표면에 집중한다. - 별도 TypeScript web app, 고급 charting 전체, mobile app store 배포 설정은 제외한다. - UI는 generated/mapped contracts와 proto-socket client layer를 기준으로 API와 통신한다. +- `../nomadcode`에서 정리한 client 표준을 복제할 때는 product feature 전체가 아니라 client skeleton, integration boundary, bootstrap convention, 문서화된 handoff 기준만 가져온다. diff --git a/agent-ops/roadmap/phase/operator-surface/milestones/client-integration-clone-adoption.md b/agent-ops/roadmap/phase/operator-surface/milestones/client-integration-clone-adoption.md new file mode 100644 index 0000000..6e882a2 --- /dev/null +++ b/agent-ops/roadmap/phase/operator-surface/milestones/client-integration-clone-adoption.md @@ -0,0 +1,93 @@ +# Milestone: Client Integration Clone Adoption + +## 위치 + +- Roadmap: `agent-ops/roadmap/ROADMAP.md` +- Phase: `agent-ops/roadmap/phase/operator-surface/PHASE.md` + +## 목표 + +NomadCode의 `Client Integration Standardization` 결과를 ALT `apps/client`에 복제 가능한 형태로 반영한다. 기존 Riverpod/go_router client 구조를 유지하면서 Web + Android 우선 Dart bootstrap, proto-socket, Mattermost push host integration, iOS 후속 확장 경계를 ALT operator surface에 맞게 정리한다. + +## 상태 + +[계획] + +## 구현 잠금 + +- 상태: 잠금 +- 결정 필요: 아래 체크리스트 + - [ ] NomadCode client 표준화 산출물을 받은 뒤 ALT client에 복제할 파일/구조/설정 범위를 확정한다. + - [ ] Riverpod/go_router feature-first 구조와 공통 client skeleton을 결합할 기준을 결정한다. + - [ ] ALT에서 Mattermost push routing을 operator notification, 외부 링크, 실행 이벤트 중 어디로 연결할지 결정한다. + +## 범위 + +- 기존 `apps/client` 모듈을 유지하면서 공통 client skeleton 정렬 +- Web + Android 우선 bootstrap과 platform guard 반영 +- proto-socket Dart client 설정, endpoint 주입, connection lifecycle 정리 +- Mattermost push plugin host integration 반영 +- Firebase host 설정과 token/auth/signing key 전달 경계 정리 +- iOS는 동일 Dart API 위의 후속 native 확장 대상으로 문서화 +- NomadCode에서 복제할 skeleton과 ALT에서 치환할 product-specific 항목 문서화 + +## 필수 기능 + +### Epic: [client-clone] Client standard clone + +NomadCode client 표준을 ALT client 구조에 맞게 복제한다. + +- [ ] [module-name] 기존 `apps/client` 모듈을 유지하고 package/app 표시 이름의 ALT 정체성 유지 기준을 문서화한다. +- [ ] [bootstrap] Web + Android 우선 bootstrap과 platform-specific initialization guard를 반영한다. +- [ ] [folder-layout] `src/app`, `src/integrations`, `src/features` 기준의 client skeleton을 Riverpod/go_router 구조와 맞춘다. + +### Epic: [integration-clone] Integration clone boundary + +공통 integration 경계를 ALT operator surface에 맞춰 연결한다. + +- [ ] [proto-socket] proto-socket connection lifecycle과 endpoint configuration을 client integration으로 정리한다. +- [ ] [mattermost-push] Mattermost push는 plugin runtime을 사용하고 host는 Firebase config, auth/token/signing key, routing callback만 소유한다. +- [ ] [platform-targets] Web과 Android를 1차 target으로 검증하고 iOS 후속 확장 경계를 문서화한다. + +### Epic: [handoff] Clone handoff + +NomadCode 표준과 ALT 차이를 추적 가능하게 남긴다. + +- [ ] [clone-checklist] NomadCode에서 가져올 항목과 ALT에서 치환할 항목을 checklist로 남긴다. +- [ ] [riverpod] Riverpod provider 경계와 go_router navigation 경계에 integration을 배치하는 기준을 문서화한다. +- [ ] [related-locks] Flutter operator surface 진행 milestone은 이 milestone의 표준 적용 범위가 확정되기 전까지 잠금 상태로 둔다. + +## 완료 기준 + +- [ ] ALT `apps/client`가 client 표준 skeleton과 기존 Riverpod/go_router 구조를 충돌 없이 함께 따른다. +- [ ] Web build와 Android integration이 같은 Dart bootstrap 기준에서 설명되고 검증된다. +- [ ] proto-socket과 Mattermost push integration 책임 경계가 host/plugin/API 사이에서 충돌 없이 설명된다. +- [ ] iOS가 Android-only 예외가 아니라 동일 Dart API 위의 후속 확장 대상으로 문서화된다. +- [ ] `Flutter Operator Console` milestone과 충돌하는 범위가 잠금 또는 후속 작업으로 정리되어 있다. + +## 완료 리뷰 + +- 상태: 없음 +- 요청일: 없음 +- 완료 근거: 없음 +- 리뷰 필요: + - [ ] 사용자가 완료 결과를 확인했다 + - [ ] archive 이동을 승인했다 +- 리뷰 코멘트: 없음 + +## 범위 제외 + +- NomadCode 제품 feature 전체 복제 +- ALT quant feature 화면 구현 +- iOS native push full implementation +- Mattermost push plugin runtime 대규모 재작성 +- API protobuf schema 세부 확정 + +## 작업 컨텍스트 + +- 관련 경로: `apps/client/`, `packages/contracts/`, `services/api/`, `../nomadcode/apps/client`, `../mattermost-push-plugin/` +- 표준선(선택): ALT는 기존 `apps/client` 경로와 Riverpod/go_router app shell을 유지하고, 공통 integration skeleton만 맞춘다. +- 표준선(선택): NomadCode에서 가져올 것은 client skeleton, integration boundary, bootstrap convention, handoff 문서이며 제품 feature는 복제하지 않는다. +- 선행 작업: NomadCode `Client Integration Standardization`, Socket Session Loop +- 후속 작업: Flutter Operator Console +- 확인 필요: 구현 잠금의 결정 필요 항목 참고. diff --git a/agent-ops/roadmap/phase/operator-surface/milestones/flutter-operator-console.md b/agent-ops/roadmap/phase/operator-surface/milestones/flutter-operator-console.md index 9519f20..3ba88fd 100644 --- a/agent-ops/roadmap/phase/operator-surface/milestones/flutter-operator-console.md +++ b/agent-ops/roadmap/phase/operator-surface/milestones/flutter-operator-console.md @@ -15,8 +15,11 @@ Flutter client를 ALT의 공식 UI client로 삼아 market data 상태, backtest ## 구현 잠금 -- 상태: 해제 -- 결정 필요: 없음 +- 상태: 잠금 +- 결정 필요: 아래 체크리스트 + - [ ] Client Integration Clone Adoption 완료 전 operator console 화면 구현을 어디까지 진행할지 결정한다. + - [ ] Riverpod/go_router app shell에 공통 client skeleton과 integration boundary를 결합하는 기준을 확정한다. + - [ ] push notification은 이 milestone 범위 제외로 유지하고 clone milestone에서 host integration으로 다룰지 확인한다. ## 범위 @@ -68,6 +71,6 @@ market data와 backtest 상태를 조회하고 실행 요청할 수 있는 Flutt - 관련 경로: `apps/client/`, `packages/contracts/`, `services/api/` - 표준선(선택): Flutter는 feature-first Clean Architecture와 Riverpod을 기본 설계 프레임으로 삼는다. -- 선행 작업: Socket Session Loop, Backtest Analysis Surface +- 선행 작업: Client Integration Clone Adoption, Socket Session Loop, Backtest Analysis Surface - 후속 작업: Paper Trading Readiness -- 확인 필요: 없음 +- 확인 필요: 구현 잠금의 결정 필요 항목 참고.