From 738edbda762dba5e3c1d5566aba03412df5df312 Mon Sep 17 00:00:00 2001 From: toki Date: Mon, 1 Jun 2026 07:50:21 +0900 Subject: [PATCH] update roadmap: add agent-ops-mcp-control-plane phase, revise workflow-core and external-integration milestones --- agent-roadmap/ROADMAP.md | 7 +++-- agent-roadmap/current.md | 3 --- .../agent-ops-mcp-control-plane/PHASE.md | 26 +++++++++++++++++++ .../roadmap-driven-agent-ops-automation.md | 10 +++---- .../milestones/external-integration.md | 6 ++--- agent-roadmap/phase/workflow-core/PHASE.md | 12 +++------ .../workflow-core/milestones/workflow-core.md | 9 +++---- 7 files changed, 46 insertions(+), 27 deletions(-) create mode 100644 agent-roadmap/phase/agent-ops-mcp-control-plane/PHASE.md rename agent-roadmap/phase/{workflow-core => agent-ops-mcp-control-plane}/milestones/roadmap-driven-agent-ops-automation.md (92%) diff --git a/agent-roadmap/ROADMAP.md b/agent-roadmap/ROADMAP.md index 356fe7a..dbfac82 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 표준화는 완료되었다. 이후 core workflow 안정화와 외부 통합을 먼저 정리하고, 실제 Flutter-first 프로젝트 제어 UX 구현은 가장 뒤로 미룬다. +현재 로드맵은 `ROADMAP.md -> phase//PHASE.md -> phase//milestones/.md` scaffold를 기준으로 관리한다. React/Vite 웹 콘솔 제거, 서버/Plane/provider 기반 작업, Flutter-first 클라이언트 정리, Mattermost push plugin extraction, client integration 표준화는 완료되었다. 이후 core workflow 안정화, 외부 통합, Flutter-first 프로젝트 제어 UX를 먼저 정리하고, MCP 기반 agent-ops 제어 표면은 로드맵의 마지막으로 미룬다. ## Phase 흐름 @@ -29,13 +29,16 @@ NomadCode는 Flutter 기반 앱, core 서비스, 공유 계약, agent-operation - 요약: Flutter 앱에 섞인 Mattermost push notification migration을 분리했고, 현재 package 경로는 `../nexo/packages/messaging_flutter`다. - [진행중] Workflow Core - 경로: `agent-roadmap/phase/workflow-core/PHASE.md` - - 요약: Roadmap Driven Agent-Ops Automation과 proto-socket 내부 통신 레일을 정리한 뒤 client-core 통신과 실제 e2e 흐름을 기준으로 task lifecycle, retry, timeout, notification event를 안정화한다. + - 요약: proto-socket 내부 통신 레일을 정리한 뒤 client-core 통신과 실제 e2e 흐름을 기준으로 task lifecycle, retry, timeout, notification event를 안정화한다. - [진행중] External Integration - 경로: `agent-roadmap/phase/external-integration/PHASE.md` - 요약: Workflow Core 재개 전에 Mattermost/Nexo messaging 정합성을 먼저 닫고, 이후 Plane 확장, Mattermost, Agent Integrator, IOP OpenAI API Responses-compatible 호출을 실제 통합 흐름으로 확장한다. - [계획] Project Workspace Management UX - 경로: `agent-roadmap/phase/project-workspace-management-ux/PHASE.md` - 요약: client integration 표준화는 완료했고, 실제 프로젝트 단위 앱 UX 구현은 core workflow와 외부 통합 기준 이후로 미룬다. +- [계획] 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/current.md b/agent-roadmap/current.md index 9a00c37..10597e0 100644 --- a/agent-roadmap/current.md +++ b/agent-roadmap/current.md @@ -11,9 +11,6 @@ ## 활성 Milestone -- [진행중] Roadmap Driven Agent-Ops Automation - - Phase: `agent-roadmap/phase/workflow-core/PHASE.md` - - 경로: `agent-roadmap/phase/workflow-core/milestones/roadmap-driven-agent-ops-automation.md` - [진행중] Proto-Socket Infrastructure Communication Rail - Phase: `agent-roadmap/phase/workflow-core/PHASE.md` - 경로: `agent-roadmap/phase/workflow-core/milestones/proto-socket-infrastructure-communication-rail.md` diff --git a/agent-roadmap/phase/agent-ops-mcp-control-plane/PHASE.md b/agent-roadmap/phase/agent-ops-mcp-control-plane/PHASE.md new file mode 100644 index 0000000..b6968be --- /dev/null +++ b/agent-roadmap/phase/agent-ops-mcp-control-plane/PHASE.md @@ -0,0 +1,26 @@ +# Phase: Agent-Ops MCP Control Plane + +## 상태 + +[계획] + +## 목표 + +Workflow Core, External Integration, Project Workspace Management UX가 정리된 뒤, 로드맵 기반 agent-ops 운영 루프와 외부 agent 제어 표면을 Core action과 MCP tool 계층으로 분리한다. 현재 작업 후보가 아니라 장기 운영 자동화와 외부 agent 제어를 다루는 마지막 Phase로 둔다. + +## Milestone 흐름 + +완료된 Milestone은 archive 경로를 가리키고, 검토중, 진행중, 계획, 스케치 또는 보류 Milestone은 이 Phase 하위 `milestones/` 경로를 가리킨다. +완료, 검토중, 진행중, 계획, 스케치 순서로 두어 아래로 갈수록 미래 작업에 가까워지게 정렬한다. +스케치 Milestone은 아직 구현 가능한 계획이 아니므로 계획 Milestone보다 아래에 둔다. + +- [계획] Roadmap Driven Agent-Ops Automation + - 경로: `agent-roadmap/phase/agent-ops-mcp-control-plane/milestones/roadmap-driven-agent-ops-automation.md` + - 요약: 외부 agent가 MCP를 통해 roadmap/action core를 제어하는 운영 자동화와 Plane 기반 검토/승인 흐름을 후속 Phase에서 정리한다. + +## Phase 경계 + +- 이 Phase는 현재 Workflow Core 구현의 선행 조건이 아니다. +- Core task lifecycle, proto-socket client-core 통신, provider adapter 기본 통합, Flutter workbench UX가 먼저 닫힌 뒤 진행한다. +- MCP 서버, 외부 agent tool policy, roadmap/action side effect 제어는 이 Phase에서 다룬다. +- IOP 내부 모델 라우팅, RAG, context compression, output validation은 NomadCode 범위에서 제외한다. diff --git a/agent-roadmap/phase/workflow-core/milestones/roadmap-driven-agent-ops-automation.md b/agent-roadmap/phase/agent-ops-mcp-control-plane/milestones/roadmap-driven-agent-ops-automation.md similarity index 92% rename from agent-roadmap/phase/workflow-core/milestones/roadmap-driven-agent-ops-automation.md rename to agent-roadmap/phase/agent-ops-mcp-control-plane/milestones/roadmap-driven-agent-ops-automation.md index 5f7c4ce..cfd2755 100644 --- a/agent-roadmap/phase/workflow-core/milestones/roadmap-driven-agent-ops-automation.md +++ b/agent-roadmap/phase/agent-ops-mcp-control-plane/milestones/roadmap-driven-agent-ops-automation.md @@ -3,7 +3,7 @@ ## 위치 - Roadmap: `agent-roadmap/ROADMAP.md` -- Phase: `agent-roadmap/phase/workflow-core/PHASE.md` +- Phase: `agent-roadmap/phase/agent-ops-mcp-control-plane/PHASE.md` ## 목표 @@ -11,7 +11,7 @@ NomadCode가 로드맵을 중심으로 사용자 입력, 실행 상태, 출력 ## 상태 -[진행중] +[계획] ## 승격 조건 @@ -77,9 +77,9 @@ NomadCode 내부 core logic이 roadmap 기반 작업 운영을 소유하고, 외 - 관련 경로: `services/core/internal/workflow/`, `services/core/internal/scheduler/`, `services/core/internal/http/`, `packages/contracts/`, `agent-roadmap/`, `agent-ops/skills/common/update-roadmap/SKILL.md`, `agent-ops/skills/common/plan/SKILL.md`, `agent-ops/skills/common/code-review/SKILL.md` - 표준선(선택): Plane은 사용자의 primary control UI이고, Plane 상태 변화는 NomadCode Core가 검증해 실행하는 command로 본다. NomadCode Core는 roadmap/action side effect와 idempotency/revision 검증을 소유하고, agent-roadmap은 장기 원장으로 유지한다. agent-ops 스킬은 사용자의 자연어와 문서 초안을 Core/MCP 호출 입력으로 정리한다. - 로컬 제어 표면 후보: `http://127.0.0.1:8080/v1` -- 선행 작업: Work Item Provider Pipeline Design, 로드맵 스킬 운영 복잡도 평가, Core/MCP-first 방향성 합의 -- 후속 작업: Workflow Core, Roadmap Operations Control Plane 첫 구현 slice, MCP tool contract 작성 -- 현재 지점: Mattermost Nexo Messaging Alignment가 완료되어 Workflow Core 재개 전 선행 정합성 작업이 닫혔다. 다음 실행 단위는 roadmap/action core 책임과 MCP-first 제어 표면을 구현 가능한 Core action 후보로 정리하는 것이다. +- 선행 작업: Workflow Core, External Integration, Project Workspace Management UX, 로드맵 스킬 운영 복잡도 평가 +- 후속 작업: Roadmap Operations Control Plane 첫 구현 slice, MCP tool contract 작성 +- 현재 지점: 사용자 결정에 따라 현재 작업 후보에서 제외하고 로드맵 마지막 Phase로 이동했다. Workflow Core와 외부 통합, 프로젝트 제어 UX가 먼저 닫힌 뒤 roadmap/action core 책임과 MCP-first 제어 표면을 구현 가능한 Core action 후보로 정리한다. - 용어 경계: Plane `User Review`는 provider board state이고, agent-task `USER_REVIEW.md`는 자동 plan/code-review 루프를 멈추는 내부 stop artifact다. 둘은 모두 사용자 판단 신호지만 저장 위치와 트리거가 다르다. - Plane 제어 플로우: - `Backlog`: 아이디어/후보이며 아직 Milestone 확정이 아니다. diff --git a/agent-roadmap/phase/external-integration/milestones/external-integration.md b/agent-roadmap/phase/external-integration/milestones/external-integration.md index 90f82b7..a5b454f 100644 --- a/agent-roadmap/phase/external-integration/milestones/external-integration.md +++ b/agent-roadmap/phase/external-integration/milestones/external-integration.md @@ -24,7 +24,6 @@ Work Item Provider Pipeline Design과 workflow core 이후 남은 Plane/Jira 확 ## 범위 - Plane work item 생성 / comment / status update 확장 -- Roadmap Driven Agent-Ops Automation에서 정한 Plane 상위 티켓/Milestone, 하위 티켓/Task 제어 흐름을 실제 Plane adapter 경계로 확장 - Jira issue 조회 / comment / status transition adapter 구현 - Mattermost 메시지 발송 구현 - Agent Integrator 호출 구조 추가 @@ -39,7 +38,6 @@ Work Item Provider Pipeline Design과 workflow core 이후 남은 Plane/Jira 확 외부 work item provider, 협업 도구, 실행 표면을 adapter 경계 안에서 실제 통합 흐름으로 확장한다. - [ ] [plane-adapter-expand] Plane work item 생성, comment, status update adapter 확장. 검증: core가 Plane에 work item, comment, status update를 요청할 수 있다. -- [ ] [plane-roadmap-control] Plane 상위 티켓을 Milestone, 하위 티켓을 Milestone 기능 Task로 투영하는 control flow adapter를 구현한다. 검증: `Todo + AGENT assignee`는 Milestone 초안 생성/갱신, `In Progress`는 하위 티켓 생성과 실행 시작, 하위 티켓 PASS는 기본 `Done`, blocker는 `User Review`, 상위 티켓 `Done`은 Milestone 완료/archive로 연결된다. - [ ] [jira-adapter] Jira issue 조회, comment, status transition adapter 구현. 검증: core가 Jira에 issue 조회, comment, status transition을 요청할 수 있다. - [ ] [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를 남긴다. - [ ] [agent-integrator] Agent Integrator 호출 경계 정의. 검증: Agent Integrator 또는 그 대체 연결 지점이 명확히 정의되어 있다. @@ -77,8 +75,8 @@ Work Item Provider Pipeline Design과 workflow core 이후 남은 Plane/Jira 확 - 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를 담당한다. - Nexo host 정합성: NomadCode host는 Firebase 설정, Mattermost credential handoff, signing key, optional server identifier, navigation callback만 `MattermostPushClient` 경계로 전달한다. native push 처리 로직은 `apps/client/android`에 복제하지 않는다. -- 선행 순서: Mattermost 메시지/알림 경계 정합성은 `agent-roadmap/phase/external-integration/milestones/mattermost-nexo-messaging-alignment.md`에서 먼저 닫고, 이후 `[mattermost-adapter]`는 core의 Mattermost REST 메시지 발송 구현에 집중한다. -- Plane 제어 선행 기준: `Roadmap Driven Agent-Ops Automation`의 Plane control flow 계약이 먼저 닫힌 뒤 `[plane-roadmap-control]`에서 실제 Plane webhook/polling, 상위/하위 work item 생성, comment/status projection을 구현한다. +- 선행 순서: Mattermost 메시지/알림 경계 정합성은 `agent-roadmap/archive/phase/external-integration/milestones/mattermost-nexo-messaging-alignment.md`에서 먼저 닫았고, 이후 `[mattermost-adapter]`는 core의 Mattermost REST 메시지 발송 구현에 집중한다. +- Plane 제어 범위: 이 Milestone은 Plane work item 생성, comment, status update adapter 확장까지만 다룬다. Plane 상위 티켓/Milestone, 하위 티켓/Task 제어 흐름과 MCP 기반 agent-ops control plane은 `Agent-Ops MCP Control Plane` Phase로 미룬다. - 현재 반영 근거: - `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에 연결한다. diff --git a/agent-roadmap/phase/workflow-core/PHASE.md b/agent-roadmap/phase/workflow-core/PHASE.md index 21ae643..c19e503 100644 --- a/agent-roadmap/phase/workflow-core/PHASE.md +++ b/agent-roadmap/phase/workflow-core/PHASE.md @@ -6,16 +6,12 @@ ## 목표 -Plane 통신 토대와 provider-neutral pipeline 설계 이후, 로드맵 기반 agent-ops 운영 루프를 NomadCode Core와 MCP-first 외부 제어 표면이 품는 방향으로 정리한다. 내부 런타임 간 신규 통신은 proto-socket 기본 레일로 통일하고, client-core 통신을 먼저 열어 실제 상태 변화를 기준으로 task lifecycle, enqueue/running/completed/failed 흐름을 안정화한다. +Plane 통신 토대와 provider-neutral pipeline 설계 이후, 내부 런타임 간 신규 통신은 proto-socket 기본 레일로 통일하고, client-core 통신을 먼저 열어 실제 상태 변화를 기준으로 task lifecycle, enqueue/running/completed/failed 흐름을 안정화한다. ## Milestone 흐름 완료된 Milestone은 archive 경로를 가리키고, 검토중, 진행중, 계획, 스케치 또는 보류 Milestone은 이 Phase 하위 `milestones/` 경로를 가리킨다. -완료, 검토중, 진행중, 계획, 스케치 순서를 기본으로 하되, 이번 Phase에서는 `Roadmap Driven Agent-Ops Automation`과 `Proto-Socket Infrastructure Communication Rail`이 `Workflow Core` 구현의 선행 조건이므로 먼저 둔다. - -- [진행중] Roadmap Driven Agent-Ops Automation - - 경로: `agent-roadmap/phase/workflow-core/milestones/roadmap-driven-agent-ops-automation.md` - - 요약: Workflow Core 구현 전에 사용자가 입력과 출력 검토를 NomadCode 라인에서 해결하고, 외부 에이전트는 MCP를 통해 roadmap/action core를 제어하는 운영 방향을 구현 가능한 계획으로 정리한다. +완료, 검토중, 진행중, 계획, 스케치 순서를 기본으로 하되, 이번 Phase에서는 `Proto-Socket Infrastructure Communication Rail`이 `Workflow Core` 구현의 선행 조건이므로 먼저 둔다. - [진행중] Proto-Socket Infrastructure Communication Rail - 경로: `agent-roadmap/phase/workflow-core/milestones/proto-socket-infrastructure-communication-rail.md` @@ -23,12 +19,12 @@ Plane 통신 토대와 provider-neutral pipeline 설계 이후, 로드맵 기반 - [계획] Workflow Core - 경로: `agent-roadmap/phase/workflow-core/milestones/workflow-core.md` - - 요약: Roadmap Driven Agent-Ops Automation의 Core/MCP-first 계약을 기준으로 task lifecycle, 상태 전이 책임, 실패 정책, retry/timeout, notification event 모델을 안정화한다. + - 요약: proto-socket client-core 통신 기준을 반영해 task lifecycle, 상태 전이 책임, 실패 정책, retry/timeout, notification event 모델을 안정화한다. ## Phase 경계 - Workflow Core는 canonical task lifecycle, retry/timeout envelope, heartbeat, terminal 상태 기록을 소유한다. -- `Roadmap Driven Agent-Ops Automation`이 먼저 상태/책임/자동화 경계를 정리해야 `Workflow Core` 구현의 task lifecycle과 완료 이벤트 계약을 확정할 수 있다. +- MCP 기반 agent-ops control plane은 `Agent-Ops MCP Control Plane` Phase로 미루며, 현재 Workflow Core의 선행 조건으로 두지 않는다. - 내부 런타임 간 신규 통신은 `proto-socket`을 기본으로 하며, REST/HTTP 예외는 health/readiness, 외부 provider 호환 API, 운영 smoke/curl, public callback, 단순 정적 조회로 제한한다. - 외부 협업 도구 notification 발송, provider별 실제 comment/status 전송, 복잡한 workflow DSL은 후속 Phase로 넘긴다. - IOP/A2A/model runtime 내부 정책은 외부 실행 표면 또는 adapter 책임으로 둔다. diff --git a/agent-roadmap/phase/workflow-core/milestones/workflow-core.md b/agent-roadmap/phase/workflow-core/milestones/workflow-core.md index 2e3dcb1..566d110 100644 --- a/agent-roadmap/phase/workflow-core/milestones/workflow-core.md +++ b/agent-roadmap/phase/workflow-core/milestones/workflow-core.md @@ -25,7 +25,6 @@ Plane 통신 토대와 별도 pipeline 설계가 정리된 뒤 실제 상태 변 - retry / timeout 기본 구조 추가 - notification event 구조 정리 - Plane 통신 토대와 후속 pipeline 설계에서 확인된 상태 변화와 실패 케이스 반영 -- Roadmap Driven Agent-Ops Automation의 Core/MCP-first 계약에서 정리된 로드맵/마일스톤/plan/review/완료 이벤트 책임 경계 반영 - Proto-Socket Infrastructure Communication Rail에서 정리한 client-core 통신 레일과 내부 통신 예외 경계 반영 ## 기능 @@ -61,13 +60,13 @@ Core task lifecycle과 상태 전이 책임, 실패/재시도/timeout/notificati - 이전 출처: `services/core/README.md`의 `## 단계별 다음 작업` - 주요 작업 영역: `services/core/internal/workflow/`, `services/core/internal/scheduler/`, `services/core/internal/notification/` -- 선행 작업: Plane Communication Foundation, Work Item Provider Pipeline Design, Roadmap Driven Agent-Ops Automation, Proto-Socket Infrastructure Communication Rail -- 선행 조건: Roadmap Driven Agent-Ops Automation이 Core/MCP-first 로드맵 action 계약을 기준선으로 제공하고, Proto-Socket Infrastructure Communication Rail이 client-core task 요청과 상태 이벤트가 오갈 수 있는 내부 통신 기준선을 제공한다. +- 선행 작업: Plane Communication Foundation, Work Item Provider Pipeline Design, Proto-Socket Infrastructure Communication Rail +- 선행 조건: Proto-Socket Infrastructure Communication Rail이 client-core task 요청과 상태 이벤트가 오갈 수 있는 내부 통신 기준선을 제공한다. - 후속 작업: External Integration -- 현재 지점: Flutter-first Client Consolidation, Client Integration Standardization, Work Item Provider Pipeline Design이 완료되었고, workflow 상태 전이는 Roadmap Driven Agent-Ops Automation의 Core/MCP-first 방향성을 반영해 진행한다. +- 현재 지점: Flutter-first Client Consolidation, Client Integration Standardization, Work Item Provider Pipeline Design이 완료되었고, workflow 상태 전이는 proto-socket client-core 통신 기준선을 반영해 진행한다. - 책임 경계: - NomadCode Workflow Core는 task lifecycle 전이, retry/timeout envelope, heartbeat, terminal 상태 기록을 소유한다. - - Roadmap Operations Control Plane은 roadmap 상태 전환, archive, dependency lock, 완료 이벤트 반영 action을 Core 로직으로 소유하고 MCP를 외부 agent 제어 표면으로 제공한다. + - Roadmap Operations Control Plane과 MCP 외부 agent 제어 표면은 `Agent-Ops MCP Control Plane` Phase에서 후속으로 다룬다. - IOP/A2A/model runtime은 외부 실행 표면이며, 내부 실행 정책과 런타임 세부 retry는 각 adapter 또는 외부 런타임 책임으로 둔다. - Workflow Core는 외부 호출 결과를 `completed`, `failed`, `canceled`, `waiting_for_user` 같은 canonical 상태/metadata로 정규화한다. - notification 최소 범위: