roadmap: phase 기반으로 재구조화 및 아카이브

This commit is contained in:
toki 2026-05-25 13:36:01 +09:00
parent a9af8a68b3
commit acd4f5e354
13 changed files with 207 additions and 59 deletions

View file

@ -7,44 +7,39 @@ OTO는 YAML 기반 빌드/배포 파이프라인을 실행하는 Dart CLI에서
## Phase 흐름
- CLI 자동화 표면 정리: Jenkins, 파일 실행, 스케줄러로 동작하는 현재 CLI 표면을 장기 호환 경계로 정리하고, command catalog, YAML validation, 실행 결과, step event를 외부 자동화용 계약으로 확장한다.
- Edge 직접 연결 기반 `oto-agent`: OTO가 iop Edge와 proto-socket 기반 outbound 통신을 할 수 있는 최소 연결 계약을 먼저 정리하고, 그 위에서 bootstrap 설치/등록 경험을 정의한다.
- 메시지 기반 빌드 에이전트: `oto agent` 또는 `oto daemon` 모드에서 Edge와 proto-socket 기반 양방향 메시지 통신을 사용하며, OTO를 build/deploy 전용 domain agent로 노출한다.
위에서 아래로 진행된 순서와 예정 흐름을 나타낸다.
완료된 Phase도 로드맵에서 제거하지 않고, archive의 Phase 문서로 연결한다.
검토중 또는 진행중 Phase는 계획 Phase보다 위에 두어, 아래로 갈수록 미래 계획에 가까워지게 정렬한다.
## Milestone 목록
### Edge 직접 연결 기반 `oto-agent`
- [`oto-agent` 등록 흐름](milestones/oto-agent-registration.md) - 상태: 진행 중; 목표: `oto-agent` 설치 후 Edge 직접 outbound 등록 흐름을 구현 가능한 단위로 정리한다.
### 메시지 기반 빌드 에이전트
- [agent 메시지 프로토콜](milestones/agent-message-protocol.md) - 상태: 계획; 목표: agent register, capabilities, run request 등 기본 메시지 프로토콜을 정의한다.
- [원격 실행 생명주기](milestones/remote-run-lifecycle.md) - 상태: 계획; 목표: 원격 실행, 로그, artifact, cancel, status, self-update 생명주기를 완성한다.
## 아카이브 Milestone 요약
- CLI 자동화 기준선 정리 - 상태: 완료; 아카이브일: 2026-05-24; 요약: 현재 CLI 실행 모드와 핵심 호환 경계를 장기 기준선으로 정리했다.; 핵심 산출물/근거: README와 CLI 실행 모드 구현이 `-j`, `-f`, `scheduler`, 단일 바이너리 배포 기준을 같은 경계로 설명한다.; 후속 영향: 구조화된 자동화 표면, Jenkins 호환 경계 정리
- 구조화된 자동화 표면 - 상태: 완료; 아카이브일: 2026-05-24; 요약: command catalog, YAML validation, 실행 결과, step event를 외부 자동화용 출력 계약으로 정리했다.; 핵심 산출물/근거: `oto catalog`, `oto validate --json`, `BuildResult.toJson`, `CommandExe --json`, step event snapshot 검증.; 후속 영향: 메시지 기반 빌드 에이전트
- Jenkins 호환 경계 정리 - 상태: 완료; 아카이브일: 2026-05-24; 요약: Jenkins 호환 실행 경로와 Jenkins 없는 file/scheduler 실행 경계를 분리했다.; 핵심 산출물/근거: Jenkins env 수집 책임 분리, file/scheduler 실행 검증, README 및 샘플 경계 문서화, `dart analyze`, `dart test` 통과.; 후속 영향: Edge 직접 연결 기반 `oto-agent`
- OTO-iop proto-socket 통신 기반 - 상태: 완료; 아카이브일: 2026-05-24; 요약: OTO가 iop Edge에 직접 연결하기 위한 proto-socket transport, register handshake, session, smoke 기준을 정리하고 검증했다.; 핵심 산출물/근거: `../proto-socket/dart` path dependency, iop Edge register handshake smoke, `dart analyze`, `dart test` 통과.; 후속 영향: Edge bootstrap 계약, `oto-agent` 등록 흐름, agent 메시지 프로토콜
- Edge bootstrap 계약 - 상태: 완료; 아카이브일: 2026-05-25; 요약: Jenkins node 연결식 UX를 Linux 대상 OTO bootstrap script 설치/등록 계약으로 정리했다.; 핵심 산출물/근거: `assets/script/shell/oto_agent_bootstrap.sh`, `test/oto_agent_bootstrap_script_test.dart`, `~/.oto/agent/config.yaml` 생성, release asset 다운로드, background 실행/pid/log 기준.; 후속 영향: `oto-agent` 등록 흐름
- [완료] CLI 자동화 표면 정리
- 경로: `agent-ops/roadmap/archive/phase/cli-automation-surface/PHASE.md`
- 요약: Jenkins, 파일 실행, 스케줄러로 동작하는 현재 CLI 표면을 장기 호환 경계와 외부 자동화 계약으로 정리했다.
- [진행중] Edge 직접 연결 기반 `oto-agent`
- 경로: `agent-ops/roadmap/phase/edge-direct-oto-agent/PHASE.md`
- 요약: OTO가 iop Edge와 proto-socket 기반 outbound 통신을 할 수 있는 최소 연결 계약과 bootstrap 설치/등록 경험을 정리한다.
- [계획] 메시지 기반 빌드 에이전트
- 경로: `agent-ops/roadmap/phase/message-based-build-agent/PHASE.md`
- 요약: `oto agent` 또는 `oto daemon` 모드에서 Edge와 양방향 메시지 통신을 사용하며, OTO를 build/deploy 전용 domain agent로 노출한다.
## 로딩 정책
- 일반 작업에서는 `agent-ops/roadmap/ROADMAP.md`를 매번 읽지 않는다.
- 기능 추가, 구조 변경, 스킬 추가/수정, 문서 구조 변경 작업을 수행할 때는 `agent-ops/roadmap/current.md`를 먼저 읽는다.
- `current.md`는 현재 작업 위치가 아니라 활성 Milestone 후보 목록이다.
- `current.md`는 현재 작업 위치가 아니라 활성 Phase와 활성 Milestone 후보 목록이다.
- `current.md`에는 개인별 현재 작업 위치나 완료 상태를 기록하지 않는다.
- `current.md`의 활성 Milestone은 `agent-ops/roadmap/milestones/` 하위 문서만 가리키며, `agent-ops/roadmap/archive/**`는 포함하지 않는다.
- 요청 내용, 현재 브랜치, 변경 파일, 관련 코드 경로를 보고 가장 관련 있는 활성 Milestone 문서를 같은 세션에서 1회 읽는다.
- 활성 Milestone 둘 이상에 걸치면 필요한 Milestone 문서를 모두 읽고 작업 범위를 좁힌다.
- 활성 Milestone 밖의 작업이면 이 문서의 Milestone 목록을 확인하고 사용자에게 진행 또는 전환 여부를 확인한다.
- 이 문서는 로드맵 생성/갱신, Phase 전환, Milestone 추가/수정 요청이 있을 때만 읽는다.
- 상세 작업과 완료 기준은 각 Milestone 문서의 체크리스트로 관리한다.
- 완료 또는 폐기되어 아카이브된 Milestone은 이 문서의 `아카이브 Milestone 요약`에 당시 요약만 남기고, 아카이브 문서 링크나 상세 경로는 남기지 않는다.
- 상세 문서가 있는 `agent-ops/roadmap/archive/**`는 사용자가 명시적으로 요청한 경우에만 읽는다.
- 아카이브된 Milestone 문서는 최신 템플릿이나 스킬 규약에 맞춰 재포맷하지 않는다.
- `current.md`의 활성 Phase는 `agent-ops/roadmap/phase/<phase-slug>/PHASE.md`를 가리킨다.
- `current.md`의 활성 Milestone은 `agent-ops/roadmap/phase/<phase-slug>/milestones/<milestone-slug>.md`를 가리킨다.
- `current.md``agent-ops/roadmap/archive/**` 경로를 활성 항목으로 포함하지 않는다.
- 요청 내용, 현재 브랜치, 변경 파일, 관련 코드 경로를 보고 가장 관련 있는 활성 Phase와 Milestone 문서를 같은 세션에서 1회 읽는다.
- 활성 Phase 또는 Milestone 밖의 작업이면 이 문서의 Phase 흐름을 확인하고 사용자에게 진행 또는 전환 여부를 확인한다.
- 이 문서는 로드맵 생성/갱신, Phase 전환, Phase 추가/수정, 전체 구조 변경 요청이 있을 때만 읽는다.
- 상세 작업과 완료 기준은 각 Milestone 문서의 `필수 기능`, `완료 기준`으로 관리한다.
- 모든 필수 작업과 완료 기준이 충족된 Milestone은 먼저 `[검토중]`으로 두고, 사용자 완료 확인과 archive 승인을 받은 뒤 `[완료]`로 전환한다.
- 완료된 Phase는 `agent-ops/roadmap/archive/phase/<phase-slug>/PHASE.md`로 이동하고, 하위 Milestone도 같은 archive Phase scaffold 아래에 둔다.
- 진행중 Phase 안에서 완료된 Milestone은 활성 Phase 문서에 짧은 링크를 남기고, 상세 문서는 `agent-ops/roadmap/archive/phase/<phase-slug>/milestones/`로 이동한다.
- archive `PHASE.md`는 Phase 자체가 완료 또는 폐기될 때만 만들며, 진행중 Phase의 완료 Milestone만 archive된 경우 archive Phase 디렉터리에 `milestones/`만 있을 수 있다.
- `agent-ops/roadmap/archive/**`는 일반 작업에서 읽지 않는다. 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `ROADMAP.md` 또는 `PHASE.md`의 archive 링크를 따라가서 읽는다.
- 아카이브된 Phase/Milestone 문서는 최신 템플릿이나 스킬 규약에 맞춰 재포맷하지 않는다.
- 선택된 Milestone의 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 코드 구현, `agent-task` 구현 계획 생성, 세부 API/파일 구조 확정을 시작하기 전에 현재 요청에 직접 영향을 주는 `결정 필요` 항목만 확인한다.
- 현재 요청과 직접 관련 없는 미정 항목은 잠금 상태로 남겨도 되며, 기존 구조/도메인 rule/플랫폼 관례로 정할 수 있는 작업은 표준선으로 기록하고 진행할 수 있다.
- Milestone 전체에서 사용자만 결정할 항목이 더 이상 없고 에이전트가 표준선에 따라 실행하면 되는 상태라면 `구현 잠금` 상태를 `해제`로 둔다.

View file

@ -0,0 +1,30 @@
# Phase: CLI 자동화 표면 정리
## 상태
[완료]
## 목표
Jenkins, 파일 실행, 스케줄러로 동작하는 현재 CLI 표면을 장기 호환 경계로 정리했다.
command catalog, YAML validation, 실행 결과, step event를 외부 자동화가 소비할 수 있는 계약으로 확장했다.
## Milestone 흐름
완료된 Milestone은 archive 경로를 가리키고, 검토중, 진행중, 계획 또는 보류 Milestone은 이 Phase 하위 `milestones/` 경로를 가리킨다.
완료, 검토중, 진행중, 계획 순서로 두어 아래로 갈수록 미래 작업에 가까워지게 정렬한다.
- [완료] CLI 자동화 기준선 정리
- 경로: `agent-ops/roadmap/archive/phase/cli-automation-surface/milestones/cli-automation-baseline.md`
- 요약: 현재 CLI 실행 모드와 핵심 호환 경계를 장기 기준선으로 정리했다.
- [완료] 구조화된 자동화 표면
- 경로: `agent-ops/roadmap/archive/phase/cli-automation-surface/milestones/structured-automation-surface.md`
- 요약: command catalog, YAML validation, 실행 결과, step event를 외부 자동화용 출력 계약으로 정리했다.
- [완료] Jenkins 호환 경계 정리
- 경로: `agent-ops/roadmap/archive/phase/cli-automation-surface/milestones/jenkins-compatibility-boundary.md`
- 요약: Jenkins 호환 실행 경로와 Jenkins 없는 file/scheduler 실행 경계를 분리했다.
## Phase 경계
- 이 Phase는 CLI 실행 모드, 호환 경계, 외부 자동화 출력 계약을 다룬다.
- Edge 직접 연결 agent와 메시지 기반 원격 실행은 후속 Phase에서 다룬다.

View file

@ -1,14 +1,26 @@
# 현재 로드맵 컨텍스트
## 활성 Phase
- [진행중] Edge 직접 연결 기반 `oto-agent`
- 경로: `agent-ops/roadmap/phase/edge-direct-oto-agent/PHASE.md`
## 활성 Milestone
- `oto-agent` 등록 흐름: agent-ops/roadmap/milestones/oto-agent-registration.md
- [진행중] `oto-agent` 등록 흐름
- Phase: `agent-ops/roadmap/phase/edge-direct-oto-agent/PHASE.md`
- 경로: `agent-ops/roadmap/phase/edge-direct-oto-agent/milestones/oto-agent-registration.md`
## 선택 규칙
- 이 문서는 활성 Milestone 후보 목록이며, 개인별 현재 작업 위치나 완료 상태를 기록하지 않는다.
- 활성 Milestone은 `agent-ops/roadmap/milestones/` 하위 문서만 가리키며, `agent-ops/roadmap/archive/**`는 포함하지 않는다.
- 요청 내용, 현재 브랜치, 변경 파일, 관련 코드 경로를 보고 가장 관련 있는 Milestone을 선택하고 같은 세션에서 1회 읽는다.
- 활성 Milestone 둘 이상에 걸치면 필요한 Milestone 문서를 모두 읽고 작업 범위를 좁힌다.
- 활성 Milestone 밖의 작업이면 `agent-ops/roadmap/ROADMAP.md`의 Milestone 목록을 확인하고 사용자에게 진행 또는 전환 여부를 확인한다.
- 이 문서는 활성 Phase와 활성 Milestone 후보 목록이며, 개인별 현재 작업 위치나 완료 상태를 기록하지 않는다.
- 활성 Phase는 `agent-ops/roadmap/phase/<phase-slug>/PHASE.md`를 가리킨다.
- 활성 Milestone은 `agent-ops/roadmap/phase/<phase-slug>/milestones/<milestone-slug>.md`를 가리킨다.
- 활성 항목은 아카이브 경로를 포함하지 않는다.
- `[검토중]` 항목은 사용자 완료 확인 전까지 활성 항목으로 남길 수 있다.
- `[완료]` 또는 `[폐기]` 항목은 archive 링크를 남긴 뒤 활성 항목에서 제거한다.
- 요청 내용, 현재 브랜치, 변경 파일, 관련 코드 경로를 보고 가장 관련 있는 Phase와 Milestone을 선택하고 같은 세션에서 1회 읽는다.
- 활성 Phase 또는 Milestone 둘 이상에 걸치면 필요한 문서를 모두 읽고 작업 범위를 좁힌다.
- 활성 범위 밖의 작업이면 `agent-ops/roadmap/ROADMAP.md`의 Phase 흐름을 확인하고 사용자에게 진행 또는 전환 여부를 확인한다.
- 완료된 과거 내용이 필요할 때만 `ROADMAP.md` 또는 `PHASE.md`에 있는 archive 링크를 따라가서 읽는다.
- 선택된 Milestone의 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 구현이나 구현 계획을 시작하기 전에 현재 요청에 직접 영향을 주는 `결정 필요` 항목만 확인한다. 관련 결정이 없고 표준선으로 처리 가능하면 잠금을 유지한 채 진행할 수 있으며, Milestone 전체에서 사용자만 결정할 항목이 더 이상 없을 때만 `구현 잠금` 상태를 `해제`로 둔다.

View file

@ -0,0 +1,32 @@
# Phase: Edge 직접 연결 기반 `oto-agent`
## 상태
[진행중]
## 목표
OTO가 `iop-node`를 거치지 않고 iop Edge에 직접 outbound 연결하는 최소 agent 계약을 정리한다.
bootstrap 설치 경험, proto-socket 연결 기반, 등록 상태 전이를 묶어 Linux MVP에서 구현 가능한 경계로 만든다.
## Milestone 흐름
완료된 Milestone은 archive 경로를 가리키고, 검토중, 진행중, 계획 또는 보류 Milestone은 이 Phase 하위 `milestones/` 경로를 가리킨다.
완료, 검토중, 진행중, 계획 순서로 두어 아래로 갈수록 미래 작업에 가까워지게 정렬한다.
- [완료] OTO-iop proto-socket 통신 기반
- 경로: `agent-ops/roadmap/archive/phase/edge-direct-oto-agent/milestones/oto-iop-proto-socket-foundation.md`
- 요약: OTO가 iop Edge에 직접 연결하기 위한 proto-socket transport, register handshake, session, smoke 기준을 정리하고 검증했다.
- [완료] Edge bootstrap 계약
- 경로: `agent-ops/roadmap/archive/phase/edge-direct-oto-agent/milestones/edge-bootstrap-contract.md`
- 요약: Jenkins node 연결식 UX를 Linux 대상 OTO bootstrap script 설치/등록 계약으로 정리했다.
- [진행중] `oto-agent` 등록 흐름
- 경로: `agent-ops/roadmap/phase/edge-direct-oto-agent/milestones/oto-agent-registration.md`
- 요약: `oto-agent` 설치 후 Edge 직접 outbound 등록 흐름을 구현 가능한 단위로 정리한다.
## Phase 경계
- 이 Phase는 Linux `oto-agent`의 설치, 설정 파일, Edge 직접 outbound 연결, 최초 등록 상태 전이를 다룬다.
- `iop-node`를 경유하는 generic node agent 기능은 포함하지 않는다.
- 메시지 기반 원격 실행, 로그, artifact, cancel, self-update 전체 생명주기는 다음 Phase에서 다룬다.
- Edge identity 검증, checksum/signature, 장기 credential 운영 정책은 MVP 이후 보안 강화 항목으로 분리한다.

View file

@ -1,16 +1,17 @@
# `oto-agent` 등록 흐름
# Milestone: `oto-agent` 등록 흐름
## 위치
- Roadmap: `agent-ops/roadmap/ROADMAP.md`
- Phase: `agent-ops/roadmap/phase/edge-direct-oto-agent/PHASE.md`
## 목표
설치된 `oto-agent``iop-node`를 거치지 않고 Edge에 직접 outbound 연결하는 등록 흐름을 구현 가능한 단위로 정리한다.
## 단계
Edge 직접 연결 기반 `oto-agent`
## 상태
진행
[진행중]
## 구현 잠금
@ -26,6 +27,10 @@ Edge 직접 연결 기반 `oto-agent`
## 필수 기능
### Epic: [registration-contract] Edge 직접 등록 계약
bootstrap으로 설치된 Linux `oto-agent`가 설정 파일을 읽고 Edge에 직접 등록되는 상태 전이를 묶는다.
- [x] [token-flow] bootstrap agent 식별 값 또는 token의 전달과 최초 등록 사용 흐름이 정의되어 있다.
- [x] [edge-identity] Edge identity 검증을 MVP 최소 연결 기준과 후속 보안 강화 기준으로 분리해 정리되어 있다.
- [x] [binary-integrity] OTO repo release asset 다운로드 기준과 후속 checksum/signature 강화 기준이 분리되어 있다.
@ -40,6 +45,16 @@ Edge 직접 연결 기반 `oto-agent`
- [x] `iop-node`를 경유하지 않는다는 제품 경계가 명확하다.
- [x] 보안 강화 항목이 후속 작업으로 분리되어 MVP 등록 흐름을 막지 않는다.
## 완료 리뷰
- 상태: 없음
- 요청일: 없음
- 완료 근거: `registration-state`와 online/실패/heartbeat 기준이 남아 있어 완료 후보가 아니다.
- 리뷰 필요:
- [ ] 사용자가 완료 결과를 확인했다
- [ ] archive 이동을 승인했다
- 리뷰 코멘트: 없음
## 범위 제외
- generic node agent 기능을 포함하지 않는다.
@ -49,7 +64,8 @@ Edge 직접 연결 기반 `oto-agent`
## 작업 컨텍스트
- 선행 Edge bootstrap 계약은 완료 상태로 아카이브되었으며, 일반 작업에서는 `ROADMAP.md`의 아카이브 요약과 아래 표준선을 기준으로 한다.
- 관련 경로: `lib/oto/**`, `test/oto_agent_*`, `assets/script/shell/oto_agent_bootstrap.sh`
- 선행 Edge bootstrap 계약은 완료 상태로 아카이브되었으며, 일반 작업에서는 활성 Phase의 archive 링크와 아래 표준선을 기준으로 한다.
- 선행 계약의 상세 문서는 과거 기록 확인이나 복원이 명시된 경우에만 읽는다.
- 표준선(선택): Linux MVP는 OTO가 없는 대상 머신에서 bootstrap script로 release asset을 다운로드한 뒤 `~/.oto/agent/config.yaml`을 생성하고 백그라운드로 실행한다.
- 표준선(선택): online 판정은 Edge 등록 완료와 최초 heartbeat 도착을 모두 만족했을 때로 둔다.
@ -62,8 +78,9 @@ Edge 직접 연결 기반 `oto-agent`
- MVP 재시작 기준: bootstrap으로 시작한 background 프로세스의 pid/log를 기준으로 사용자가 상태를 확인하고 `oto agent run --config <path>`를 재실행한다. 자동 재시작과 systemd user service는 후속 강화로 둔다.
- 남은 작업: Edge 등록 완료 이후 최초 heartbeat 도착까지의 online 판정과 재시도 정책은 agent 메시지/heartbeat 흐름과 맞물려 별도 정리가 필요하다.
- 선행 OTO Milestone: OTO-iop proto-socket 통신 기반
- 선행 iop Milestone: `../iop/agent-ops/roadmap/milestones/agent-bootstrap-oto-enrollment.md`
- 선행 iop Milestone: agent bootstrap OTO enrollment
- 책임 경계: iop는 Edge outbound enrollment를 받아들이는 registry/protocol/credential 기준을 정리한다.
- 책임 경계: OTO는 설치된 `oto-agent`가 해당 기준을 소비해 설정을 만들고 Edge에 직접 outbound 연결하는 상태 전이를 정리한다.
- 네트워크, 설치, packaging 관련 코드나 문서가 추가될 경우 관련 도메인 rule을 먼저 확인한다.
- 구현 계획: `agent-task/oto_agent_registration/` 하위 plan-code-review 루프로 진행한다.
- 구현 계획: `agent-task/m-oto-agent-registration/` 하위 plan-code-review 루프로 진행한다.
- 확인 필요: Edge 등록 완료 이후 최초 heartbeat 도착까지의 online 판정과 재시도 정책을 agent 메시지/heartbeat 흐름과 맞춰 정리한다.

View file

@ -0,0 +1,28 @@
# Phase: 메시지 기반 빌드 에이전트
## 상태
[계획]
## 목표
`oto agent` 또는 `oto daemon` 모드에서 Edge와 proto-socket 기반 양방향 메시지 통신을 사용한다.
OTO를 generic remote shell이 아니라 build/deploy 전용 domain agent로 노출하고, 기존 YAML 파이프라인과 커맨드 확장 모델을 원격 제어 가능한 실행 표면으로 연결한다.
## Milestone 흐름
완료된 Milestone은 archive 경로를 가리키고, 검토중, 진행중, 계획 또는 보류 Milestone은 이 Phase 하위 `milestones/` 경로를 가리킨다.
완료, 검토중, 진행중, 계획 순서로 두어 아래로 갈수록 미래 작업에 가까워지게 정렬한다.
- [계획] agent 메시지 프로토콜
- 경로: `agent-ops/roadmap/phase/message-based-build-agent/milestones/agent-message-protocol.md`
- 요약: agent register, capabilities, run request 등 기본 메시지 프로토콜을 정의한다.
- [계획] 원격 실행 생명주기
- 경로: `agent-ops/roadmap/phase/message-based-build-agent/milestones/remote-run-lifecycle.md`
- 요약: 원격 실행, 로그, artifact, cancel, status, self-update 생명주기를 완성한다.
## Phase 경계
- 기존 YAML 파이프라인 형식과 로컬 CLI 실행 경로를 대체하지 않는다.
- Edge 관리 UI, 전체 scheduling policy, artifact storage 운영 정책은 포함하지 않는다.
- 메시지 프로토콜과 원격 실행 생명주기는 build/deploy agent 책임 안에서만 정의한다.

View file

@ -1,16 +1,17 @@
# agent 메시지 프로토콜
# Milestone: agent 메시지 프로토콜
## 위치
- Roadmap: `agent-ops/roadmap/ROADMAP.md`
- Phase: `agent-ops/roadmap/phase/message-based-build-agent/PHASE.md`
## 목표
`oto agent` 또는 `oto daemon` 모드에서 Edge와 proto-socket 기반 양방향 메시지 통신을 하기 위한 기본 메시지 범위와 계약을 정의한다.
## 단계
메시지 기반 빌드 에이전트
## 상태
계획
[계획]
## 구현 잠금
@ -28,6 +29,10 @@
## 필수 기능
### Epic: [message-contract] Edge-agent 메시지 계약
Edge와 OTO agent가 같은 의미로 해석할 기본 메시지 범위와 호환성 기준을 묶는다.
- [ ] [message-list] 기본 메시지 목록과 방향성이 정의되어 있다.
- [ ] [message-fields] 각 메시지의 최소 필드와 실패 응답 형식이 정의되어 있다.
- [ ] [version-capability] 프로토콜 버전과 capability 협상 기준이 정의되어 있다.
@ -39,6 +44,16 @@
- [ ] YAML 파이프라인과 커맨드 모델이 메시지 위에서 어떻게 호출되는지 설명된다.
- [ ] 메시지 추가가 기존 CLI 실행 경로를 깨지 않는다는 경계가 명확하다.
## 완료 리뷰
- 상태: 없음
- 요청일: 없음
- 완료 근거: 계획 상태이며 필수 Task와 완료 기준이 아직 충족되지 않았다.
- 리뷰 필요:
- [ ] 사용자가 완료 결과를 확인했다
- [ ] archive 이동을 승인했다
- 리뷰 코멘트: 없음
## 범위 제외
- 웹 UI 또는 Edge 관리 화면을 구현하지 않는다.
@ -47,11 +62,13 @@
## 작업 컨텍스트
- 관련 경로: `lib/oto/**`, `test/**`
- CLI 자동화 표면 정리 단계의 구조화 실행 결과와 step event 기준을 먼저 확인한다.
- 표준선(선택): 메시지 형태는 기존 proto-socket 연결 방식과 구조화 실행 결과/step event 계약을 우선 활용하고, YAML 파이프라인 실행 경로를 대체하지 않는 방향으로 잡는다.
- 선행 Milestone: OTO-iop proto-socket 통신 기반
- 선행 Milestone: `oto-agent` 등록 흐름
- 관련 iop Milestone: `../iop/agent-ops/roadmap/milestones/agent-bootstrap-oto-enrollment.md`
- 관련 iop Milestone: agent bootstrap OTO enrollment
- 책임 경계: iop는 Edge가 이해해야 하는 specialized domain agent registry/protocol 경계를 정리한다.
- 책임 경계: OTO는 build/deploy domain agent가 노출할 capabilities, YAML run request 연결, step/log/artifact event 의미를 정리한다.
- 프로토콜 파일이나 생성 코드가 추가되면 관련 도메인 rule 또는 새 도메인 rule 필요 여부를 검토한다.
- 확인 필요: 구현 착수 전 proto 파일, 생성 코드, 메시지 버전의 소유 경계를 확정한다.

View file

@ -1,16 +1,17 @@
# 원격 실행 생명주기
# Milestone: 원격 실행 생명주기
## 위치
- Roadmap: `agent-ops/roadmap/ROADMAP.md`
- Phase: `agent-ops/roadmap/phase/message-based-build-agent/PHASE.md`
## 목표
Edge가 OTO agent에 파이프라인 실행을 요청하고, agent가 실행 진행 상황과 산출물을 보고하며, 취소와 상태 조회, self-update까지 이어지는 원격 실행 생명주기를 완성한다.
## 단계
메시지 기반 빌드 에이전트
## 상태
계획
[계획]
## 구현 잠금
@ -29,6 +30,10 @@ Edge가 OTO agent에 파이프라인 실행을 요청하고, agent가 실행 진
## 필수 기능
### Epic: [remote-lifecycle] 원격 실행 상태 전이
Edge의 run request가 기존 YAML 파이프라인 실행, 진행 보고, 취소, 상태 조회, self-update로 이어지는 생명주기를 묶는다.
- [ ] [run-input] run request가 pipeline 실행 입력으로 변환되는 기준이 정의되어 있다.
- [ ] [step-log] step event와 log stream이 원격 소비자에게 전달되는 흐름이 정의되어 있다.
- [ ] [artifact-event] artifact event의 메타데이터와 전달 책임이 정의되어 있다.
@ -40,6 +45,16 @@ Edge가 OTO agent에 파이프라인 실행을 요청하고, agent가 실행 진
- [ ] 기존 YAML 파이프라인과 커맨드 확장 모델을 유지하면서 원격 제어가 가능하다.
- [ ] self-update가 agent 안정성을 해치지 않도록 최소 실패 기준이 있다.
## 완료 리뷰
- 상태: 없음
- 요청일: 없음
- 완료 근거: 계획 상태이며 필수 Task와 완료 기준이 아직 충족되지 않았다.
- 리뷰 필요:
- [ ] 사용자가 완료 결과를 확인했다
- [ ] archive 이동을 승인했다
- 리뷰 코멘트: 없음
## 범위 제외
- YAML 파이프라인 언어를 새 DSL로 교체하지 않는다.
@ -48,7 +63,9 @@ Edge가 OTO agent에 파이프라인 실행을 요청하고, agent가 실행 진
## 작업 컨텍스트
- 관련 경로: `lib/oto/pipeline/**`, `lib/oto/commands/**`, `lib/oto/core/**`, `test/**`
- agent 메시지 프로토콜과 CLI 자동화 표면 정리 단계의 구조화 출력 기준을 먼저 확인한다.
- 표준선(선택): run request는 기존 YAML 파이프라인 입력으로 변환하고, 진행 상태는 기존 step event/log/result 표면을 우선 재사용한다. cancel/status/self-update는 Edge 정책이 정해지기 전까지 build/deploy agent의 최소 안전 동작으로만 정리한다.
- 선행 Milestone: agent 메시지 프로토콜
- pipeline, command, core 도메인 rule이 관련될 수 있다.
- 확인 필요: Edge scheduling policy, artifact transport, self-update 절차 중 OTO 책임 범위를 확정한다.