- lib/cli/commands/command_catalog.dart 추가: CLI 명령어 카탈로그 시스템 구현 - lib/oto/commands/command_catalog.dart 추가: OTO command catalog 구현 - test/oto_catalog_cli_test.dart 추가: 카탈로그 테스트 케이스 - CLI 명령어 라우팅 및 자동 생성 파이프라인 구축 - README.md, ROADMAP.md, current.md 업데이트 - milestone 문서들 (cli-automation-baseline, structured-automation-surface) 업데이트
50 lines
4.2 KiB
Markdown
50 lines
4.2 KiB
Markdown
# OTO 로드맵
|
|
|
|
## 전체 목표
|
|
|
|
OTO는 YAML 기반 빌드/배포 파이프라인을 실행하는 Dart CLI에서 출발해, Jenkins 내부 실행 도구에 머물지 않고 Edge에 직접 연결되는 가벼운 build/deploy agent로 확장한다.
|
|
기존 CLI, YAML 파이프라인, 커맨드 확장 모델은 유지하면서 외부 자동화와 원격 제어가 다루기 쉬운 실행 표면을 만든다.
|
|
|
|
## 현재 활성 창
|
|
|
|
- 활성 단계: CLI 자동화 표면 정리
|
|
- 활성 Milestone: 구조화된 자동화 표면
|
|
- 활성 Milestone 문서: `agent-ops/roadmap/milestones/structured-automation-surface.md`
|
|
|
|
## 단계 개요
|
|
|
|
### CLI 자동화 표면 정리
|
|
|
|
Jenkins, 파일 실행, 스케줄러로 동작하는 현재 CLI 표면을 장기 호환 경계로 정리한다.
|
|
YAML 파이프라인, 커맨드 확장, 단일 바이너리 배포 구조를 OTO의 핵심 경계로 유지하면서 기존 command catalog와 YAML validation 기반을 외부 자동화용 계약으로 확장하고, 실행 결과와 step event를 구조화한다.
|
|
Jenkins는 호환 실행 경로로 남기되 장기 제어면은 Jenkins 전용 환경 변수에 종속시키지 않는다.
|
|
|
|
### Edge bootstrap 기반 `oto-agent`
|
|
|
|
Edge에서 OTO agent를 생성하고 대상 머신에 bootstrap command를 발급하는 흐름을 설계한다.
|
|
Jenkins node 연결식 UX를 Edge 중심 bootstrap 경험으로 재해석해, 대상 머신이 짧은 명령 하나로 agent 설치와 등록을 시작할 수 있게 한다.
|
|
대상 머신은 bootstrap command 실행만으로 OS/arch에 맞는 OTO 바이너리를 설치하고 agent 설정을 생성한다.
|
|
HTTPS를 기본 권장하되 폐쇄망과 개발망을 위해 HTTP local/insecure 모드를 명시적으로 지원하고, TLS를 강제하지 않는 환경의 등록 보안 계약을 정의한다.
|
|
|
|
### 메시지 기반 빌드 에이전트
|
|
|
|
`oto agent` 또는 `oto daemon` 모드에서 Edge와 proto-socket 기반 양방향 메시지 통신을 사용한다.
|
|
OTO는 Edge 입장에서 build/deploy 전용 domain agent로 동작하며, YAML 파이프라인과 커맨드 확장 모델을 원격 제어 가능한 실행 표면으로 노출한다.
|
|
|
|
## Milestone 목록
|
|
|
|
| 단계 | Milestone | 상태 | 문서 | 목표 |
|
|
|-------|-----------|------|------|------|
|
|
| CLI 자동화 표면 정리 | CLI 자동화 기준선 정리 | 완료 | `milestones/cli-automation-baseline.md` | 현재 CLI 실행 모드와 핵심 호환 경계를 명확히 정리한다 |
|
|
| CLI 자동화 표면 정리 | 구조화된 자동화 표면 | 진행 중 | `milestones/structured-automation-surface.md` | 기존 catalog와 validation 기반을 외부 자동화용 출력 계약으로 확장한다 |
|
|
| CLI 자동화 표면 정리 | Jenkins 호환 경계 정리 | 계획 | `milestones/jenkins-compatibility-boundary.md` | Jenkins 호환 경로를 유지하면서 Jenkins 전용 환경 변수 의존을 제어한다 |
|
|
| Edge bootstrap 기반 `oto-agent` | Edge bootstrap 계약 | 계획 | `milestones/edge-bootstrap-contract.md` | Jenkins node 연결식 UX를 Edge bootstrap 설치/등록 계약으로 정리한다 |
|
|
| Edge bootstrap 기반 `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 생명주기를 완성한다 |
|
|
|
|
## 로딩 정책
|
|
|
|
- 일반 기능 추가, 구조 변경, 문서 구조 변경 작업에서는 `agent-ops/roadmap/current.md`를 먼저 읽고, 그 안의 활성 Milestone 문서를 같은 세션에서 1회 읽는다.
|
|
- `agent-ops/roadmap/ROADMAP.md`는 로드맵 생성/갱신, Phase 전환, Milestone 추가/수정 요청이 있을 때만 읽는다.
|
|
- 작업 요청이 활성 Milestone의 목표 또는 범위 제외 항목과 충돌하면 구현 전에 사용자에게 알리고 방향을 확인한다.
|