# Milestone: Project Workspace Management UX

## 위치

- Roadmap: `agent-roadmap/ROADMAP.md`
- Phase: `agent-roadmap/phase/project-workspace-management-ux/PHASE.md`

## 목표

Flutter-first 클라이언트 구조 위에서 기존 Project/Session/Workspace 방향을 유지하면서 프로젝트 단위 제어 UX를 앱 기반 desktop과 mobile layout으로 정리한다. Mobile에서 가능한 프로젝트 관리 기능은 desktop에도 포함하고, desktop은 프로젝트 단위 확장 표면을 code-server와 Agent Chat을 다루는 앱 shell로 정리한다.

## 상태

[계획]

## 구현 잠금

- 상태: 잠금
- 결정 필요:
  - [ ] 프로젝트 단위 제어 화면의 공통 기능 목록과 우선순위를 결정한다.
  - [ ] Flutter 앱의 desktop layout, desktop project window, mobile top-tab의 역할 경계를 결정한다.
  - [ ] IOP OpenAI API Responses-compatible 호출 결과, task 상태, 파일 변경 결과를 UX에 투영하는 최소 기준을 결정한다.

## 범위

- 프로젝트 단위 제어 UX의 공통 기능 정리
- Flutter 앱 desktop 프로젝트 탭 구조 정리
- Flutter 앱 desktop 프로젝트 단위 새창 구조 정리
- mobile 프로젝트 관리 상단탭 구조 정리
- code-server, Agent Chat, task/execution state, 파일 변경 결과, diff/branch/commit/PR 흐름을 프로젝트 제어 화면에 배치하는 기준 정리
- NomadCode Project/Session/Workspace 상태와 IOP 호출 결과를 사용자에게 보여주는 경계 정리'

## 기능

### Epic: [workspace-ux] Project workspace UX definition

Flutter-first 앱에서 project/session/workspace 제어 표면과 desktop/mobile 역할 경계를 정의한다.

- [ ] [common-capability] 프로젝트 단위 제어 화면의 공통 capability를 정의한다. 검증: 기존 Project/Session/Workspace 방향을 대체하지 않고 보강하는 Milestone으로 읽힌다.
- [ ] [mobile-tabs] mobile 상단탭 기반 프로젝트 관리 구조를 정의한다. 검증: mobile top-tab 역할이 desktop layout, desktop project window와 충돌 없이 설명된다.
- [ ] [desktop-tabs] Flutter 앱 desktop 탭 기반 프로젝트 관리 구조를 정의한다. 검증: desktop layout 역할이 mobile top-tab, desktop project window와 충돌 없이 설명된다.
- [ ] [desktop-window] Flutter 앱 desktop 프로젝트 단위 새창을 code-server와 Agent Chat을 포함한 프로젝트 제어 확장 표면으로 정의한다. 검증: 프로젝트 단위 새창이 단순 code-server 링크가 아니라 프로젝트 제어 확장 표면임이 문서화되어 있다.
- [ ] [parity] desktop은 mobile에서 가능한 프로젝트 관리 기능을 모두 포함한다는 parity 기준을 정한다. 검증: mobile에서 가능한 프로젝트 관리 기능이 desktop에도 포함된다는 기준이 문서화되어 있다.
- [ ] [iop-result-ux] IOP OpenAI API Responses-compatible 호출 결과, task 상태, 파일 변경 결과를 UX에 표시하는 기준을 정한다. 검증: IOP 실행 결과, task 상태, 파일 변경 결과가 NomadCode UX에서 어떻게 보이는지 최소 기준이 정리되어 있다.

## 완료 리뷰

- 상태: 없음
- 요청일: 없음
- 완료 근거: 없음
- 리뷰 필요:
  - [ ] 사용자가 완료 결과를 확인했다
  - [ ] archive 이동을 승인했다
- 리뷰 코멘트: 없음

## 범위 제외

- IOP 내부 모델 라우팅, 모델 프로파일, RAG, MCP, output validation 구현
- IOP A2A 기반 외부 agent 추가 흐름
- OpenCode, Aider, Claude Code, Gemini CLI, Codex CLI 직접 대체 구현
- 상세 화면 컴포넌트, API, DB schema, 파일 구조 확정

## 작업 컨텍스트

- 관련 경로: `apps/client/`, `packages/contracts/`, `services/core/`
- 전환 참고 경로: [Legacy/Retired] `apps/web/` (제거됨)
- 선행 작업: Flutter-first Client Consolidation, Client Integration Standardization, External Integration
- 후속 작업: 확인 필요
- 현재 지점: Workbench Provider Slot Composition을 최우선 진행중 마일스톤으로 전환하면서 이 마일스톤은 계획 후보로 내려둔다. `구현 잠금`은 유지되며, 프로젝트 단위 제어 화면의 공통 기능/우선순위, desktop/mobile 역할 경계, IOP/task 결과 UX 투영 기준 결정이 선행되어야 한다.
- 확인 필요: `구현 잠금`의 결정 필요 항목 참고.
