update roadmap and add project-workspace-management-ux milestone

This commit is contained in:
toki 2026-05-23 23:38:07 +09:00
parent 0e3b4a46a1
commit 339088e0cd
8 changed files with 155 additions and 16 deletions

View file

@ -4,15 +4,16 @@
NomadCode는 모바일 앱, 웹 콘솔, 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 안정화를 설계하는 데 둔다.
현재 로드맵은 기존 `services/core/README.md`의 단계별 다음 작업을 `agent-ops/roadmap/` 구조로 옮긴 것이다. 범위는 우선 core 백엔드 오케스트레이션의 서버 골격을 바탕으로 Plane과의 실제 통신 기반을 안정화하고, 그 뒤에 Plane/Jira 같은 여러 work item provider를 adapter로 붙일 수 있는 task pipeline과 workflow 안정화를 설계하는 데 둔다. IOP 연결은 NomadCode가 직접 모델 런타임을 소유하지 않고 IOP의 외부 입력 표면을 호출하는 방향으로 정리한다.
## Phase 흐름
- Server Skeleton: 서버 실행 골격, task 저장 구조, 로컬 모델 호출 기반 비동기 job 실행, Adapter stub을 구성한다.
- 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 연결을 실제 통합 흐름으로 확장한다.
- External Integration: Plane 통신 토대와 workflow core 이후 Mattermost, Agent Integrator, IOP OpenAI API Responses-compatible 호출을 실제 통합 흐름으로 확장한다.
- Project Workspace Management UX: 기존 Project/Session/Workspace 방향을 유지하면서 desktop과 mobile의 프로젝트 단위 제어 화면을 정리한다.
## Milestone 목록
@ -34,7 +35,11 @@ NomadCode는 모바일 앱, 웹 콘솔, core 서비스, 공유 계약, agent-ope
### External Integration
- [External Integration](milestones/external-integration.md) - 상태: 계획; 목표: Plane 확장, Mattermost, Agent Integrator, IOP 연결을 실제 통합 흐름으로 확장한다.
- [External Integration](milestones/external-integration.md) - 상태: 계획; 목표: Plane 확장, Mattermost, Agent Integrator, IOP OpenAI API Responses-compatible 호출을 실제 통합 흐름으로 확장한다.
### Project Workspace Management UX
- [Project Workspace Management UX](milestones/project-workspace-management-ux.md) - 상태: 계획; 목표: 프로젝트 단위 제어 UX를 desktop tab/new-window와 mobile top-tab 기준으로 정리한다.
## 로딩 정책
@ -46,3 +51,5 @@ NomadCode는 모바일 앱, 웹 콘솔, core 서비스, 공유 계약, agent-ope
- 활성 Milestone 밖의 작업이면 이 문서의 Milestone 목록을 확인하고 사용자에게 진행 또는 전환 여부를 확인한다.
- 이 문서는 로드맵 생성/갱신, Phase 전환, Milestone 추가/수정 요청이 있을 때만 읽는다.
- 상세 작업과 완료 기준은 각 Milestone 문서의 체크리스트로 관리한다.
- 선택된 Milestone의 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 코드 구현, `agent-task` 구현 계획 생성, 세부 API/파일 구조 확정을 시작하지 않는다.
- `구현 잠금`이 없거나 잠긴 Milestone은 사용자가 "진행"을 요청해도 우회하지 않고, 먼저 Milestone 문서의 구현 구체화와 잠금 해제를 사용자에게 요청한다.

View file

@ -10,3 +10,4 @@
- 요청 내용, 현재 브랜치, 변경 파일, 관련 코드 경로를 보고 가장 관련 있는 Milestone을 선택하고 같은 세션에서 1회 읽는다.
- 활성 Milestone 둘 이상에 걸치면 필요한 Milestone 문서를 모두 읽고 작업 범위를 좁힌다.
- 활성 Milestone 밖의 작업이면 `agent-ops/roadmap/ROADMAP.md`의 Milestone 목록을 확인하고 사용자에게 진행 또는 전환 여부를 확인한다.
- 선택된 Milestone의 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 구현이나 구현 계획을 시작하지 않고, 먼저 Milestone 구체화 업데이트와 잠금 해제를 사용자에게 요청한다.

View file

@ -2,7 +2,7 @@
## 목표
Work Item Provider Pipeline Design과 workflow core 이후 남은 Plane/Jira 확장, Mattermost, Agent Integrator, IOP 연결을 stub 또는 호환 호출 경로에서 실제 통합 흐름으로 확장한다.
Work Item Provider Pipeline Design과 workflow core 이후 남은 Plane/Jira 확장, Mattermost, Agent Integrator, IOP 연결을 stub 또는 호환 호출 경로에서 실제 통합 흐름으로 확장한다. IOP 호출은 현재 단계에서 OpenAI API Responses-compatible 경로를 기본으로 하며, NomadCode가 직접 모델 런타임을 호출하거나 IOP native protocol을 외부 호출 표면으로 사용하지 않는다.
## 단계
@ -12,15 +12,29 @@ External Integration
계획
## 구현 잠금
- 상태: 잠금
- 이유: IOP 호출 경계, Agent Integrator 대체 여부, provider 결과 발행 정책이 아직 구현 가능한 수준으로 확정되지 않았다.
- 해제 조건:
- [ ] IOP OpenAI API Responses-compatible 호출 요청/응답 계약과 설정 키가 문서화됨
- [ ] NomadCode가 직접 모델 런타임을 호출하지 않는 전환 기준이 문서화됨
- [ ] Mattermost, Plane/Jira 결과 발행, Agent Integrator 대체 여부의 책임 경계가 정리됨
- [ ] 사용자가 이 Milestone의 구현 구체화와 잠금 해제를 명시적으로 승인함
- 잠금 중 금지:
- 코드 구현 또는 `agent-task` 구현 계획 생성
- API/DB/package/file 구조를 추측해 확정
- 세부 구현 체크리스트를 완료 기준처럼 작성
## 범위
- Plane issue 생성 / comment / status update 확장
- Jira issue 조회 / comment / status transition adapter 구현
- Mattermost 메시지 발송 구현
- Agent Integrator 호출 구조 추가
- IOP 호출 구조 추가
- IOP OpenAI-compatible API 경로 정리
- IOP A2A JSON-RPC 경로 정리
- IOP OpenAI API Responses-compatible 호출 구조 추가
- IOP 외부 호출 표면은 OpenAI API 호환과 A2A만 전제하되, 현재 단계의 기본 호출은 OpenAI API Responses-compatible 경로
- NomadCode core가 직접 모델 endpoint 또는 Ollama fallback을 기본 실행 경로로 전제하지 않도록 전환 기준 정리
## 필수 기능
@ -28,8 +42,8 @@ External Integration
- [ ] Jira issue 조회, comment, status transition adapter 구현
- [ ] Mattermost 메시지 발송 adapter 구현
- [ ] Agent Integrator 호출 경계 정의
- [ ] IOP OpenAI-compatible API를 단순 모델/chat completion 호환 호출에 사용
- [ ] IOP A2A JSON-RPC 경로를 외부 agent 작업 위임과 task 상태, artifact, cancel 흐름 공유에 사용
- [ ] IOP OpenAI API Responses-compatible 경로를 NomadCode의 기본 실행 호출 경로로 정리
- [ ] direct model endpoint / Ollama fallback 표현과 설정을 IOP 경유 호출 기준으로 재분류
## 완료 기준
@ -37,7 +51,8 @@ External Integration
- [ ] core가 Jira에 issue 조회, comment, status transition을 요청할 수 있다.
- [ ] core가 Mattermost에 메시지를 발송할 수 있다.
- [ ] Agent Integrator 또는 그 대체 연결 지점이 명확히 정의되어 있다.
- [ ] IOP compatible 호출 경로가 core workflow와 연결된다.
- [ ] IOP OpenAI API Responses-compatible 호출 경로가 core workflow와 연결된다.
- [ ] NomadCode의 기본 실행 경로가 직접 모델 호출이 아니라 IOP 경유 호출임이 로드맵과 운영 문서에서 일관되게 읽힌다.
- [ ] 외부 provider별 세부 구현이 adapter 경계 밖으로 새지 않는다.
## 범위 제외
@ -46,11 +61,14 @@ External Integration
- MCP 서버
- Web Agent UI
- Flutter 앱 기능 구현
- IOP native protocol의 상세 구현은 별도 확정 전까지 제외한다.
- IOP A2A JSON-RPC 기반 외부 agent 추가, task 상태, artifact, cancel 흐름 공유
- NomadCode가 IOP native protocol을 직접 외부 호출 경로로 사용하는 것
- IOP 내부 모델 라우팅, 모델 프로파일, RAG, MCP, output validation, fallback 정책 구현
## 작업 컨텍스트
- 이전 출처: `services/core/README.md``## 단계별 다음 작업`
- 주요 작업 영역: `services/core/internal/adapters/`, `services/core/internal/scheduler/`, `services/core/internal/workflow/`
- 선행 작업: Work Item Provider Pipeline Design, Workflow Core
- 확인 필요: IOP native protocol과 Agent Integrator의 최종 계약은 구현 전 별도 확인이 필요하다.
- 후속 작업: Project Workspace Management UX
- 확인 필요: IOP OpenAI API Responses-compatible 요청/응답 계약, Agent Integrator의 유지/대체 여부, A2A 도입 시점은 구현 전 별도 확인이 필요하다.

View file

@ -12,6 +12,17 @@ Work Item Provider Pipeline Design
진행 중
## 구현 잠금
- 상태: 해제
- 이유: 이 Milestone은 이미 진행 중이며 provider-neutral pipeline 경계, 상태/projection 결정, 구현 검증 근거가 작업 컨텍스트에 누적되어 있다. 남은 작업은 같은 범위 안의 계약 보강과 구현 정리로 이어진다.
- 해제 조건:
- [x] provider-neutral 생성, adapter interface, board state와 agent 실행 상태 분리 방향이 문서화되어 있다.
- [x] 현재 구현 상태와 남은 결정 항목이 작업 컨텍스트에 정리되어 있다.
- [x] 사용자가 현재 활성 Milestone의 잠금 보정을 승인했다.
- 잠금 중 금지:
- 해당 없음
## 범위
- Plane/Jira 같은 work item provider에서 core task를 생성하고 연결하는 entrypoint 후보 정리

View file

@ -12,6 +12,17 @@ Plane Communication Foundation
완료
## 구현 잠금
- 상태: 해제
- 이유: 완료된 Milestone의 기록 보정이며, 새 구현 작업을 시작하는 문서가 아니다.
- 해제 조건:
- [x] Plane 통신 기반과 smoke 검증 결과가 문서화되어 있다.
- [x] 후속 task pipeline 설계는 Work Item Provider Pipeline Design에서 다룬다.
- [x] 사용자가 기존 마일스톤 잠금 보정을 승인했다.
- 잠금 중 금지:
- 해당 없음
## 범위
- Plane self-hosted 인스턴스 연결 정보와 API 계약 확인

View file

@ -0,0 +1,67 @@
# Project Workspace Management UX
## 목표
기존 Project/Session/Workspace 방향을 유지하면서 프로젝트 단위 제어 UX를 desktop과 mobile에서 정리한다. Mobile에서 가능한 프로젝트 관리 기능은 desktop에도 포함하고, desktop은 탭과 프로젝트 단위 새창을 확장 표면으로 추가한다.
## 단계
Project Workspace Management UX
## 상태
계획
## 구현 잠금
- 상태: 잠금
- 이유: 프로젝트 제어 화면의 정보 구조, desktop 새창 범위, mobile 상단탭 구조, IOP 호출 결과 표시 방식이 아직 구현 가능한 수준으로 확정되지 않았다.
- 해제 조건:
- [ ] 프로젝트 단위 제어 화면의 공통 기능 목록이 문서화됨
- [ ] desktop tab, desktop project window, mobile top-tab의 역할 경계가 문서화됨
- [ ] IOP OpenAI API Responses-compatible 호출 결과와 task 상태를 UX에 투영하는 기준이 문서화됨
- [ ] 사용자가 이 Milestone의 구현 구체화와 잠금 해제를 명시적으로 승인함
- 잠금 중 금지:
- 코드 구현 또는 `agent-task` 구현 계획 생성
- API/DB/package/file 구조를 추측해 확정
- 세부 구현 체크리스트를 완료 기준처럼 작성
## 범위
- 프로젝트 단위 제어 UX의 공통 기능 정리
- desktop 프로젝트 탭 구조 정리
- desktop 프로젝트 단위 새창 구조 정리
- mobile 프로젝트 관리 상단탭 구조 정리
- code-server, Agent Chat, task/execution state, 파일 변경 결과, diff/branch/commit/PR 흐름을 프로젝트 제어 화면에 배치하는 기준 정리
- NomadCode Project/Session/Workspace 상태와 IOP 호출 결과를 사용자에게 보여주는 경계 정리
## 필수 기능
- [ ] 프로젝트 단위 제어 화면의 공통 capability를 정의한다.
- [ ] mobile 상단탭 기반 프로젝트 관리 구조를 정의한다.
- [ ] desktop 탭 기반 프로젝트 관리 구조를 정의한다.
- [ ] desktop 프로젝트 단위 새창을 code-server와 Agent Chat을 포함한 프로젝트 제어 확장 표면으로 정의한다.
- [ ] desktop은 mobile에서 가능한 프로젝트 관리 기능을 모두 포함한다는 parity 기준을 정한다.
- [ ] IOP OpenAI API Responses-compatible 호출 결과, task 상태, 파일 변경 결과를 UX에 표시하는 기준을 정한다.
## 완료 기준
- [ ] 프로젝트 관리 UX에서 desktop tab, desktop project window, mobile top-tab의 역할이 충돌 없이 설명된다.
- [ ] mobile에서 가능한 프로젝트 관리 기능이 desktop에도 포함된다는 기준이 문서화되어 있다.
- [ ] 프로젝트 단위 새창이 단순 code-server 링크가 아니라 프로젝트 제어 확장 표면임이 문서화되어 있다.
- [ ] IOP 실행 결과, task 상태, 파일 변경 결과가 NomadCode UX에서 어떻게 보이는지 최소 기준이 정리되어 있다.
- [ ] 기존 Project/Session/Workspace 방향을 대체하지 않고 보강하는 Milestone으로 읽힌다.
## 범위 제외
- IOP 내부 모델 라우팅, 모델 프로파일, RAG, MCP, output validation 구현
- IOP A2A 기반 외부 agent 추가 흐름
- OpenCode, Aider, Claude Code, Gemini CLI, Codex CLI 직접 대체 구현
- 상세 화면 컴포넌트, API, DB schema, 파일 구조 확정
## 작업 컨텍스트
- 관련 경로: `apps/web/`, `apps/mobile/`, `packages/contracts/`, `services/core/`
- 선행 작업: External Integration
- 후속 작업: 확인 필요
- 확인 필요: 프로젝트 제어 화면의 공통 기능 목록, desktop 새창의 포함 범위, mobile 상단탭의 탭 단위

View file

@ -2,7 +2,7 @@
## 목표
core 서비스의 서버 실행 골격을 구성하고, task 저장 구조와 로컬 모델 호출 기반 비동기 job 실행 흐름을 마련한다. 외부 통합은 실제 호출 전 단계의 Adapter stub까지 둔다.
core 서비스의 서버 실행 골격을 구성하고, task 저장 구조와 비동기 job 실행 흐름을 마련한다. 외부 통합은 실제 호출 전 단계의 Adapter stub까지 둔다.
## 단계
@ -12,11 +12,21 @@ Server Skeleton
완료
## 구현 잠금
- 상태: 해제
- 이유: 완료된 Milestone의 기록 보정이며, 새 구현 작업을 시작하는 문서가 아니다.
- 해제 조건:
- [x] 완료된 서버 골격과 task 실행 경계가 로드맵에 기록되어 있다.
- [x] 후속 IOP 통합 방향은 External Integration Milestone에서 다룬다.
- 잠금 중 금지:
- 해당 없음
## 범위
- 서버 실행 골격 구성
- task 저장 구조 구성
- 로컬 모델 호출 기반 비동기 job 실행
- 비동기 job 실행
- Adapter stub 생성
## 필수 기능
@ -27,7 +37,7 @@ Server Skeleton
- [x] PostgreSQL 기반 task 저장
- [x] goose migration과 sqlc 기반 DB query 생성 구조
- [x] River 기반 task job
- [x] 모델 호출 경로
- [x] 초기 외부 실행 호출 경계
- [x] Plane Adapter stub
- [x] Mattermost Adapter stub

View file

@ -12,6 +12,20 @@ Workflow Core
계획
## 구현 잠금
- 상태: 잠금
- 이유: Workflow Core는 후속 계획 Milestone이며, task lifecycle, retry, timeout, notification event의 책임 경계와 검증 기준이 아직 구현 가능한 수준으로 구체화되지 않았다.
- 해제 조건:
- [ ] Work Item Provider Pipeline Design에서 넘길 상태 변화와 실패 케이스가 확정됨
- [ ] NomadCode workflow retry/timeout과 IOP 실행 정책의 경계가 문서화됨
- [ ] task lifecycle 상태 모델과 notification event 발행 기준이 문서화됨
- [ ] 사용자가 이 Milestone의 구현 구체화와 잠금 해제를 명시적으로 승인함
- 잠금 중 금지:
- 코드 구현 또는 `agent-task` 구현 계획 생성
- API/DB/package/file 구조를 추측해 확정
- 세부 구현 체크리스트를 완료 기준처럼 작성
## 범위
- task 상태 전이 정리