From ea91baadb763864792d0634200c438de6fbfa1f5 Mon Sep 17 00:00:00 2001 From: toki Date: Fri, 5 Jun 2026 14:35:21 +0900 Subject: [PATCH] =?UTF-8?q?docs(roadmap):=20=ED=98=84=EC=9E=AC=20=EB=A1=9C?= =?UTF-8?q?=EB=93=9C=EB=A7=B5=20=EC=A7=80=EC=A0=90=EC=9D=84=20=EA=B0=B1?= =?UTF-8?q?=EC=8B=A0=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agent-roadmap/ROADMAP.md | 8 +++--- .../milestones/external-integration.md | 28 ++++++++++++------- .../phase/external-integration/PHASE.md | 8 +++--- .../project-workspace-management-ux/PHASE.md | 6 ++-- .../project-workspace-management-ux.md | 5 ++-- 5 files changed, 32 insertions(+), 23 deletions(-) rename agent-roadmap/{ => archive}/phase/external-integration/milestones/external-integration.md (81%) diff --git a/agent-roadmap/ROADMAP.md b/agent-roadmap/ROADMAP.md index 1a3d021..ba699f8 100644 --- a/agent-roadmap/ROADMAP.md +++ b/agent-roadmap/ROADMAP.md @@ -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 +- [검토중] External Integration - 경로: `agent-roadmap/phase/external-integration/PHASE.md` - - 요약: Workflow Core와 Mattermost/Nexo messaging 정합성 완료 이후 Plane 확장, Jira-compatible provider 추상화, Mattermost, IOP OpenAI-compatible Responses 호출과 metadata 기반 실행 문맥 전달을 실제 통합 흐름으로 확장한다. -- [계획] Project Workspace Management UX + - 요약: Plane 확장, Jira-compatible provider 추상화, Mattermost, IOP OpenAI-compatible Responses 호출과 metadata 기반 실행 문맥 전달을 완료했고, Phase 완료 확인과 archive 승인을 기다린다. +- [진행중] Project Workspace Management UX - 경로: `agent-roadmap/phase/project-workspace-management-ux/PHASE.md` - - 요약: client integration 표준화는 완료했고, 실제 프로젝트 단위 앱 UX 구현은 core workflow와 외부 통합 기준 이후로 미룬다. + - 요약: client integration 표준화, core workflow, 외부 통합 기준 이후 프로젝트 단위 앱 UX의 desktop/mobile 역할과 IOP/task 결과 표시 기준을 정리한다. - [계획] Agent-Ops MCP Control Plane - 경로: `agent-roadmap/phase/agent-ops-mcp-control-plane/PHASE.md` - 요약: 로드맵 기반 agent-ops 운영 자동화와 외부 agent용 MCP 제어 표면은 현재 작업 후보에서 제외하고 로드맵 마지막 Phase로 둔다. 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 81% rename from agent-roadmap/phase/external-integration/milestones/external-integration.md rename to agent-roadmap/archive/phase/external-integration/milestones/external-integration.md index 1d7e964..d27f82c 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 확장, ## 상태 -[진행중] +[완료] ## 구현 잠금 @@ -41,7 +41,7 @@ Work Item Provider Pipeline Design과 workflow core 이후 남은 Plane 확장, - [x] [provider-intake-registry] Plane 전용 task intake handler를 provider-neutral registry/generic route 또는 동등한 조립 구조로 정리해, 새 provider가 `workitem.Reader`와 필요한 capability facet만 구현하면 같은 work item -> core task pipeline을 재사용할 수 있게 한다. 검증: Plane 기존 경로는 호환되거나 같은 registry를 통해 동작하고, Jira-compatible provider를 붙일 때 provider별 task handler/route를 새로 만들 필요가 없다. - [x] [plane-adapter-expand] Plane work item 생성, comment, status update adapter 확장. 검증: core가 Plane에 work item, comment, status update를 요청할 수 있다. - [x] [jira-adapter] Jira live provider 구현은 테스트 환경이 생길 때까지 범위에서 제외하고, provider-neutral work item 계약이 Jira issue 조회, comment, status transition 의미를 수용할 수 있게 추상화한다. 검증: Jira credential 없이도 core의 provider-neutral contract/unit tests가 Jira-compatible state/comment/projection 요구를 설명하고, live Jira API 호출/e2e를 요구하지 않는다. -- [ ] [mattermost-adapter] Mattermost 메시지 발송 adapter 구현과 `../nexo/packages/messaging_flutter` host notification boundary 정합성 유지. 검증: core가 Mattermost에 메시지를 발송하고, server-generated signed push smoke가 `agent-test/local/mattermost-server-generated-push-smoke.md` 기준으로 FCM/ACK/opened/reply/dismiss evidence를 남긴다. +- [x] [mattermost-adapter] Mattermost 메시지 발송 adapter 구현과 `../nexo/packages/messaging_flutter` host notification boundary 정합성 유지. 검증: core가 Mattermost에 메시지를 발송하고, server-generated signed push smoke가 `agent-test/local/mattermost-server-generated-push-smoke.md` 기준으로 FCM/ACK/opened/reply/dismiss evidence를 남긴다. - [x] [adapter-boundary] 외부 provider별 구현 경계 점검. 검증: provider 세부 구현이 adapter 경계 밖으로 새지 않는다. - [x] [agent-integrator] Agent Integrator를 별도 runtime이 아닌 IOP Node agent interface용 thin execution connector/adapter 경계로 재정의한다. 검증: Agent Integrator 또는 그 대체 연결 지점이 명확히 정의되어 있다. - [x] [iop-responses] IOP OpenAI-compatible Responses API 경로와 metadata 확장을 NomadCode의 기본 실행 호출 경로로 정리. 검증: IOP OpenAI-compatible Responses 호출 경로가 core workflow와 연결된다. @@ -49,13 +49,16 @@ Work Item Provider Pipeline Design과 workflow core 이후 남은 Plane 확장, ## 완료 리뷰 -- 상태: 없음 -- 요청일: 없음 -- 완료 근거: 없음 +- 상태: 승인됨 +- 요청일: 2026-06-05 +- 완료 근거: + - 모든 기능 Task가 완료 체크되었고, Mattermost REST post adapter 및 completed task event sink가 `services/core/internal/adapters/mattermost/`에 구현되어 server wiring에 연결되었다. + - `agent-test/local/mattermost-server-generated-push-smoke.md`의 redacted evidence checklist가 FCM/ACK/opened/inline reply/dismiss 항목 PASS를 기록한다. + - `cd services/core && go test ./...`가 현재 checkout에서 통과했다. - 리뷰 필요: - - [ ] 사용자가 완료 결과를 확인했다 - - [ ] archive 이동을 승인했다 -- 리뷰 코멘트: 없음 + - [x] 사용자가 완료 결과를 확인했다 + - [x] archive 이동을 승인했다 +- 리뷰 코멘트: 2026-06-05 사용자 요청으로 현재 마일스톤을 완료 처리하고 다음 마일스톤 지점으로 전환했다. ## 범위 제외 @@ -74,7 +77,7 @@ Work Item Provider Pipeline Design과 workflow core 이후 남은 Plane 확장, - 주요 작업 영역: `services/core/internal/adapters/`, `services/core/internal/scheduler/`, `services/core/internal/workflow/` - 선행 작업: Work Item Provider Pipeline Design, Workflow Core, Mattermost Nexo Messaging Alignment - 후속 작업: Project Workspace Management UX -- 현재 지점: Workflow Core Phase가 `[완료]`로 archive되었고, `[provider-intake-registry]`, `[plane-adapter-expand]`, `[jira-adapter]`, `[adapter-boundary]`는 `agent-task/archive/2026/06/m-external-integration/**/complete.log`의 Roadmap Completion 근거 기준으로 완료되었다. 현재 남은 첫 Epic 작업은 `[mattermost-adapter]`이며, core의 Mattermost REST 메시지 발송 구현과 `../nexo/packages/messaging_flutter` host notification boundary 정합성 검증을 닫는 단계다. Jira는 현재 테스트 환경이 없으므로 live provider 구현 완료가 아니라 provider-neutral 추상화 적합성까지만 이 Milestone에서 다룬다. `구현 잠금`의 직접 결정 항목은 현재 기준으로 해소되어 표준선에 따라 구현 계획을 만들 수 있다. +- 현재 지점: Workflow Core Phase가 `[완료]`로 archive되었고, External Integration의 모든 기능 Task가 현재 checkout과 tracked smoke evidence 기준으로 완료 체크되었다. 2026-06-05 사용자 승인으로 이 Milestone은 `[완료]` 처리되어 archive 이동 대상이 되었다. Jira는 현재 테스트 환경이 없으므로 live provider 구현 완료가 아니라 provider-neutral 추상화 적합성까지만 이 Milestone에서 다뤘다. `구현 잠금`의 직접 결정 항목은 해소되었다. - Mattermost signed push smoke 재현 가이드: `agent-test/local/mattermost-server-generated-push-smoke.md` - private 환경값 router: `agent-test/local/mattermost-server-generated-push-smoke.md` (ignored local file) - Mattermost 책임 경계: core는 Mattermost REST 메시지 발송과 task notification 발행을 담당하고, `../nexo/packages/messaging_flutter`는 client-side FCM 수신, signature 검증, ACK, notification display, opened-routing, inline reply, dismiss를 담당한다. @@ -87,10 +90,15 @@ Work Item Provider Pipeline Design과 workflow core 이후 남은 Plane 확장, - A2A 결정: 이번 Milestone은 A2A JSON-RPC 기반 외부 agent 추가, task 상태, artifact, cancel 흐름 공유를 구현하지 않는다. A2A는 IOP OpenAI-compatible Responses 표면으로 감당하기 어려운 agent-to-agent delegation 요구가 명확해질 때 후속 Milestone에서 재검토한다. - IOP 호출 계약: 이번 Milestone의 기본 실행 호출 표면은 OpenAI-compatible Responses API로 정식 채택한다. NomadCode/IOP 전용 task/workspace/session/agent/approval/artifact/notification 의미는 별도 `iop` wrapper 필드를 만들지 않고 OpenAI-compatible `metadata` 또는 IOP native endpoint의 명시 필드로 전달한다. 완전 신규 프로토콜은 OpenAI-compatible 표면으로 task lifecycle, artifact, cancel, approval, streaming 요구를 감당하기 어렵다는 근거가 생길 때 재검토한다. - 현재 반영 근거: - - `[agent-integrator]`는 별도 runtime이나 A2A 전제 계층이 아니라 NomadCode core에서 IOP Node agent interface를 호출하는 thin execution connector/adapter 경계로 정의했다. + - `[agent-integrator]`는 별도 runtime이나 A2A 전제 계층이 아니라 NomadCode core에서 IOP Node agent interface를 호출하는 thin execution connector/adapter 경계로 정의했다. + - `services/core/internal/adapters/mattermost/client.go`는 Mattermost `POST /api/v4/posts` 메시지 발송과 task completion message 포맷을 구현한다. + - `services/core/internal/adapters/mattermost/task_notification_sink.go`는 `task.completed` 이벤트만 Mattermost post로 fanout한다. + - `services/core/cmd/server/main.go`는 Mattermost sink와 proto-socket broadcaster를 notification service에 함께 연결한다. + - `agent-test/local/mattermost-server-generated-push-smoke.md`는 server-generated signed push의 FCM receipt, ACK, notification display, opened, inline reply, dismiss evidence를 redaction 상태로 PASS 기록한다. - `services/core/internal/adapters/openai/client.go`는 non-streaming `POST /v1/responses` 호출 경로를 사용한다. - `services/core/cmd/server/main.go`는 `MODEL_BASE_URL`, `MODEL_API_KEY`, `MODEL_NAME`, `MODEL_CONTEXT_SIZE`, `MODEL_TIMEOUT_SEC` 설정으로 OpenAI-compatible model client를 구성해 scheduler에 연결한다. - `services/core/internal/scheduler/jobs.go`는 model client 결과를 task completion 결과로 저장한다. - `README.md`와 `services/core/README.md`는 NomadCode의 기본 실행 호출을 IOP Edge OpenAI-compatible Responses 경로로 정리하고, direct Ollama/model endpoint는 local development compatibility로 재분류한다. - sibling IOP repository의 로드맵은 OpenAI-compatible API를 외부 모델 기반 호출 표면으로, A2A를 외부 agent 작업 위임 표면으로, IOP native protocol을 운영 제어 표면으로 분리한다. + - `cd services/core && go test ./...`가 2026-06-05 현재 checkout에서 통과했다. - 확인 필요: 없음. diff --git a/agent-roadmap/phase/external-integration/PHASE.md b/agent-roadmap/phase/external-integration/PHASE.md index 850b0c9..94a88f0 100644 --- a/agent-roadmap/phase/external-integration/PHASE.md +++ b/agent-roadmap/phase/external-integration/PHASE.md @@ -2,7 +2,7 @@ ## 상태 -[진행중] +[검토중] ## 목표 @@ -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 흐름으로 확장한다. +- [완료] External Integration + - 경로: `agent-roadmap/archive/phase/external-integration/milestones/external-integration.md` + - 요약: Plane, Jira-compatible provider 추상화, Mattermost, Agent Integrator, IOP 호출 경계를 실제 통합 adapter 흐름으로 확장했고, 사용자 승인 후 archive했다. ## Phase 경계 diff --git a/agent-roadmap/phase/project-workspace-management-ux/PHASE.md b/agent-roadmap/phase/project-workspace-management-ux/PHASE.md index 0c11df7..a720cef 100644 --- a/agent-roadmap/phase/project-workspace-management-ux/PHASE.md +++ b/agent-roadmap/phase/project-workspace-management-ux/PHASE.md @@ -2,7 +2,7 @@ ## 상태 -[계획] +[진행중] ## 목표 @@ -17,9 +17,9 @@ Flutter-first 클라이언트 구조 위에서 `apps/client` 모듈, web/mobile - 경로: `agent-roadmap/archive/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 +- [진행중] Project Workspace Management UX - 경로: `agent-roadmap/phase/project-workspace-management-ux/milestones/project-workspace-management-ux.md` - - 요약: 프로젝트 단위 제어 UX의 desktop/mobile 역할, parity 기준, IOP/task 결과 표시 기준을 정리한다. + - 요약: 프로젝트 단위 제어 UX의 desktop/mobile 역할, parity 기준, IOP/task 결과 표시 기준을 정리하는 현재 작업 지점이다. - [계획] Workbench Shell and Optional IOP Composition - 경로: `agent-roadmap/phase/project-workspace-management-ux/milestones/workbench-shell-optional-iop-composition.md` diff --git a/agent-roadmap/phase/project-workspace-management-ux/milestones/project-workspace-management-ux.md b/agent-roadmap/phase/project-workspace-management-ux/milestones/project-workspace-management-ux.md index 80b4bcb..7898960 100644 --- a/agent-roadmap/phase/project-workspace-management-ux/milestones/project-workspace-management-ux.md +++ b/agent-roadmap/phase/project-workspace-management-ux/milestones/project-workspace-management-ux.md @@ -11,7 +11,7 @@ Flutter-first 클라이언트 구조 위에서 기존 Project/Session/Workspace ## 상태 -[계획] +[진행중] ## 구현 잠금 @@ -64,6 +64,7 @@ Flutter-first 앱에서 project/session/workspace 제어 표면과 desktop/mobil - 관련 경로: `apps/client/`, `packages/contracts/`, `services/core/` - 전환 참고 경로: [Legacy/Retired] `apps/web/` (제거됨) -- 선행 작업: Flutter-first Client Consolidation, Client Integration Standardization +- 선행 작업: Flutter-first Client Consolidation, Client Integration Standardization, External Integration - 후속 작업: 확인 필요 +- 현재 지점: External Integration Milestone 완료 이후의 다음 활성 마일스톤이다. `구현 잠금`은 유지되며, 프로젝트 단위 제어 화면의 공통 기능/우선순위, desktop/mobile 역할 경계, IOP/task 결과 UX 투영 기준 결정이 선행되어야 한다. - 확인 필요: `구현 잠금`의 결정 필요 항목 참고.