diff --git a/agent-ops/roadmap/ROADMAP.md b/agent-ops/roadmap/ROADMAP.md index e1c2087..2150053 100644 --- a/agent-ops/roadmap/ROADMAP.md +++ b/agent-ops/roadmap/ROADMAP.md @@ -2,21 +2,26 @@ ## 전체 목표 -NomadCode는 모바일 앱, 웹 콘솔, core 서비스, 공유 계약, agent-operation 규칙을 하나의 원레포로 묶어 AI-assisted development workflow를 조율하는 프로젝트다. +NomadCode는 Flutter 기반 앱, core 서비스, 공유 계약, agent-operation 규칙을 하나의 원레포로 묶어 AI-assisted development workflow를 조율하는 프로젝트다. -현재 로드맵은 기존 `services/core/README.md`의 단계별 다음 작업을 `agent-ops/roadmap/` 구조로 옮긴 것이다. 범위는 우선 core 백엔드 오케스트레이션의 서버 골격을 바탕으로 Plane과의 실제 통신 기반을 안정화하고, 그 뒤에 Plane/Jira 같은 여러 work item provider를 adapter로 붙일 수 있는 task pipeline과 workflow 안정화를 설계하는 데 둔다. IOP 연결은 NomadCode가 직접 모델 런타임을 소유하지 않고 IOP의 외부 입력 표면을 호출하는 방향으로 정리한다. +현재 로드맵은 기존 `services/core/README.md`의 단계별 다음 작업을 `agent-ops/roadmap/` 구조로 옮긴 뒤, 클라이언트 전략을 Flutter-first로 재정렬한 것이다. 우선 React/Vite 웹 콘솔을 장기 제품 UI 경로에서 걷어내고 Flutter 앱을 제품 UI의 기준 구현으로 세운다. 이후 core 백엔드 오케스트레이션의 서버 골격을 바탕으로 Plane과의 실제 통신 기반, provider-neutral task pipeline, workflow 안정화, 외부 통합을 이어간다. IOP 연결은 NomadCode가 직접 모델 런타임을 소유하지 않고 IOP의 외부 입력 표면을 호출하는 방향으로 정리한다. ## Phase 흐름 +- Client Platform Consolidation: React/Vite 웹 콘솔을 제품 UI 경로에서 걷어내고 Flutter 앱을 NomadCode 클라이언트 source of truth로 정리한다. - Server Skeleton: 서버 실행 골격, task 저장 구조, 비동기 job 실행, Adapter stub을 구성한다. - Plane Communication Foundation: Plane self-hosted 인스턴스와 통신하기 위한 인증, API client, 외부 참조 저장, smoke 검증 토대를 만든다. - Work Item Provider Pipeline Design: Plane/Jira 등 work item provider와 core task 사이의 생성, enqueue, 상태 투영, 결과 발행 계약을 provider-neutral하게 정리한다. - Workflow Core: Plane task pipeline 설계가 정리된 뒤 상태 전이, retry, timeout, notification event의 기본 구조를 안정화한다. - External Integration: Plane 통신 토대와 workflow core 이후 Mattermost, Agent Integrator, IOP OpenAI API Responses-compatible 호출을 실제 통합 흐름으로 확장한다. -- Project Workspace Management UX: 기존 Project/Session/Workspace 방향을 유지하면서 desktop과 mobile의 프로젝트 단위 제어 화면을 정리한다. +- Project Workspace Management UX: Flutter-first 클라이언트 구조 위에서 Project/Session/Workspace 방향을 유지하면서 앱 기반 프로젝트 단위 제어 화면을 정리한다. ## Milestone 목록 +### Client Platform Consolidation + +- [Flutter-first Client Consolidation](milestones/flutter-first-client-consolidation.md) - 상태: 계획; 목표: Flutter 앱을 제품 UI 기준 구현으로 세우고 React/Vite 웹 콘솔을 장기 제품 경로에서 걷어낸다. + ### Work Item Provider Pipeline Design - [Work Item Provider Pipeline Design](milestones/plane-task-pipeline-design.md) - 상태: 완료; 목표: Plane/Jira 등 work item provider와 core task 사이의 생성, enqueue, 상태 투영, 결과 발행 계약을 provider-neutral하게 정리한다. @@ -31,7 +36,7 @@ NomadCode는 모바일 앱, 웹 콘솔, core 서비스, 공유 계약, agent-ope ### Project Workspace Management UX -- [Project Workspace Management UX](milestones/project-workspace-management-ux.md) - 상태: 계획; 목표: 프로젝트 단위 제어 UX를 desktop tab/new-window와 mobile top-tab 기준으로 정리한다. +- [Project Workspace Management UX](milestones/project-workspace-management-ux.md) - 상태: 계획; 목표: Flutter-first 클라이언트 구조 위에서 프로젝트 단위 제어 UX를 앱 기반 desktop/mobile layout 기준으로 정리한다. ## 아카이브 Milestone 요약 diff --git a/agent-ops/roadmap/current.md b/agent-ops/roadmap/current.md index 95a9b21..fc2b299 100644 --- a/agent-ops/roadmap/current.md +++ b/agent-ops/roadmap/current.md @@ -2,7 +2,7 @@ ## 활성 Milestone -- Workflow Core: agent-ops/roadmap/milestones/workflow-core.md +- Flutter-first Client Consolidation: agent-ops/roadmap/milestones/flutter-first-client-consolidation.md ## 선택 규칙 diff --git a/agent-ops/roadmap/milestones/flutter-first-client-consolidation.md b/agent-ops/roadmap/milestones/flutter-first-client-consolidation.md new file mode 100644 index 0000000..24ced9b --- /dev/null +++ b/agent-ops/roadmap/milestones/flutter-first-client-consolidation.md @@ -0,0 +1,61 @@ +# Flutter-first Client Consolidation + +## 목표 + +NomadCode의 제품 UI source of truth를 Flutter 앱으로 정하고, React/Vite 웹 콘솔을 장기 제품 경로에서 걷어낸다. 모바일, 데스크톱, 필요 시 Flutter Web까지 같은 앱 구조로 확장할 수 있게 클라이언트 경계와 repo entrypoint를 정리한다. + +## 단계 + +Client Platform Consolidation + +## 상태 + +계획 + +## 구현 잠금 + +- 상태: 해제 +- 결정 필요: 없음 + +## 범위 + +- Flutter 앱을 NomadCode 제품 UI의 기준 구현으로 정리 +- React/Vite 웹 콘솔 scaffold를 제거하거나 제품 경로 밖의 임시/아카이브 표면으로 격리 +- root dev/test/lint/build entrypoint에서 React web 의존을 제거하거나 명확히 비활성화 +- README, docs, roadmap, domain rule에서 web/app 책임 경계를 Flutter-first 기준으로 갱신 +- code-server는 React wrapper를 거치지 않고 Flutter 앱에서 직접 열거나 embed하는 표면으로 정리 +- 공통 계약은 UI 코드 공유가 아니라 `services/core` API와 `packages/contracts`를 기준으로 유지 + +## 필수 기능 + +- [ ] [ui-source] Flutter 앱을 제품 UI source of truth로 선언하고 React web을 기준 구현에서 제외한다. +- [ ] [react-retire] `apps/web` React/Vite scaffold의 제거, 격리, 또는 폐기 경로를 정리한다. +- [ ] [entrypoints] root `bin/*` 개발/검증 entrypoint가 Flutter-first 클라이언트 구조를 반영하도록 한다. +- [ ] [docs-rules] README, docs, roadmap, domain rule의 web/app 설명을 Flutter-first 기준으로 맞춘다. +- [ ] [codeserver-direct] code-server, workspace, diff/terminal/editor 표면은 React wrapper 없이 Flutter 앱에서 직접 연결하는 기준을 정한다. +- [ ] [contract-boundary] Flutter 앱과 core가 공유할 API/schema 경계를 `packages/contracts` 후보로 정리한다. + +## 완료 기준 + +- [ ] 로드맵과 프로젝트 문서에서 React/Vite 웹 콘솔이 장기 제품 UI 기준 구현으로 설명되지 않는다. +- [ ] Flutter 앱이 모바일/데스크톱/선택적 web target의 기준 클라이언트로 설명된다. +- [ ] `apps/web`의 처리 방침이 삭제, 격리, 보류 중 하나로 코드와 문서에서 일관된다. +- [ ] root `bin/test`, `bin/lint`, `bin/build`, `bin/dev`가 React web 제거 이후의 검증 흐름과 충돌하지 않는다. +- [ ] code-server를 React로 감싸고 다시 Flutter로 감싸는 구조를 만들지 않는다는 기준이 문서화되어 있다. +- [ ] 후속 Project Workspace Management UX가 Flutter-first 클라이언트 구조 위에서 진행될 수 있다. + +## 범위 제외 + +- core workflow 상태 전이, retry, timeout, notification event 구현 +- IOP 내부 모델 라우팅, RAG, MCP, output validation 구현 +- code-server, Monaco, terminal 자체를 Flutter native widget으로 재구현 +- App Store, Play Store 배포와 심사 대응 +- push notification 기능 재설계 + +## 작업 컨텍스트 + +- 관련 경로: `apps/mobile/`, `apps/web/`, `bin/`, `README.md`, `docs/`, `agent-ops/rules/project/`, `agent-ops/roadmap/`, `packages/contracts/` +- 표준선(선택): 앱은 필수 제품 표면이며 Flutter가 클라이언트 source of truth다. React/Vite web은 장기 기준 구현이 아니고, 필요한 웹 타깃은 Flutter Web 또는 Flutter 앱에서 직접 연결하는 웹 surface로 다룬다. +- 선행 작업: 없음 +- 후속 작업: Project Workspace Management UX, Workflow Core 이후의 사용자-facing task state UX +- 확인 필요: 없음 diff --git a/agent-ops/roadmap/milestones/project-workspace-management-ux.md b/agent-ops/roadmap/milestones/project-workspace-management-ux.md index 7df972f..081a434 100644 --- a/agent-ops/roadmap/milestones/project-workspace-management-ux.md +++ b/agent-ops/roadmap/milestones/project-workspace-management-ux.md @@ -2,7 +2,7 @@ ## 목표 -기존 Project/Session/Workspace 방향을 유지하면서 프로젝트 단위 제어 UX를 desktop과 mobile에서 정리한다. Mobile에서 가능한 프로젝트 관리 기능은 desktop에도 포함하고, desktop은 탭과 프로젝트 단위 새창을 확장 표면으로 추가한다. +Flutter-first 클라이언트 구조 위에서 기존 Project/Session/Workspace 방향을 유지하면서 프로젝트 단위 제어 UX를 앱 기반 desktop과 mobile layout으로 정리한다. Mobile에서 가능한 프로젝트 관리 기능은 desktop에도 포함하고, desktop은 프로젝트 단위 확장 표면을 code-server와 Agent Chat을 다루는 앱 shell로 정리한다. ## 단계 @@ -17,14 +17,14 @@ Project Workspace Management UX - 상태: 잠금 - 결정 필요: - [ ] 프로젝트 단위 제어 화면의 공통 기능 목록과 우선순위를 결정한다. - - [ ] desktop tab, desktop project window, mobile top-tab의 역할 경계를 결정한다. + - [ ] Flutter 앱의 desktop layout, desktop project window, mobile top-tab의 역할 경계를 결정한다. - [ ] IOP OpenAI API Responses-compatible 호출 결과, task 상태, 파일 변경 결과를 UX에 투영하는 최소 기준을 결정한다. ## 범위 - 프로젝트 단위 제어 UX의 공통 기능 정리 -- desktop 프로젝트 탭 구조 정리 -- desktop 프로젝트 단위 새창 구조 정리 +- Flutter 앱 desktop 프로젝트 탭 구조 정리 +- Flutter 앱 desktop 프로젝트 단위 새창 구조 정리 - mobile 프로젝트 관리 상단탭 구조 정리 - code-server, Agent Chat, task/execution state, 파일 변경 결과, diff/branch/commit/PR 흐름을 프로젝트 제어 화면에 배치하는 기준 정리 - NomadCode Project/Session/Workspace 상태와 IOP 호출 결과를 사용자에게 보여주는 경계 정리 @@ -33,14 +33,14 @@ Project Workspace Management UX - [ ] [common-capability] 프로젝트 단위 제어 화면의 공통 capability를 정의한다. - [ ] [mobile-tabs] mobile 상단탭 기반 프로젝트 관리 구조를 정의한다. -- [ ] [desktop-tabs] desktop 탭 기반 프로젝트 관리 구조를 정의한다. -- [ ] [desktop-window] desktop 프로젝트 단위 새창을 code-server와 Agent Chat을 포함한 프로젝트 제어 확장 표면으로 정의한다. +- [ ] [desktop-tabs] Flutter 앱 desktop 탭 기반 프로젝트 관리 구조를 정의한다. +- [ ] [desktop-window] Flutter 앱 desktop 프로젝트 단위 새창을 code-server와 Agent Chat을 포함한 프로젝트 제어 확장 표면으로 정의한다. - [ ] [parity] desktop은 mobile에서 가능한 프로젝트 관리 기능을 모두 포함한다는 parity 기준을 정한다. - [ ] [iop-result-ux] IOP OpenAI API Responses-compatible 호출 결과, task 상태, 파일 변경 결과를 UX에 표시하는 기준을 정한다. ## 완료 기준 -- [ ] 프로젝트 관리 UX에서 desktop tab, desktop project window, mobile top-tab의 역할이 충돌 없이 설명된다. +- [ ] 프로젝트 관리 UX에서 Flutter 앱 desktop layout, desktop project window, mobile top-tab의 역할이 충돌 없이 설명된다. - [ ] mobile에서 가능한 프로젝트 관리 기능이 desktop에도 포함된다는 기준이 문서화되어 있다. - [ ] 프로젝트 단위 새창이 단순 code-server 링크가 아니라 프로젝트 제어 확장 표면임이 문서화되어 있다. - [ ] IOP 실행 결과, task 상태, 파일 변경 결과가 NomadCode UX에서 어떻게 보이는지 최소 기준이 정리되어 있다. @@ -55,7 +55,8 @@ Project Workspace Management UX ## 작업 컨텍스트 -- 관련 경로: `apps/web/`, `apps/mobile/`, `packages/contracts/`, `services/core/` -- 선행 작업: External Integration +- 관련 경로: `apps/mobile/`, `packages/contracts/`, `services/core/` +- 전환 참고 경로: `apps/web/` +- 선행 작업: Flutter-first Client Consolidation, External Integration - 후속 작업: 확인 필요 - 확인 필요: `구현 잠금`의 결정 필요 항목 참고.