diff --git a/agent-roadmap/current.md b/agent-roadmap/current.md index ef06abb..d6773e7 100644 --- a/agent-roadmap/current.md +++ b/agent-roadmap/current.md @@ -7,9 +7,9 @@ ## 활성 Milestone -- [계획] Control Plane과 Client +- [계획] Edge Command와 Control Plane 운영 경계 - Phase: `agent-roadmap/phase/control-plane-portal-ops/PHASE.md` - - 경로: `agent-roadmap/phase/control-plane-portal-ops/milestones/control-plane-client.md` + - 경로: `agent-roadmap/phase/control-plane-portal-ops/milestones/edge-command-control-plane-ops-boundary.md` ## 선택 규칙 diff --git a/agent-roadmap/phase/control-plane-portal-ops/PHASE.md b/agent-roadmap/phase/control-plane-portal-ops/PHASE.md index 6108960..60f2ef0 100644 --- a/agent-roadmap/phase/control-plane-portal-ops/PHASE.md +++ b/agent-roadmap/phase/control-plane-portal-ops/PHASE.md @@ -29,6 +29,10 @@ - 경로: `agent-roadmap/archive/phase/control-plane-portal-ops/milestones/client-integration-clone-adoption.md` - 요약: NomadCode Flutter client clone adoption은 별도 프로젝트에서 진행하기로 하여 IOP active roadmap에서 제외했다. +- [계획] Edge Command와 Control Plane 운영 경계 + - 경로: `agent-roadmap/phase/control-plane-portal-ops/milestones/edge-command-control-plane-ops-boundary.md` + - 요약: `iop-edge` local/field fallback과 Control Plane 기본 운영면의 책임 경계, shared Edge operation 분류 기준, 사용자 가이드 갱신 범위를 확정한다. + - [계획] Control Plane과 Client - 경로: `agent-roadmap/phase/control-plane-portal-ops/milestones/control-plane-client.md` - 요약: 여러 Edge를 연결하고 관찰하며 Edge 설정 변경, 명령 전달, 이벤트 수신을 담당하는 중앙 제어면과 Flutter client 운영면을 구축한다. diff --git a/agent-roadmap/phase/control-plane-portal-ops/milestones/control-plane-client.md b/agent-roadmap/phase/control-plane-portal-ops/milestones/control-plane-client.md index a7e6954..a5b3620 100644 --- a/agent-roadmap/phase/control-plane-portal-ops/milestones/control-plane-client.md +++ b/agent-roadmap/phase/control-plane-portal-ops/milestones/control-plane-client.md @@ -73,6 +73,6 @@ Client는 NomadCode 전용 화면이 아니라 IOP가 독립적으로 운영되 - 관련 경로: `apps/control-plane`, `apps/client`, `apps/control-plane/README.md`, `apps/client/README.md`, `agent-test/local/control-plane-smoke.md`, `docker-compose.yml`, `scripts/dev/web.sh` - 표준선(선택): Control Plane은 Node를 직접 스케줄링하지 않고 Edge를 통해 관찰/제어한다. - 표준선(선택): Client-Control Plane의 첫 wire surface는 `/client` WebSocket hello handshake를 기준으로 둔다. -- 선행 작업: Flutter-first Client 마이그레이션, Agent Bootstrap과 OTO 등록, 정책/이력/감사 일부 기준 +- 선행 작업: Flutter-first Client 마이그레이션, Edge Command와 Control Plane 운영 경계, Agent Bootstrap과 OTO 등록, 정책/이력/감사 일부 기준 - 후속 작업: Multi-Edge 운영 - 확인 필요: Client 첫 화면 범위, Control Plane-Edge wire 우선순위, NomadCode 전용 UX 제외 기준 diff --git a/agent-roadmap/phase/control-plane-portal-ops/milestones/edge-command-control-plane-ops-boundary.md b/agent-roadmap/phase/control-plane-portal-ops/milestones/edge-command-control-plane-ops-boundary.md new file mode 100644 index 0000000..9cf6bf8 --- /dev/null +++ b/agent-roadmap/phase/control-plane-portal-ops/milestones/edge-command-control-plane-ops-boundary.md @@ -0,0 +1,80 @@ +# Milestone: Edge Command와 Control Plane 운영 경계 + +## 위치 + +- Roadmap: `agent-roadmap/ROADMAP.md` +- Phase: `agent-roadmap/phase/control-plane-portal-ops/PHASE.md` + +## 목표 + +`iop-edge` command 표면을 Control Plane 없는 local/field/fallback 운영면으로 유지하면서, Control Plane은 상시 운영과 multi-edge 관찰/명령의 기본 운영면으로 확장하는 책임 경계를 확정한다. +모든 command를 미리 열거하지 않고, 새 command와 후속 Cline/OTO/terminal 확장이 따를 operation category와 사용자 가이드 갱신 기준을 정리한다. + +## 상태 + +[계획] + +## 구현 잠금 + +- 상태: 해제 +- 결정 필요: 없음 + +## 범위 + +- Edge-local CLI에 남길 bootstrap, bundle-local config, env/config 진단, node 등록 command 발급, smoke, 단일 Edge 유지보수 범위 +- Control Plane이 기본으로 맡을 상시 운영, multi-edge 관찰/명령, 정책/감사 UX 범위 +- CLI, ops console, HTTP/A2A 입력 표면, Control Plane wire handler가 공유할 Edge operation/service 경계 +- 기존 command와 새 command를 `Edge-local 필수`, `Control Plane 기본`, `shared operation`으로 분류하는 규칙 +- Cline, OTO enrollment, remote terminal bridge 같은 후속 확장이 command를 추가할 때 적용할 배치 규칙 +- 변경된 운영 경계를 반영하는 사용자 가이드 문서 업데이트 + +## 기능 + +### Epic: [ops-boundary] Operations Boundary + +- [ ] [cli-scope] `iop-edge` CLI가 Control Plane 없는 bootstrap/local/field/진단 fallback으로 유지할 command category가 문서화된다. +- [ ] [cp-scope] Control Plane이 상시 운영, multi-edge 관찰/명령, 정책/감사 UX의 기본 운영면으로 맡을 category가 문서화된다. +- [ ] [shared-ops] CLI와 Control Plane에 모두 필요한 작업이 shared Edge operation으로 분류되는 기준이 문서화된다. + +### Epic: [operation-contract] Edge Operation Contract + +- [ ] [service-boundary] CLI, ops console, HTTP/A2A, Control Plane wire handler가 같은 Edge operation을 노출할 때 공유할 service/operation boundary가 정리된다. +- [ ] [command-classify] 기존 `iop-edge` command와 후속 specialized agent enrollment command 후보가 완전 열거가 아니라 category 기준으로 분류된다. +- [ ] [expansion-gate] Cline, OTO enrollment, remote terminal bridge 같은 후속 확장은 구현 전에 command/operation category를 먼저 선언하는 기준을 따른다. + +### Epic: [user-guides] User Guide Updates + +- [ ] [edge-guide] `apps/edge/README.md`와 `docs/edge-local-dev-guide.md`가 Edge-local CLI fallback과 Control Plane 기본 운영면의 차이를 설명한다. +- [ ] [cp-guide] `apps/control-plane/README.md`와 필요한 경우 `README.md`가 Control Plane이 Edge operation을 원격 운영면으로 소비한다는 경계를 설명한다. +- [ ] [guide-consistency] 사용자 가이드가 repo helper script를 field 기본 경로로 승격하지 않고, CLI와 Control Plane 역할을 같은 기준으로 설명한다. 검증: 관련 사용자 가이드에서 CLI fallback, Control Plane 기본 운영면, shared operation 기준이 서로 충돌하지 않는지 확인한다. + +## 완료 리뷰 + +- 상태: 없음 +- 요청일: 없음 +- 완료 근거: 모든 기능 Task와 Task 안에 명시된 검증이 아직 충족되지 않았다. +- 리뷰 필요: + - [ ] 사용자가 완료 결과를 확인했다 + - [ ] archive 이동을 승인했다 +- 리뷰 코멘트: 없음 + +## 범위 제외 + +- 모든 미래 `iop-edge` command를 완전 열거하는 작업 +- Control Plane-Edge wire protocol 전체 구현 +- Flutter client 운영 화면 구현 +- Cline adapter/runtime 확장 구현 +- OTO enrollment 구현 +- remote terminal bridge POC 구현 +- 정책/감사 상세 schema 확정 +- Edge-local CLI fallback 제거 또는 deprecation + +## 작업 컨텍스트 + +- 관련 경로: `agent-ops/rules/project/domain/edge/rules.md`, `agent-ops/rules/project/domain/control-plane/rules.md`, `apps/edge/README.md`, `docs/edge-local-dev-guide.md`, `apps/control-plane/README.md`, `README.md`, `apps/edge/cmd/edge`, `apps/edge/internal/service` +- 표준선(선택): `iop-edge` CLI는 bootstrap/local/field/진단 fallback으로 유지하고, Control Plane은 상시 운영과 multi-edge 운영의 기본 표면으로 확장한다. +- 표준선(선택): 같은 Edge operation은 표면별로 복제하지 않고 Edge service/operation boundary로 수렴한다. +- 표준선(선택): 새 command가 필요하면 먼저 `Edge-local 필수`, `Control Plane 기본`, `shared operation` 중 하나로 분류한다. +- 선행 작업: Edge-local Dev Config와 바이너리 중심 실행 루프 +- 후속 작업: Control Plane과 Client, Agent Bootstrap과 OTO 등록, 원격 터미널 브리지 POC, Cline adapter/runtime 확장 후보 +- 확인 필요: 없음