diff --git a/agent-roadmap/ROADMAP.md b/agent-roadmap/ROADMAP.md index 2d31632..c0f1466 100644 --- a/agent-roadmap/ROADMAP.md +++ b/agent-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, client integration 표준화, workspace 포트/환경 표준화는 완료되었다. External Integration의 OpenAI-compatible Responses metadata 실행 문맥 전달은 코드 단위로 보완했지만, 실제 원격 IOP Edge `/v1/responses` 표면과 NomadCode Core enqueue smoke가 남아 있어 완료 후보에서 진행중으로 되돌렸다. Milestone Work Item Creation Sync와 실행 lifecycle sync 계열은 후속 후보로 둔다. +현재 로드맵은 `ROADMAP.md -> phase//PHASE.md -> phase//milestones/.md` scaffold를 기준으로 관리한다. React/Vite 웹 콘솔 제거, 서버/Plane/provider 기반 작업, Flutter-first 클라이언트 정리, Mattermost push plugin extraction, client integration 표준화, workspace 포트/환경 표준화, External Integration은 완료되었다. Milestone Work Item Creation Sync와 실행 lifecycle sync 계열은 후속 후보로 둔다. IOP 외부 실행 호출은 OpenAI-compatible Responses API 방식을 기본 계약으로 채택하고, NomadCode/IOP 고유의 task, workspace, session, approval, artifact, notification 문맥은 별도 `iop` wrapper field가 아니라 `metadata` 확장으로 전달한다. A2A는 agent-to-agent delegation이 명확히 필요할 때 재검토하며, IOP native protocol은 NomadCode의 기본 외부 실행 호출 표면으로 쓰지 않는다. @@ -32,12 +32,12 @@ IOP 외부 실행 호출은 OpenAI-compatible Responses API 방식을 기본 계 - [완료] Workflow Core - 경로: `agent-roadmap/archive/phase/workflow-core/PHASE.md` - 요약: proto-socket 내부 통신 레일을 정리한 뒤 client-core 통신과 실제 e2e 흐름을 기준으로 task lifecycle, retry, timeout, notification event를 안정화한다. -- [진행중] External Integration - - 경로: `agent-roadmap/phase/external-integration/PHASE.md` - - 요약: Plane 확장, Jira-compatible provider 추상화, Mattermost, IOP OpenAI-compatible Responses 호출 경계를 확장했다. `metadata` 실행 문맥이 NomadCode Responses request에 전달되도록 보완했지만, 실제 IOP Edge `/v1/responses` 구현/기동과 Core enqueue smoke가 남아 있다. +- [완료] External Integration + - 경로: `agent-roadmap/archive/phase/external-integration/PHASE.md` + - 요약: Plane 확장, Jira-compatible provider 추상화, Mattermost, Agent Integrator, IOP OpenAI-compatible Responses 호출 경계를 실제 통합 adapter 흐름으로 확장했고, metadata 실행 문맥 전달, IOP Edge `/v1/responses`, NomadCode Core 원격 create/enqueue/poll smoke를 완료했다. - [진행중] Agent-Ops MCP Control Plane - 경로: `agent-roadmap/phase/agent-ops-mcp-control-plane/PHASE.md` - - 요약: 로드맵 기반 agent-ops 운영 자동화, Plane/Jira 같은 work item provider와 Milestone item의 양방향 동기화 도메인, 외부 agent용 MCP 제어 표면을 다루며, Plane-origin Milestone Work Item Creation Sync는 External Integration 보완 뒤 이어갈 진행 후보로 둔다. + - 요약: 로드맵 기반 agent-ops 운영 자동화, Plane/Jira 같은 work item provider와 Milestone item의 양방향 동기화 도메인, 외부 agent용 MCP 제어 표면을 다루며, Plane-origin Milestone Work Item Creation Sync를 진행 후보로 둔다. - [계획] Project Workspace Management UX - 경로: `agent-roadmap/phase/project-workspace-management-ux/PHASE.md` - 요약: client integration 표준화, core workflow, 외부 통합 기준 이후 프로젝트 단위 앱 UX를 다루며, provider slot 기반 외부 console composition은 계획 후보로 둔다. diff --git a/agent-roadmap/phase/external-integration/PHASE.md b/agent-roadmap/archive/phase/external-integration/PHASE.md similarity index 69% rename from agent-roadmap/phase/external-integration/PHASE.md rename to agent-roadmap/archive/phase/external-integration/PHASE.md index 073d034..aedca4b 100644 --- a/agent-roadmap/phase/external-integration/PHASE.md +++ b/agent-roadmap/archive/phase/external-integration/PHASE.md @@ -2,11 +2,11 @@ ## 상태 -[진행중] +[완료] ## 목표 -Work Item Provider Pipeline Design과 Workflow Core 완료 이후 Plane 확장, Jira-compatible provider 추상화, Mattermost, Agent Integrator, IOP OpenAI API Responses-compatible 호출을 실제 통합 흐름으로 확장한다. NomadCode가 직접 모델 런타임을 소유하지 않고 IOP의 외부 입력 표면을 호출하는 방향을 유지한다. Responses request의 metadata 실행 문맥 전달과 sibling IOP Edge `/v1/responses` 표면 smoke는 충족됐지만, NomadCode Core enqueue smoke가 남아 있어 Phase 완료 후보가 아니다. +Work Item Provider Pipeline Design과 Workflow Core 완료 이후 Plane 확장, Jira-compatible provider 추상화, Mattermost, Agent Integrator, IOP OpenAI API Responses-compatible 호출을 실제 통합 흐름으로 확장한다. NomadCode가 직접 모델 런타임을 소유하지 않고 IOP의 외부 입력 표면을 호출하는 방향을 유지한다. ## Milestone 흐름 @@ -21,9 +21,9 @@ Work Item Provider Pipeline Design과 Workflow Core 완료 이후 Plane 확장, - 경로: `agent-roadmap/archive/phase/external-integration/milestones/mattermost-nexo-messaging-alignment.md` - 요약: Mattermost 메시지/알림 경계를 `../nexo/packages/messaging_flutter` 구조와 맞추고 Android runner에서 server-generated signed push 수신, ACK, notification, opened, inline reply, dismiss evidence를 redaction 상태로 확인했다. -- [검토중] External Integration - - 경로: `agent-roadmap/phase/external-integration/milestones/external-integration.md` - - 요약: Plane, Jira-compatible provider 추상화, Mattermost, Agent Integrator, IOP 호출 경계를 실제 통합 adapter 흐름으로 확장했다. OpenAI-compatible Responses request의 `metadata` 실행 문맥 전달과 sibling IOP Edge `/v1/responses` 표면 smoke, NomadCode Core 원격 create/enqueue/poll smoke가 모두 완료돼 사용자 완료 확인 대기 중이다. +- [완료] External Integration + - 경로: `agent-roadmap/archive/phase/external-integration/milestones/external-integration.md` + - 요약: Plane, Jira-compatible provider 추상화, Mattermost, Agent Integrator, IOP 호출 경계를 실제 통합 adapter 흐름으로 확장했고, metadata 실행 문맥 전달과 IOP Edge `/v1/responses`, NomadCode Core 원격 create/enqueue/poll smoke가 모두 완료되었다. ## Phase 경계 @@ -32,3 +32,10 @@ Work Item Provider Pipeline Design과 Workflow Core 완료 이후 Plane 확장, - Mattermost messaging Android smoke는 사용자 테스트를 제외하고 원격 Android SDK build와 알림 도착 확인까지만 완료 범위로 둔다. - IOP 내부 모델 라우팅, 모델 프로파일, RAG, MCP, output validation, fallback 정책은 NomadCode 범위에서 제외한다. - A2A 도입 시점과 Agent Integrator 유지 여부는 사용자 결정이 필요하다. + +## 완료 리뷰 + +- 상태: 승인됨 +- 승인일: 2026-06-09 +- 완료 근거: Phase 하위 Milestone 3개가 모두 `[완료]`로 archive되어 있고, 관련 `agent-task` 완료 로그는 최종 PASS로 닫혔다. 현재 checkout 기준 `git diff --check`, `cd services/core && go test ./...`, `cd services/core && go vet ./...`, provider adapter boundary 검색이 통과했다. +- 리뷰 코멘트: 사용자 요청에 따라 관련 작업을 코드리뷰 확인 수준으로 재점검했고, blocking Required/Suggested 이슈가 남아 있지 않아 Phase archive를 승인된 완료 처리로 진행한다. diff --git a/agent-roadmap/phase/external-integration/milestones/external-integration.md b/agent-roadmap/archive/phase/external-integration/milestones/external-integration.md similarity index 99% rename from agent-roadmap/phase/external-integration/milestones/external-integration.md rename to agent-roadmap/archive/phase/external-integration/milestones/external-integration.md index 2952d8b..6d17d07 100644 --- a/agent-roadmap/phase/external-integration/milestones/external-integration.md +++ b/agent-roadmap/archive/phase/external-integration/milestones/external-integration.md @@ -11,7 +11,7 @@ Work Item Provider Pipeline Design과 workflow core 이후 남은 Plane 확장, ## 상태 -[검토중] +[완료] ## 구현 잠금 @@ -51,7 +51,7 @@ Work Item Provider Pipeline Design과 workflow core 이후 남은 Plane 확장, ## 완료 리뷰 -- 상태: 요청됨 +- 상태: 완료 - 요청일: 2026-06-08 - 완료 근거: - 기존 완료 근거로 Mattermost REST post adapter 및 completed task event sink가 `services/core/internal/adapters/mattermost/`에 구현되어 server wiring에 연결되었다. @@ -64,7 +64,7 @@ Work Item Provider Pipeline Design과 workflow core 이후 남은 Plane 확장, - [x] `iop-responses` metadata 전송 보완 결과를 확인한다 - [x] IOP Edge `/v1/responses` non-streaming 표면을 실제 edge service 경로로 구현하고 handler/service tests와 `iop-edge smoke openai` 또는 동등 smoke를 남긴다 - [x] NomadCode Core를 원격 standard runner에서 실제 IOP Responses listener에 연결해 task create/enqueue/poll smoke를 통과시킨다 - - [ ] 사용자가 완료 결과를 다시 확인한다 + - [x] 사용자가 완료 결과를 다시 확인한다 (2026-06-08) - [ ] archive 이동을 다시 승인한다 - 리뷰 코멘트: 2026-06-05 사용자 요청으로 완료/archive 처리했으나, 2026-06-08 코드/작업 히스토리 재검토에서 `model.GenerateInput.Metadata`가 `services/core/internal/adapters/openai`의 Responses request로 직렬화되지 않는 누락을 확인했다. 같은 날 해당 누락을 보완했고 sibling IOP `/v1/responses` 표면과 smoke도 PASS로 닫았다. 현재 `iop-responses`는 IOP 선행 조건을 충족하고 NomadCode Core 원격 task create/enqueue/poll smoke까지 완료되어 리뷰 요청 상태로 전환했다.