chore: update project documentation, roadmap, and rules

This commit is contained in:
toki 2026-05-21 18:14:47 +09:00
parent 3cf542a543
commit a6f932eaa7
12 changed files with 151 additions and 151 deletions

View file

@ -228,10 +228,10 @@ NomadCode
`apps/web`은 IOP 전체 Web Portal이며, `apps/control-plane`은 Go 기반 운영 제어 서버다. 주요 통신은 edge-node에서 사용 중인 protobuf-socket을 IOP Wire Protocol 기준으로 Portal-Control Plane, Control Plane-Edge, Edge-Node 방향으로 확장한다. `net/http`는 health/readiness/bootstrap 같은 보조 endpoint 용도로 유지한다.
## Roadmap
## 로드맵
제품 방향, Phase, Milestone, 우선순위의 canonical source of truth`agent-ops/roadmap/ROADMAP.md`다.
일반 작업에서 AI가 읽어야 하는 현재 작업 기준은 `agent-ops/roadmap/current.md`가 가리키는 Default Milestone 또는 요청에 맞는 Active Milestone 문서다.
제품 방향, 단계, 마일스톤, 우선순위의 단일 기준 문서`agent-ops/roadmap/ROADMAP.md`다.
일반 작업에서 AI가 읽어야 하는 현재 작업 기준은 `agent-ops/roadmap/current.md`가 가리키는 기본 마일스톤 또는 요청에 맞는 활성 마일스톤 문서다.
로드맵의 큰 축은 Edge-Node 실행 기반, Edge input surface, CLI Automation runtime, remote terminal bridge, agent bootstrap/OTO enrollment, Control Plane/Portal, policy/history/audit, multi-edge operations로 관리한다.

View file

@ -1,73 +1,73 @@
# IOP Roadmap
# IOP 로드맵
이 문서는 IOP 제품 방향과 Phase/Milestone의 canonical source of truth다.
README와 `docs/**`는 제품 소개, 아키텍처 원칙, 운영 절차를 설명하고, 미래 계획과 우선순위는 이 문서와 각 Milestone 문서에서 관리한다.
이 문서는 IOP 제품 방향과 단계/마일스톤의 단일 기준 문서다.
README와 `docs/**`는 제품 소개, 아키텍처 원칙, 운영 절차를 설명하고, 미래 계획과 우선순위는 이 문서와 각 마일스톤 문서에서 관리한다.
## Overall Goal
## 전체 목표
IOP(Inference Operations Platform)는 Control Plane - Edge - Node 계층 구조를 기반으로 모델 서빙과 CLI Agent/Automation 실행을 함께 운영하는 실행 오케스트레이션 플랫폼을 만든다.
내부 실행 모델은 `adapter + target`을 기준으로 하며, Edge가 로컬 실행 그룹의 상태와 라우팅을 소유하고 Control Plane은 Edge를 통해 시스템을 관찰하고 제어한다.
## Current Position
## 현재 위치
- Active Phase: Phase 1. Edge-Node Execution Foundation
- Default Milestone: M01 Edge-Node Execution Skeleton
- Default Milestone File: `agent-ops/roadmap/milestones/M01-edge-node-execution-skeleton.md`
- Active Milestones:
- M01 Edge-Node Execution Skeleton: `agent-ops/roadmap/milestones/M01-edge-node-execution-skeleton.md`
- M02 Edge Input Surfaces: `agent-ops/roadmap/milestones/M02-edge-input-surfaces.md`
- 활성 단계: Phase 1. Edge-Node 실행 기반
- 기본 마일스톤: M01 Edge-Node 실행 스켈레톤
- 기본 마일스톤 문서: `agent-ops/roadmap/milestones/M01-edge-node-execution-skeleton.md`
- 활성 마일스톤:
- M01 Edge-Node 실행 스켈레톤: `agent-ops/roadmap/milestones/M01-edge-node-execution-skeleton.md`
- M02 Edge 입력 표면: `agent-ops/roadmap/milestones/M02-edge-input-surfaces.md`
## Loading Policy
## 로딩 정책
- 일반 기능 추가, 구조 변경, 스킬 추가/수정, 문서 구조 변경 작업에서는 `agent-ops/roadmap/current.md`를 먼저 읽는다.
- 요청이 Default Milestone 범위에 맞으면 Default Milestone 문서를 같은 세션에서 1회 읽는다.
- 요청이 Default Milestone과 맞지 않으면 `current.md`의 Active Milestones 목록에서 가장 관련 있는 Milestone 문서를 같은 세션에서 1회 읽는다.
- Active Milestones에도 맞지 않으면 `agent-ops/roadmap/ROADMAP.md`의 Milestone 인덱스를 확인하고 사용자에게 진행/전환 여부를 확인한다.
- `agent-ops/roadmap/ROADMAP.md`는 로드맵 생성/갱신, Phase 전환, Milestone 추가/수정 요청이 있을 때만 읽는다.
- 작업 요청이 선택된 Milestone의 Goal 또는 Non-Goals와 충돌하면 구현 전에 사용자에게 알리고 방향을 확인한다.
- 요청이 기본 마일스톤 범위에 맞으면 기본 마일스톤 문서를 같은 세션에서 1회 읽는다.
- 요청이 기본 마일스톤과 맞지 않으면 `current.md`의 활성 마일스톤 목록에서 가장 관련 있는 마일스톤 문서를 같은 세션에서 1회 읽는다.
- 활성 마일스톤에도 맞지 않으면 `agent-ops/roadmap/ROADMAP.md`의 마일스톤 인덱스를 확인하고 사용자에게 진행/전환 여부를 확인한다.
- `agent-ops/roadmap/ROADMAP.md`는 로드맵 생성/갱신, Phase 전환, 마일스톤 추가/수정 요청이 있을 때만 읽는다.
- 작업 요청이 선택된 마일스톤의 목표 또는 제외 범위와 충돌하면 구현 전에 사용자에게 알리고 방향을 확인한다.
## Status Semantics
## 상태 의미
- `Planned`: 아직 본격 작업 기준으로 삼지 않는 예정 Milestone이다.
- `Active`: 구현, 안정화, 문서 정리, 검증이 진행 중인 Milestone이다. 여러 Milestone이 동시에 `Active`일 수 있다.
- `Done`: Success Criteria가 충족되어 완료된 Milestone이다.
- `Paused`: 일시 중단된 Milestone이다.
- `Dropped`: 현재 제품 방향에서 제외된 Milestone이다.
- `Planned`: 아직 본격 작업 기준으로 삼지 않는 예정 마일스톤이다.
- `Active`: 구현, 안정화, 문서 정리, 검증이 진행 중인 마일스톤이다. 여러 마일스톤이 동시에 `Active`일 수 있다.
- `Done`: 성공 기준이 충족되어 완료된 마일스톤이다.
- `Paused`: 일시 중단된 마일스톤이다.
- `Dropped`: 현재 제품 방향에서 제외된 마일스톤이다.
`current.md`Default Milestone은 여러 `Active` Milestone 중 현재 세션의 기본 작업 초점이다.
`current.md`기본 마일스톤은 여러 `Active` 마일스톤 중 현재 세션의 기본 작업 초점이다.
## Phase Overview
## 단계 개요
### Phase 1. Edge-Node Execution Foundation
### Phase 1. Edge-Node 실행 기반
Goal: Edge-Node 소켓 실행 경로, Node adapter execution, CLI session, 최소 외부 입력 표면을 안정화한다.
목표: Edge-Node 소켓 실행 경로, Node adapter execution, CLI session, 최소 외부 입력 표면을 안정화한다.
| Milestone | Status | File |
| 마일스톤 | 상태 | 문서 |
|---|---|---|
| M01 Edge-Node Execution Skeleton | Active | `milestones/M01-edge-node-execution-skeleton.md` |
| M02 Edge Input Surfaces | Active | `milestones/M02-edge-input-surfaces.md` |
| M01 Edge-Node 실행 스켈레톤 | Active | `milestones/M01-edge-node-execution-skeleton.md` |
| M02 Edge 입력 표면 | Active | `milestones/M02-edge-input-surfaces.md` |
### Phase 2. Automation Runtime and Bridge Expansion
### Phase 2. Automation Runtime과 Bridge 확장
Goal: Runtime과 Automation 실행 흐름을 공통화하고, agent 설치형/비설치형 대상 제어 경로를 분리해 확장한다.
목표: Runtime과 Automation 실행 흐름을 공통화하고, agent 설치형/비설치형 대상 제어 경로를 분리해 확장한다.
| Milestone | Status | File |
| 마일스톤 | 상태 | 문서 |
|---|---|---|
| M03 CLI Automation Runtime Stabilization | Planned | `milestones/M03-cli-automation-runtime-stabilization.md` |
| M04 Remote Terminal Bridge POC | Planned | `milestones/M04-remote-terminal-bridge-poc.md` |
| M05 Agent Bootstrap and OTO Enrollment | Planned | `milestones/M05-agent-bootstrap-oto-enrollment.md` |
| M03 CLI Automation Runtime 안정화 | Planned | `milestones/M03-cli-automation-runtime-stabilization.md` |
| M04 원격 터미널 브리지 POC | Planned | `milestones/M04-remote-terminal-bridge-poc.md` |
| M05 Agent Bootstrap과 OTO 등록 | Planned | `milestones/M05-agent-bootstrap-oto-enrollment.md` |
### Phase 3. Control Plane and Portal Operations
### Phase 3. Control Plane과 Portal 운영
Goal: 여러 Edge를 관찰하고 운영하는 중앙 제어면과 Portal을 구축한다.
목표: 여러 Edge를 관찰하고 운영하는 중앙 제어면과 Portal을 구축한다.
| Milestone | Status | File |
| 마일스톤 | 상태 | 문서 |
|---|---|---|
| M06 Control Plane and Portal | Planned | `milestones/M06-control-plane-portal.md` |
| M07 Policy History Audit | Planned | `milestones/M07-policy-history-audit.md` |
| M08 Multi-Edge Operations | Planned | `milestones/M08-multi-edge-operations.md` |
| M06 Control Plane Portal | Planned | `milestones/M06-control-plane-portal.md` |
| M07 정책, 이력, 감사 | Planned | `milestones/M07-policy-history-audit.md` |
| M08 Multi-Edge 운영 | Planned | `milestones/M08-multi-edge-operations.md` |
## Cross-Cutting Principles
## 공통 원칙
- 내부 실행 용어는 `adapter`, `target`, `execution`을 우선한다. `model`은 OpenAI-compatible 경계나 legacy compatibility에서만 사용한다.
- Control Plane은 Node를 직접 연결하거나 직접 스케줄링하지 않는다. Edge가 로컬 Node registry와 런타임 상태의 원본을 가진다.
@ -76,10 +76,10 @@ Goal: 여러 Edge를 관찰하고 운영하는 중앙 제어면과 Portal을 구
- OpenAI-compatible API는 모델/chat completion 호환 입력 표면이고, A2A API는 외부 agent 작업 위임 입력 표면이다.
- IOP native protocol은 Edge/Node 운영 제어, logical session, background run, command, lifecycle event, remote terminal session 같은 IOP 고유 기능을 다룬다.
## Roadmap Ownership
## 로드맵 소유권
- 제품 방향, Phase, Milestone, 우선순위: `agent-ops/roadmap/ROADMAP.md`
- 현재 작업 기준: `agent-ops/roadmap/current.md`와 요청에 맞는 Default/Active Milestone 문서
- 제품 방향, 단계, 마일스톤, 우선순위: `agent-ops/roadmap/ROADMAP.md`
- 현재 작업 기준: `agent-ops/roadmap/current.md`와 요청에 맞는 기본/활성 마일스톤 문서
- 아키텍처 불변 원칙: `docs/architecture.md`
- dev/field 배포 절차: `docs/deploy-dev.md`
- 앱별 현재 구현과 사용법: `apps/*/README.md`

View file

@ -1,10 +1,10 @@
# Current Roadmap Context
# 현재 로드맵 컨텍스트
- Active Phase: Phase 1. Edge-Node Execution Foundation
- Default Milestone: M01 Edge-Node Execution Skeleton
- Default Milestone File: agent-ops/roadmap/milestones/M01-edge-node-execution-skeleton.md
- 활성 단계: Phase 1. Edge-Node 실행 기반
- 기본 마일스톤: M01 Edge-Node 실행 스켈레톤
- 기본 마일스톤 문서: agent-ops/roadmap/milestones/M01-edge-node-execution-skeleton.md
## Active Milestones
## 활성 마일스톤
- M01 Edge-Node Execution Skeleton: agent-ops/roadmap/milestones/M01-edge-node-execution-skeleton.md
- M02 Edge Input Surfaces: agent-ops/roadmap/milestones/M02-edge-input-surfaces.md
- M01 Edge-Node 실행 스켈레톤: agent-ops/roadmap/milestones/M01-edge-node-execution-skeleton.md
- M02 Edge 입력 표면: agent-ops/roadmap/milestones/M02-edge-input-surfaces.md

View file

@ -1,19 +1,19 @@
# M01 Edge-Node Execution Skeleton
# M01 Edge-Node 실행 스켈레톤
## Goal
## 목표
Edge와 Node 사이의 기본 실행 파이프라인을 안정화한다.
Node 등록, 설정 전달, adapter execution, run event streaming, command request/response, field smoke 기준을 한 흐름으로 검증할 수 있게 만든다.
## Phase
## 단계
Phase 1. Edge-Node Execution Foundation
Phase 1. Edge-Node 실행 기반
## Status
## 상태
Active
## Scope
## 범위
- Edge-Node TCP/protobuf 연결과 RegisterRequest/RegisterResponse 흐름
- token 기반 node 등록과 NodeConfigPayload 전달
@ -22,7 +22,7 @@ Active
- CLI adapter 기반 one-shot/persistent session 실행 검증
- edge-local ops console과 `bin/edge.sh`, `bin/node.sh` 기반 field smoke
## Required Features
## 필수 기능
- NodeStore와 Registry가 사전 등록 node와 연결 node를 구분해 관리한다.
- Edge가 node 설정을 mapper를 통해 NodeConfigPayload로 전달한다.
@ -31,7 +31,7 @@ Active
- Edge console이 `/nodes`, `/node`, `/session`, `/background`, `/terminate-session`, `/status`, `/capabilities`, `/sessions`, `/transport`를 통해 기본 진단을 제공한다.
- Field smoke에서 메시지 2회 왕복, start/delta/complete event, command 응답을 확인할 수 있다.
## Success Criteria
## 성공 기준
- `bin/edge.sh``bin/node.sh`를 각각 실행해 node 등록을 확인할 수 있다.
- Edge console에서 두 번의 메시지 실행이 각각 start, non-empty message/delta, complete event를 표시한다.
@ -39,16 +39,16 @@ Active
- persistent profile에서 run cancel과 session terminate의 의미가 구분된다.
- 변경 범위에 맞는 Go 테스트 또는 field smoke 기준이 문서와 일치한다.
## Non-Goals
## 제외 범위
- Control Plane이 Node를 직접 연결하거나 직접 스케줄링하는 구조
- Edge 내부에 Node adapter 실행 로직을 복제하는 구조
- gRPC 또는 WebSocket을 Edge-Node 기본 transport로 바꾸는 작업
- 상세 DB schema, audit model, policy engine 확정
## Context for Work
## 작업 컨텍스트
- 관련 앱: `apps/edge`, `apps/node`
- 관련 문서: `apps/edge/README.md`, `apps/node/README.md`, `docs/deploy-dev.md`
- 관련 domain rules: `agent-ops/rules/project/domain/edge/rules.md`, `agent-ops/rules/project/domain/node/rules.md`
- 관련 domain rule: `agent-ops/rules/project/domain/edge/rules.md`, `agent-ops/rules/project/domain/node/rules.md`
- 사용자 실행 파이프라인을 바꾸면 `agent-ops/rules/project/domain/testing/rules.md`의 검증 기준을 따른다.

View file

@ -1,18 +1,18 @@
# M02 Edge Input Surfaces
# M02 Edge 입력 표면
## Goal
## 목표
Edge의 외부 입력 표면을 OpenAI-compatible API와 A2A JSON-RPC API로 분리해 관리하고, 두 입력 모두 내부 `adapter + target` 실행 경로로 수렴시킨다.
## Phase
## 단계
Phase 1. Edge-Node Execution Foundation
Phase 1. Edge-Node 실행 기반
## Status
## 상태
Active
## Scope
## 범위
- OpenAI-compatible `/v1/models`, `/v1/chat/completions` 표면
- A2A `message/send`, `tasks/get`, `tasks/cancel` 최소 표면
@ -21,7 +21,7 @@ Active
- streaming/non-streaming 응답과 background task 상태 저장 기준 정리
- 현재 구현된 OpenAI-compatible/A2A baseline을 기준으로 설정, lifecycle, task 상태, 문서 경계를 안정화
## Required Features
## 필수 기능
- OpenAI-compatible API는 모델/chat completion 호환 입력 표면으로 유지한다.
- A2A API는 외부 agent의 작업 위임과 task 상태 공유 표면으로 유지한다.
@ -29,20 +29,20 @@ Active
- OpenAI-compatible API에 IOP 고유 운영 제어 기능을 억지로 싣지 않는다.
- A2A API를 Control Plane 운영 제어 프로토콜로 확장하지 않는다.
## Success Criteria
## 성공 기준
- 외부 OpenAI-compatible 요청이 Edge 내부에서 명시적인 adapter/target 실행으로 변환된다.
- A2A `message/send`, `tasks/get`, `tasks/cancel`이 task lifecycle과 node cancel 흐름을 일관되게 표현한다.
- 입력 표면별 설정과 lifecycle이 중복 없이 관리된다.
- 앱별 README는 현재 사용법을 설명하고, 미래 우선순위는 roadmap을 참조한다.
## Non-Goals
## 제외 범위
- OpenAI-compatible API를 IOP native 운영 제어 프로토콜로 확장
- A2A API를 fleet-wide scheduling 또는 Control Plane state ownership 표면으로 확장
- vendor-specific extension으로 node 선택, terminal session, lifecycle event를 표현
## Context for Work
## 작업 컨텍스트
- 관련 앱: `apps/edge`
- 관련 문서: `apps/edge/README.md`

View file

@ -1,19 +1,19 @@
# M03 CLI Automation Runtime Stabilization
# M03 CLI Automation Runtime 안정화
## Goal
## 목표
CLI Agent와 도구 실행을 안정적인 Automation runtime으로 정리한다.
현재 구현된 CLI adapter baseline을 바탕으로 one-shot, persistent terminal, opencode SSE, codex exec 같은 실행 모드를 같은 adapter execution 모델 안에서 안정화한다.
## Phase
## 단계
Phase 2. Automation Runtime and Bridge Expansion
Phase 2. Automation Runtime과 Bridge 확장
## Status
## 상태
Planned
## Scope
## 범위
- CLI profile 설정과 output format 처리 안정화
- persistent logical session lifecycle 관리
@ -22,26 +22,26 @@ Planned
- Node local execution history와 Edge event aggregation 경계 정리
- 이미 동작하는 CLI adapter 기능을 재구현하지 않고 hardening, 경계 정리, 검증 기준 보강에 집중
## Required Features
## 필수 기능
- CLI adapter는 profile별 실행 모드를 `node.Node` 분기 없이 adapter 내부에서 처리한다.
- output format별 파싱은 `lineEmitter` 또는 모드별 구현으로 분리한다.
- persistent terminal profile은 idle timeout, completion marker, cancel drain 기준을 명확히 가진다.
- `NodeCommandRequest` 경로는 실행 요청과 분리된 조회/제어 명령으로 유지한다.
## Success Criteria
## 성공 기준
- 주요 CLI profile이 동일한 `RunRequest`/`RunEvent` 흐름으로 실행된다.
- session list, usage status, transport status가 운영자가 이해할 수 있는 응답을 제공한다.
- CLI adapter 변경 시 대상 패키지 테스트와 field smoke 기준이 함께 맞는다.
## Non-Goals
## 제외 범위
- 모든 외부 자동화 도구를 `iop-node` 하위 프로세스로 흡수
- OTO 같은 specialized domain agent를 CLI adapter profile로 대체
- CLI adapter 내부에 Control Plane 책임 추가
## Context for Work
## 작업 컨텍스트
- 관련 앱: `apps/node`
- 관련 패키지: `apps/node/internal/adapters/cli`, `apps/node/internal/runtime`, `apps/node/internal/node`

View file

@ -1,19 +1,19 @@
# M04 Remote Terminal Bridge POC
# M04 원격 터미널 브리지 POC
## Goal
## 목표
Agent를 설치하기 어려운 host/device를 위해 remote terminal bridge POC를 만든다.
Agent를 설치하기 어려운 host/device를 위해 원격 터미널 브리지 POC를 만든다.
Edge는 terminal session broker가 되고, 대상에 도달 가능한 Node가 SSH/WinRM/serial/local shell 같은 terminal transport를 실행해 relay한다.
## Phase
## 단계
Phase 2. Automation Runtime and Bridge Expansion
Phase 2. Automation Runtime과 Bridge 확장
## Status
## 상태
Planned
## Scope
## 범위
- CLI persistent terminal profile 기반 remote shell POC
- terminal session open/input/output/resize/signal/close event 모델 초안
@ -21,29 +21,29 @@ Planned
- 대상 접근 경로와 credential이 있는 경우만 제어할 수 있다는 전제 명시
- target allowlist, timeout, 동시 실행 제한, session audit 요구사항 초안
## Required Features
## 필수 기능
- Remote terminal bridge는 완전 agentless 제어가 아니라 target device에 IOP agent를 설치하지 않는 운영 경로로 정의한다.
- 원격 터미널 브리지는 완전 agentless 제어가 아니라 target device에 IOP agent를 설치하지 않는 운영 경로로 정의한다.
- Control Plane/Portal/운영 CLI는 Edge에 terminal session을 요청하고, Node에 직접 붙지 않는다.
- Node terminal transport는 adapter/profile 또는 별도 adapter 경계에서 실행된다.
- stdin/stdout/stderr, resize, signal, close lifecycle을 IOP native protocol에서 표현하는 방향을 검증한다.
## Success Criteria
## 성공 기준
- 허용된 target profile을 통해 Edge에서 remote shell session을 열고 입출력을 relay할 수 있다.
- session lifecycle과 adapter execution stream의 경계가 문서화된다.
- 보안 전제(target allowlist, credential, timeout, audit)가 milestone 산출물에 포함된다.
- OpenAI-compatible API나 A2A task payload에 terminal 제어 기능을 억지로 싣지 않는다.
## Non-Goals
## 제외 범위
- 접근 경로가 없는 target device의 제어 보장
- Control Plane이 Node 또는 target terminal에 직접 연결
- 모든 terminal transport 구현을 한 번에 지원
- 정책/audit 상세 schema 확정
## Context for Work
## 작업 컨텍스트
- 관련 앱: `apps/edge`, `apps/node`
- 관련 문서: `docs/architecture.md`, `docs/deploy-dev.md`
- 선행 Milestone: M01, M03
- 선행 마일스톤: M01, M03

View file

@ -1,19 +1,19 @@
# M05 Agent Bootstrap and OTO Enrollment
# M05 Agent Bootstrap과 OTO 등록
## Goal
## 목표
Edge가 specialized domain agent를 생성하고 bootstrap command를 발급해 대상 머신에서 agent 설치와 등록을 완료하는 enrollment 흐름을 설계한다.
OTO는 build/deploy domain agent의 대표 후보로 둔다.
## Phase
## 단계
Phase 2. Automation Runtime and Bridge Expansion
Phase 2. Automation Runtime과 Bridge 확장
## Status
## 상태
Planned
## Scope
## 범위
- Edge agent registry를 generic node와 specialized domain agent를 함께 다룰 수 있는 모델로 확장
- agent type별 bootstrap command 발급 표면 설계
@ -21,27 +21,27 @@ Planned
- 등록 후 장기 credential 재발급 흐름
- OTO agent의 build run, cancel, status, capability, artifact, log event 메시지 경계
## Required Features
## 필수 기능
- OTO agent는 `iop-node` 하위 프로세스가 아니라 Edge에 직접 outbound 연결하는 specialized domain agent로 둔다.
- Agent를 설치할 수 있는 대상은 bootstrap/enrollment를 우선한다.
- Agent 설치가 어렵거나 일회성 유지보수 대상이면 remote terminal bridge 경로와 구분한다.
- HTTP local/insecure bootstrap 모드는 명시 선택과 추가 검증 조건을 요구한다.
## Success Criteria
## 성공 기준
- Edge가 agent 생성과 bootstrap command 발급 상태를 표현할 수 있다.
- bootstrap command 실행 후 agent config/service 등록과 Edge outbound enrollment 흐름이 문서화된다.
- OTO agent와 generic Node의 책임 경계가 registry와 protocol 수준에서 구분된다.
## Non-Goals
## 제외 범위
- OTO 구현을 `apps/node` adapter로 흡수
- Control Plane이 Node나 OTO agent를 직접 스케줄링
- bootstrap 보안 검증을 생략한 insecure 기본값
## Context for Work
## 작업 컨텍스트
- 관련 앱: `apps/edge`, 향후 OTO agent repository
- 관련 문서: `docs/deploy-dev.md`, `docs/architecture.md`
- 선행 Milestone: M01, M02
- 선행 마일스톤: M01, M02

View file

@ -1,18 +1,18 @@
# M06 Control Plane and Portal
# M06 Control Plane Portal
## Goal
## 목표
여러 Edge를 연결하고 관찰하며 Edge 설정 변경, 명령 전달, 이벤트 수신을 담당하는 Control Plane과 Web Portal 운영면을 구축한다.
## Phase
## 단계
Phase 3. Control Plane and Portal Operations
Phase 3. Control Plane과 Portal 운영
## Status
## 상태
Planned
## Scope
## 범위
- Control Plane Go server의 Edge connection 관리
- Portal-Control Plane, Control Plane-Edge IOP Wire Protocol 확장
@ -21,27 +21,27 @@ Planned
- Edge agent 생성과 bootstrap command 발급 상태 조회/관리
- remote terminal bridge session 생성/조회/권한 확인 표면
## Required Features
## 필수 기능
- Control Plane은 Node를 직접 연결하거나 직접 스케줄링하지 않는다.
- Portal은 Control Plane을 통해 Edge 운영 상태를 조회한다.
- 브라우저 직접 TCP가 어려운 구간은 Control Plane server-side bridge를 둔다.
- `net/http`는 health/readiness/bootstrap 같은 보조 endpoint 용도로 유지한다.
## Success Criteria
## 성공 기준
- Control Plane이 하나 이상의 Edge 연결 상태를 조회할 수 있다.
- Portal이 Edge/Node/agent 상태를 사용자에게 보여줄 수 있다.
- Edge 명령 전달과 이벤트 수신 흐름이 IOP Wire Protocol 기준으로 문서화된다.
- Control Plane과 Web의 배포/검증 절차가 `docs/deploy-dev.md`와 일치한다.
## Non-Goals
## 제외 범위
- Control Plane을 Kubernetes식 중앙 스케줄러로 만드는 작업
- Edge 내부 DB를 Control Plane DB로 대체
- 모든 런타임 상태를 Control Plane 단일 원본으로 만드는 작업
## Context for Work
## 작업 컨텍스트
- 관련 앱: `apps/control-plane`, `apps/web`
- 관련 문서: `apps/control-plane/README.md`, `apps/web/README.md`, `docs/deploy-dev.md`

View file

@ -1,19 +1,19 @@
# M07 Policy History Audit
# M07 정책, 이력, 감사
## Goal
## 목표
권한, 정책, 실행 이력, 감사 로그를 제품 운영에 필요한 수준으로 확장한다.
특히 remote terminal bridge와 agent bootstrap은 보안/감사 요구사항을 필수 전제로 둔다.
특히 원격 터미널 브리지와 agent bootstrap은 보안/감사 요구사항을 필수 전제로 둔다.
## Phase
## 단계
Phase 3. Control Plane and Portal Operations
Phase 3. Control Plane과 Portal 운영
## Status
## 상태
Planned
## Scope
## 범위
- permission model과 policy enforcement 지점 정리
- Edge/Node 실행 이력과 Control Plane aggregation 경계
@ -22,27 +22,27 @@ Planned
- timeout, 동시 실행 제한, 입력/출력 기록 정책
- metrics/event API와 운영 리포트 후보
## Required Features
## 필수 기능
- Edge는 로컬 런타임 상태와 실행 이력의 원본을 유지한다.
- Control Plane은 Edge 데이터를 조회/집계하되 Edge 내부 상태 소유권을 대체하지 않는다.
- remote terminal bridge는 target allowlist, credential 관리, command/session audit를 필수로 요구한다.
- 원격 터미널 브리지는 target allowlist, credential 관리, command/session audit를 필수로 요구한다.
- policy/audit 상세 schema는 구현 단계에서 명확한 evidence와 함께 확정한다.
## Success Criteria
## 성공 기준
- 실행 요청, command, terminal session, bootstrap/enrollment에 대한 audit event 초안이 있다.
- 권한과 policy가 Edge/Control Plane/Node 경계 중 어디에서 적용되는지 문서화된다.
- 기존 실행 파이프라인을 깨지 않고 history/audit 수집을 붙일 수 있다.
## Non-Goals
## 제외 범위
- 상세 DB schema를 근거 없이 선확정
- 모든 이벤트를 Control Plane 단일 저장소로 강제
- 보안 전제가 없는 terminal bridge 또는 insecure bootstrap 기본값
## Context for Work
## 작업 컨텍스트
- 관련 앱: `apps/edge`, `apps/node`, `apps/control-plane`
- 관련 패키지: `packages/auth`, `packages/jobs`, 향후 policy/audit package
- 선행 Milestone: M04, M05, M06
- 선행 마일스톤: M04, M05, M06

View file

@ -1,19 +1,19 @@
# M08 Multi-Edge Operations
# M08 Multi-Edge 운영
## Goal
## 목표
여러 Edge group을 관찰하고 운영하는 fleet-level 기능을 구축한다.
Multi-edge scheduling과 fleet-wide state ownership은 Control Plane과 IOP native protocol에서 결정한다.
## Phase
## 단계
Phase 3. Control Plane and Portal Operations
Phase 3. Control Plane과 Portal 운영
## Status
## 상태
Planned
## Scope
## 범위
- 여러 Edge group 등록/상태 표시
- Edge별 runtime/automation 상태 집계
@ -22,27 +22,27 @@ Planned
- OTO 같은 domain agent의 build/deploy 상태, artifact, capability 포함
- fleet-wide 명령과 운영 리포트 후보
## Required Features
## 필수 기능
- Multi-edge 운영 명령과 이벤트 집계는 IOP native protocol을 기준으로 설계한다.
- OpenAI-compatible 표면은 특정 Edge/adapter로 라우팅되는 inference 호환 경로로 제한한다.
- A2A 표면은 특정 Edge/adapter로 위임되는 agent task 경로로 제한한다.
- Edge는 자신의 로컬 런타임 상태와 registry 소유권을 유지한다.
## Success Criteria
## 성공 기준
- Control Plane이 여러 Edge 상태를 구분해 조회하고 표시할 수 있다.
- Edge별 실행 이력과 domain agent 상태가 운영 화면에서 구분된다.
- fleet-wide 기능이 Edge의 로컬 상태 소유권을 침범하지 않는다.
## Non-Goals
## 제외 범위
- Control Plane이 매 요청마다 Node를 직접 할당하는 중앙 스케줄러 역할
- OpenAI-compatible API 또는 A2A API를 multi-edge 운영 제어 기본 프로토콜로 사용
- Edge federation 상세 설계를 근거 없이 선확정
## Context for Work
## 작업 컨텍스트
- 관련 앱: `apps/control-plane`, `apps/web`, `apps/edge`
- 관련 문서: `docs/architecture.md`
- 선행 Milestone: M06, M07
- 선행 마일스톤: M06, M07

View file

@ -25,7 +25,7 @@
- `bin/` — 사용자가 직접 실행하는 edge/node shell entrypoint이다.
- `Makefile` — 빌드와 테스트 진입점을 정의한다.
- `docs/` — 아키텍처 및 운영 방향 문서이다.
- `agent-ops/roadmap/` — 제품 Goal, Phase, Milestone의 canonical source of truth이다.
- `agent-ops/roadmap/` — 제품 목표, 단계, 마일스톤의 단일 기준 문서이다.
## 기술 스택
@ -61,11 +61,11 @@
## 마일스톤 컨텍스트 로딩
- 기능 추가, 구조 변경, 스킬 추가/수정, 문서 구조 변경 작업을 수행할 때는 `agent-ops/roadmap/current.md`를 먼저 읽는다.
- 요청이 Default Milestone 범위에 맞으면 Default Milestone 문서를 같은 세션에서 1회 읽는다.
- 요청이 Default Milestone과 맞지 않으면 `current.md`의 Active Milestones 목록에서 가장 관련 있는 Milestone 문서를 같은 세션에서 1회 읽는다.
- Active Milestones에도 맞지 않으면 `agent-ops/roadmap/ROADMAP.md`의 Milestone 인덱스를 확인하고 사용자에게 진행/전환 여부를 확인한다.
- `agent-ops/roadmap/ROADMAP.md`는 로드맵 생성/갱신, Phase 전환, Milestone 추가/수정 요청이 있을 때만 읽는다.
- 작업 요청이 선택된 Milestone의 Goal 또는 Non-Goals와 충돌하면 구현 전에 사용자에게 알리고 방향을 확인한다.
- 요청이 기본 마일스톤 범위에 맞으면 기본 마일스톤 문서를 같은 세션에서 1회 읽는다.
- 요청이 기본 마일스톤과 맞지 않으면 `current.md`의 활성 마일스톤 목록에서 가장 관련 있는 마일스톤 문서를 같은 세션에서 1회 읽는다.
- 활성 마일스톤에도 맞지 않으면 `agent-ops/roadmap/ROADMAP.md`의 마일스톤 인덱스를 확인하고 사용자에게 진행/전환 여부를 확인한다.
- `agent-ops/roadmap/ROADMAP.md`는 로드맵 생성/갱신, Phase 전환, 마일스톤 추가/수정 요청이 있을 때만 읽는다.
- 작업 요청이 선택된 마일스톤의 목표 또는 제외 범위와 충돌하면 구현 전에 사용자에게 알리고 방향을 확인한다.
## 도메인 매핑