From 5bae8e7302b0426cba906db0167b6f393334caa6 Mon Sep 17 00:00:00 2001 From: toki Date: Wed, 3 Jun 2026 21:46:35 +0900 Subject: [PATCH] chore: archive workflow-core phase and update external-integration roadmap --- agent-roadmap/ROADMAP.md | 6 +++--- .../{ => archive}/phase/workflow-core/PHASE.md | 2 +- agent-roadmap/phase/external-integration/PHASE.md | 6 +++--- .../milestones/external-integration.md | 14 +++++++++----- 4 files changed, 16 insertions(+), 12 deletions(-) rename agent-roadmap/{ => archive}/phase/workflow-core/PHASE.md (99%) diff --git a/agent-roadmap/ROADMAP.md b/agent-roadmap/ROADMAP.md index 76b126e..1a3d021 100644 --- a/agent-roadmap/ROADMAP.md +++ b/agent-roadmap/ROADMAP.md @@ -29,12 +29,12 @@ IOP 외부 실행 호출은 OpenAI-compatible Responses API 방식을 기본 계 - [완료] Mattermost Push Plugin Extraction - 경로: `agent-roadmap/archive/phase/mattermost-push-plugin-extraction/PHASE.md` - 요약: Flutter 앱에 섞인 Mattermost push notification migration을 분리했고, 현재 package 경로는 `../nexo/packages/messaging_flutter`다. -- [검토중] Workflow Core - - 경로: `agent-roadmap/phase/workflow-core/PHASE.md` +- [완료] 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` - - 요약: Workflow Core 재개 전에 Mattermost/Nexo messaging 정합성을 먼저 닫고, 이후 Plane 확장, Mattermost, IOP OpenAI-compatible Responses 호출과 metadata 기반 실행 문맥 전달을 실제 통합 흐름으로 확장한다. + - 요약: Workflow Core와 Mattermost/Nexo messaging 정합성 완료 이후 Plane 확장, Jira-compatible provider 추상화, Mattermost, IOP OpenAI-compatible Responses 호출과 metadata 기반 실행 문맥 전달을 실제 통합 흐름으로 확장한다. - [계획] Project Workspace Management UX - 경로: `agent-roadmap/phase/project-workspace-management-ux/PHASE.md` - 요약: client integration 표준화는 완료했고, 실제 프로젝트 단위 앱 UX 구현은 core workflow와 외부 통합 기준 이후로 미룬다. diff --git a/agent-roadmap/phase/workflow-core/PHASE.md b/agent-roadmap/archive/phase/workflow-core/PHASE.md similarity index 99% rename from agent-roadmap/phase/workflow-core/PHASE.md rename to agent-roadmap/archive/phase/workflow-core/PHASE.md index 2d59f94..2b5872b 100644 --- a/agent-roadmap/phase/workflow-core/PHASE.md +++ b/agent-roadmap/archive/phase/workflow-core/PHASE.md @@ -2,7 +2,7 @@ ## 상태 -[검토중] +[완료] ## 목표 diff --git a/agent-roadmap/phase/external-integration/PHASE.md b/agent-roadmap/phase/external-integration/PHASE.md index 276780a..850b0c9 100644 --- a/agent-roadmap/phase/external-integration/PHASE.md +++ b/agent-roadmap/phase/external-integration/PHASE.md @@ -6,7 +6,7 @@ ## 목표 -Work Item Provider Pipeline Design과 Workflow Core 이후 Plane/Jira 확장, Mattermost, Agent Integrator, IOP OpenAI API Responses-compatible 호출을 실제 통합 흐름으로 확장한다. NomadCode가 직접 모델 런타임을 소유하지 않고 IOP의 외부 입력 표면을 호출하는 방향을 유지한다. +Work Item Provider Pipeline Design과 Workflow Core 완료 이후 Plane 확장, Jira-compatible provider 추상화, Mattermost, Agent Integrator, IOP OpenAI API Responses-compatible 호출을 실제 통합 흐름으로 확장한다. NomadCode가 직접 모델 런타임을 소유하지 않고 IOP의 외부 입력 표면을 호출하는 방향을 유지한다. ## Milestone 흐름 @@ -23,12 +23,12 @@ Work Item Provider Pipeline Design과 Workflow Core 이후 Plane/Jira 확장, Ma - [진행중] External Integration - 경로: `agent-roadmap/phase/external-integration/milestones/external-integration.md` - - 요약: Plane/Jira/Mattermost/Agent Integrator/IOP 호출 경계를 실제 통합 adapter 흐름으로 확장한다. + - 요약: Plane, Jira-compatible provider 추상화, Mattermost, Agent Integrator, IOP 호출 경계를 실제 통합 adapter 흐름으로 확장한다. ## Phase 경계 - 외부 provider 세부 구현은 adapter 경계 밖으로 새지 않게 한다. -- Mattermost Nexo Messaging Alignment는 현재 workflow/core 작업을 재개하기 전에 닫아야 하는 선행 정합성 작업이다. +- Mattermost Nexo Messaging Alignment는 Workflow Core 완료 이후 외부 통합 구현을 시작하기 전에 닫은 선행 정합성 작업이다. - Mattermost messaging Android smoke는 사용자 테스트를 제외하고 원격 Android SDK build와 알림 도착 확인까지만 완료 범위로 둔다. - IOP 내부 모델 라우팅, 모델 프로파일, RAG, MCP, output validation, fallback 정책은 NomadCode 범위에서 제외한다. - A2A 도입 시점과 Agent Integrator 유지 여부는 사용자 결정이 필요하다. diff --git a/agent-roadmap/phase/external-integration/milestones/external-integration.md b/agent-roadmap/phase/external-integration/milestones/external-integration.md index ab898b0..01deb4a 100644 --- a/agent-roadmap/phase/external-integration/milestones/external-integration.md +++ b/agent-roadmap/phase/external-integration/milestones/external-integration.md @@ -7,7 +7,7 @@ ## 목표 -Work Item Provider Pipeline Design과 workflow core 이후 남은 Plane/Jira 확장, Mattermost, IOP 실행 연결을 stub 또는 호환 호출 경로에서 실제 통합 흐름으로 확장한다. IOP 호출은 현재 단계에서 OpenAI-compatible Responses API 경로를 기본으로 하며, NomadCode/IOP 고유 실행 문맥은 `metadata` 확장으로 전달한다. NomadCode가 직접 모델 런타임을 호출하거나 IOP native protocol을 외부 호출 표면으로 사용하지 않는다. +Work Item Provider Pipeline Design과 workflow core 이후 남은 Plane 확장, Jira-compatible provider 추상화, Mattermost, IOP 실행 연결을 stub 또는 호환 호출 경로에서 실제 통합 흐름으로 확장한다. IOP 호출은 현재 단계에서 OpenAI-compatible Responses API 경로를 기본으로 하며, NomadCode/IOP 고유 실행 문맥은 `metadata` 확장으로 전달한다. NomadCode가 직접 모델 런타임을 호출하거나 IOP native protocol을 외부 호출 표면으로 사용하지 않는다. ## 상태 @@ -23,8 +23,9 @@ Work Item Provider Pipeline Design과 workflow core 이후 남은 Plane/Jira 확 ## 범위 +- provider별 HTTP handler를 늘리지 않아도 `workitem.Reader`/provider registry로 같은 intake pipeline을 탈 수 있는 provider-neutral 연결 구조 - Plane work item 생성 / comment / status update 확장 -- Jira issue 조회 / comment / status transition adapter 구현 +- Jira live API 구현은 테스트 환경이 생길 때까지 범위에서 제외하고, provider-neutral work item 계약이 Jira issue / comment / status transition 의미를 수용할 수 있게 추상화 - Mattermost 메시지 발송 구현 - IOP Node agent interface를 호출하는 thin execution connector/adapter 경계 추가 - IOP OpenAI-compatible Responses API 호출 구조와 metadata 기반 실행 문맥 전달 추가 @@ -37,13 +38,14 @@ Work Item Provider Pipeline Design과 workflow core 이후 남은 Plane/Jira 확 외부 work item provider, 협업 도구, 실행 표면을 adapter 경계 안에서 실제 통합 흐름으로 확장한다. +- [ ] [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를 새로 만들 필요가 없다. - [ ] [plane-adapter-expand] Plane work item 생성, comment, status update adapter 확장. 검증: core가 Plane에 work item, comment, status update를 요청할 수 있다. -- [ ] [jira-adapter] Jira issue 조회, comment, status transition adapter 구현. 검증: core가 Jira에 issue 조회, comment, status transition을 요청할 수 있다. +- [ ] [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를 남긴다. +- [ ] [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와 연결된다. - [x] [model-reclass] direct model endpoint / Ollama fallback 표현과 설정을 IOP 경유 호출 기준으로 재분류. 검증: NomadCode의 기본 실행 경로가 직접 모델 호출이 아니라 IOP 경유 호출임이 로드맵과 운영 문서에서 일관되게 읽힌다. -- [ ] [adapter-boundary] 외부 provider별 구현 경계 점검. 검증: provider 세부 구현이 adapter 경계 밖으로 새지 않는다. ## 완료 리뷰 @@ -58,6 +60,7 @@ Work Item Provider Pipeline Design과 workflow core 이후 남은 Plane/Jira 확 ## 범위 제외 - Outline / Forgejo / Nextcloud 연동 +- Jira live API adapter 완성, 실제 Jira credential 기반 e2e smoke, Jira Cloud 운영 검증 - MCP 서버 - Web Agent UI - Flutter 앱 기능 구현 @@ -71,7 +74,7 @@ Work Item Provider Pipeline Design과 workflow core 이후 남은 Plane/Jira 확 - 주요 작업 영역: `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가 완료되어 Plane/Jira/Mattermost/Agent Integrator/IOP 호출 경계를 실제 adapter 흐름으로 확장하는 단계로 전환했다. `구현 잠금`의 직접 결정 항목은 현재 기준으로 해소되어 표준선에 따라 구현 계획을 만들 수 있다. +- 현재 지점: Workflow Core Phase가 `[완료]`로 archive되었고, 현재 작업은 `[provider-intake-registry]`를 먼저 정리해 Plane/Jira-compatible/Mattermost 등 provider 확장이 같은 work item intake pipeline을 재사용하게 만드는 단계다. 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를 담당한다. @@ -79,6 +82,7 @@ Work Item Provider Pipeline Design과 workflow core 이후 남은 Plane/Jira 확 - Nexo host 정합성: NomadCode host는 Firebase 설정, Mattermost credential handoff, signing key, optional server identifier, navigation callback만 `MattermostPushClient` 경계로 전달한다. native push 처리 로직은 `apps/client/android`에 복제하지 않는다. - 선행 순서: 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로 미룬다. +- Provider pipeline 현재 상태: `services/core/internal/workitem`과 `services/core/internal/workitempipeline`은 provider-neutral 계약을 갖고 있지만, HTTP intake wiring은 Plane 전용 route/handler에 치우쳐 있다. 이 Milestone에서는 `[provider-intake-registry]`로 상위 연결부를 정리해 provider 추가가 adapter/capability facet 확장 중심으로 닫히게 한다. - Agent runtime 연결 기준: Agent Shell은 실제 agent runtime이 아니라 사용자 대화 UX surface이며, 실제 agent는 IOP Node의 agent interface 뒤에 있다. 따라서 `Agent Integrator`는 별도 runtime이나 A2A 전제 계층으로 키우지 않고, NomadCode core에서 IOP Node agent interface를 호출하는 thin execution connector/adapter 경계로 재정의한다. - 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 요구를 감당하기 어렵다는 근거가 생길 때 재검토한다.