diff --git a/agent-ops/roadmap/ROADMAP.md b/agent-ops/roadmap/ROADMAP.md index ec73061..3fcd55d 100644 --- a/agent-ops/roadmap/ROADMAP.md +++ b/agent-ops/roadmap/ROADMAP.md @@ -4,7 +4,7 @@ NomadCode는 Flutter 기반 앱, core 서비스, 공유 계약, agent-operation 규칙을 하나의 원레포로 묶어 AI-assisted development workflow를 조율하는 프로젝트다. -현재 로드맵은 `ROADMAP.md -> phase//PHASE.md -> phase//milestones/.md` scaffold를 기준으로 관리한다. React/Vite 웹 콘솔 제거, 서버/Plane/provider 기반 작업, Flutter-first 클라이언트 정리는 완료되었고, Mattermost push plugin extraction은 사용자 완료 확인과 archive 승인 전의 검토중 상태다. 이후 core workflow 안정화, 외부 통합, Flutter-first 프로젝트 제어 UX를 이어간다. +현재 로드맵은 `ROADMAP.md -> phase//PHASE.md -> phase//milestones/.md` scaffold를 기준으로 관리한다. React/Vite 웹 콘솔 제거, 서버/Plane/provider 기반 작업, Flutter-first 클라이언트 정리는 완료되었고, Mattermost push plugin extraction은 사용자 완료 확인과 archive 승인 전의 검토중 상태다. 이후 client 표준화, core workflow 안정화, 외부 통합, Flutter-first 프로젝트 제어 UX를 이어간다. ## Phase 흐름 @@ -27,15 +27,15 @@ NomadCode는 Flutter 기반 앱, core 서비스, 공유 계약, agent-operation - [검토중] Mattermost Push Plugin Extraction - 경로: `agent-ops/roadmap/phase/mattermost-push-plugin-extraction/PHASE.md` - 요약: Flutter 앱에 섞인 Mattermost push notification migration을 `../mattermost-push-plugin` Flutter plugin repo로 분리했고, 사용자 완료 확인과 archive 승인을 기다린다. +- [진행중] Project Workspace Management UX + - 경로: `agent-ops/roadmap/phase/project-workspace-management-ux/PHASE.md` + - 요약: Flutter client 모듈명과 bootstrap, proto-socket, host integration 표준을 먼저 정리하고 이후 프로젝트 단위 제어 UX로 확장한다. - [진행중] Workflow Core - 경로: `agent-ops/roadmap/phase/workflow-core/PHASE.md` - 요약: 실제 e2e 흐름을 기준으로 task lifecycle, retry, timeout, notification event를 안정화한다. - [계획] External Integration - 경로: `agent-ops/roadmap/phase/external-integration/PHASE.md` - 요약: Plane 확장, Mattermost, Agent Integrator, IOP OpenAI API Responses-compatible 호출을 실제 통합 흐름으로 확장한다. -- [계획] Project Workspace Management UX - - 경로: `agent-ops/roadmap/phase/project-workspace-management-ux/PHASE.md` - - 요약: Flutter-first 클라이언트 구조 위에서 프로젝트 단위 제어 UX를 앱 기반 desktop/mobile layout 기준으로 정리한다. ## 로딩 정책 diff --git a/agent-ops/roadmap/current.md b/agent-ops/roadmap/current.md index ba1c266..8d96c01 100644 --- a/agent-ops/roadmap/current.md +++ b/agent-ops/roadmap/current.md @@ -2,6 +2,8 @@ ## 활성 Phase +- [진행중] Project Workspace Management UX + - 경로: `agent-ops/roadmap/phase/project-workspace-management-ux/PHASE.md` - [검토중] Mattermost Push Plugin Extraction - 경로: `agent-ops/roadmap/phase/mattermost-push-plugin-extraction/PHASE.md` - [진행중] Workflow Core @@ -9,6 +11,9 @@ ## 활성 Milestone +- [진행중] Client Integration Standardization + - Phase: `agent-ops/roadmap/phase/project-workspace-management-ux/PHASE.md` + - 경로: `agent-ops/roadmap/phase/project-workspace-management-ux/milestones/client-integration-standardization.md` - [검토중] Mattermost Push Plugin Extraction - Phase: `agent-ops/roadmap/phase/mattermost-push-plugin-extraction/PHASE.md` - 경로: `agent-ops/roadmap/phase/mattermost-push-plugin-extraction/milestones/mattermost-push-plugin-extraction.md` diff --git a/agent-ops/roadmap/phase/project-workspace-management-ux/PHASE.md b/agent-ops/roadmap/phase/project-workspace-management-ux/PHASE.md index 8dc9313..6f11839 100644 --- a/agent-ops/roadmap/phase/project-workspace-management-ux/PHASE.md +++ b/agent-ops/roadmap/phase/project-workspace-management-ux/PHASE.md @@ -2,17 +2,21 @@ ## 상태 -[계획] +[진행중] ## 목표 -Flutter-first 클라이언트 구조 위에서 기존 Project/Session/Workspace 방향을 유지하면서 프로젝트 단위 제어 UX를 앱 기반 desktop과 mobile layout으로 정리한다. Desktop은 mobile에서 가능한 프로젝트 관리 기능을 포함하고 code-server와 Agent Chat을 다루는 프로젝트 제어 확장 표면으로 정리한다. +Flutter-first 클라이언트 구조 위에서 `apps/client` 모듈, web/mobile 공통 Dart bootstrap, proto-socket, host integration 표준을 먼저 정리한다. 이후 기존 Project/Session/Workspace 방향을 유지하면서 프로젝트 단위 제어 UX를 앱 기반 desktop과 mobile layout으로 정리한다. Desktop은 mobile에서 가능한 프로젝트 관리 기능을 포함하고 code-server와 Agent Chat을 다루는 프로젝트 제어 확장 표면으로 정리한다. ## Milestone 흐름 완료된 Milestone은 archive 경로를 가리키고, 검토중, 진행중, 계획 또는 보류 Milestone은 이 Phase 하위 `milestones/` 경로를 가리킨다. 완료, 검토중, 진행중, 계획 순서로 두어 아래로 갈수록 미래 작업에 가까워지게 정렬한다. +- [진행중] Client Integration Standardization + - 경로: `agent-ops/roadmap/phase/project-workspace-management-ux/milestones/client-integration-standardization.md` + - 요약: NomadCode client를 기준으로 `apps/client` 모듈명, Web + Android 우선 bootstrap, proto-socket, Mattermost push host integration, cloning handoff를 표준화한다. + - [계획] Project Workspace Management UX - 경로: `agent-ops/roadmap/phase/project-workspace-management-ux/milestones/project-workspace-management-ux.md` - 요약: 프로젝트 단위 제어 UX의 desktop/mobile 역할, parity 기준, IOP/task 결과 표시 기준을 정리한다. @@ -22,3 +26,4 @@ Flutter-first 클라이언트 구조 위에서 기존 Project/Session/Workspace - 기존 Project/Session/Workspace 방향을 대체하지 않고 보강한다. - IOP 내부 모델 라우팅, 외부 agent 추가 흐름, 상세 화면/API/DB schema 확정은 이 Phase의 결정 전 범위에서 제외한다. - UX 책임 경계와 우선순위는 사용자 결정이 필요한 잠금 항목으로 유지한다. +- `../iop`와 `../alt`로 복제할 내용은 제품 feature 전체가 아니라 client skeleton, integration boundary, bootstrap convention, 문서화된 handoff 기준으로 제한한다. diff --git a/agent-ops/roadmap/phase/project-workspace-management-ux/milestones/client-integration-standardization.md b/agent-ops/roadmap/phase/project-workspace-management-ux/milestones/client-integration-standardization.md new file mode 100644 index 0000000..278a732 --- /dev/null +++ b/agent-ops/roadmap/phase/project-workspace-management-ux/milestones/client-integration-standardization.md @@ -0,0 +1,94 @@ +# Milestone: Client Integration Standardization + +## 위치 + +- Roadmap: `agent-ops/roadmap/ROADMAP.md` +- Phase: `agent-ops/roadmap/phase/project-workspace-management-ux/PHASE.md` + +## 목표 + +NomadCode Flutter client를 `../iop`와 `../alt`에 복제 가능한 기준 구현으로 정리한다. `apps/client` 모듈명, Web + Android 우선 Dart bootstrap, proto-socket, Mattermost push host integration, cloning handoff 문서를 먼저 표준화하고 iOS는 같은 Dart API 위에 확장 가능한 후속 대상으로 남긴다. + +## 상태 + +[진행중] + +## 구현 잠금 + +- 상태: 해제 +- 결정 필요: 없음 + +## 범위 + +- `apps/mobile`을 `apps/client` 기준 구조로 정리하거나 동등한 client 모듈 표준을 명확히 문서화 +- web/mobile 공통 Dart bootstrap 계층 정리 +- proto-socket Dart client 설정, connection bootstrap, 환경 주입 기준 정리 +- Mattermost push host integration 표준화 +- Firebase host 설정과 plugin 초기화 책임 경계 정리 +- Web과 Android를 1차 target으로 검증하고 iOS 확장 지점을 명확히 문서화 +- `../iop`, `../alt`로 복제할 client skeleton, integration boundary, handoff 체크리스트 작성 + +## 필수 기능 + +### Epic: [client-standard] Client module standard + +NomadCode client를 다른 프로젝트가 따라올 수 있는 구조 기준으로 정리한다. + +- [ ] [module-name] Flutter host 모듈명을 `client` 기준으로 정리하고 package/app 표시 이름의 프로젝트별 유지 기준을 문서화한다. +- [ ] [bootstrap] web/mobile 공통 Dart bootstrap과 platform-specific 초기화 guard를 정의한다. +- [ ] [folder-layout] `src/app`, `src/integrations`, `src/features` 기준의 client skeleton을 정리한다. + +### Epic: [integration-standard] Integration boundaries + +proto-socket과 Mattermost push를 같은 client integration 방식으로 소비하도록 표준화한다. + +- [ ] [proto-socket] proto-socket Dart dependency, endpoint configuration, connection lifecycle 기준을 client integration으로 정리한다. +- [ ] [mattermost-push] Mattermost push는 plugin이 runtime을 소유하고 host는 Firebase config, auth/token/signing key, routing callback만 소유하도록 정리한다. +- [ ] [platform-targets] Web과 Android를 1차 target으로 검증하고 iOS는 동일 Dart API 위의 후속 native 확장 지점으로 남긴다. + +### Epic: [clone-handoff] Clone handoff + +`../iop`와 `../alt`가 같은 수준으로 따라올 수 있도록 복제 단위와 차이를 문서화한다. + +- [ ] [clone-notes] `../iop`와 `../alt`에 전달할 cloning checklist와 프로젝트별 치환 항목을 작성한다. +- [ ] [iop-naming] `../iop`에서는 Portal 명칭을 강조하지 않고 `client` 모듈과 IOP product surface 기준으로 정리한다. +- [ ] [alt-alignment] `../alt`의 기존 `apps/client` 구조와 Riverpod/go_router 경계를 유지하면서 공통 integration skeleton만 맞추는 기준을 작성한다. + +## 완료 기준 + +- [ ] NomadCode Flutter host가 client 표준 구조와 명명 기준을 따른다. +- [ ] Web build와 Android integration이 같은 Dart bootstrap 기준에서 설명되고 검증된다. +- [ ] proto-socket과 Mattermost push integration의 책임 경계가 host/plugin/server 사이에서 충돌 없이 설명된다. +- [ ] iOS가 Android-only 예외가 아니라 동일 Dart API 위의 후속 확장 대상으로 문서화된다. +- [ ] `../iop`와 `../alt`에 클로닝할 파일/구조/설정/문서 체크리스트가 남아 있다. +- [ ] `apps/client` 또는 현행 client host에서 `flutter test`와 필요한 analyze/build 검증이 통과하거나 환경 제약이 명확히 기록된다. + +## 완료 리뷰 + +- 상태: 없음 +- 요청일: 없음 +- 완료 근거: 없음 +- 리뷰 필요: + - [ ] 사용자가 완료 결과를 확인했다 + - [ ] archive 이동을 승인했다 +- 리뷰 코멘트: 없음 + +## 범위 제외 + +- `../iop`, `../alt` 코드 변경 직접 반영 +- Mattermost push plugin 자체의 native runtime 대규모 재작성 +- iOS native push full implementation +- 각 프로젝트의 제품별 feature 화면을 동일하게 복제 +- IOP 내부 모델 라우팅, ALT quant feature, NomadCode project UX 상세 화면 확정 + +## 작업 컨텍스트 + +- 관련 경로: `apps/mobile/`, `packages/contracts/`, `docs/`, `README.md`, `../mattermost-push-plugin/` +- 클로닝 대상: `../iop/apps/client`, `../alt/apps/client` +- 표준선(선택): repo별 Flutter host 경로는 `apps/client`로 맞추고, Dart package/app 표시 이름은 프로젝트 정체성을 유지한다. +- 표준선(선택): `mattermost_push_plugin`은 별도 plugin 이름을 유지하고, host app은 plugin consumer 책임만 갖는다. +- 표준선(선택): Web과 Android를 1차 target으로 두며, iOS는 같은 Dart API와 integration boundary 위에서 후속 native implementation으로 확장한다. +- 표준선(선택): `../iop`는 Portal 명칭을 강조하지 않고 IOP client/product surface로 정리한다. +- 선행 작업: Mattermost Push Plugin Extraction +- 후속 작업: Project Workspace Management UX, External Integration +- 확인 필요: 없음