# Milestone: IOP OTO 전용 경로 제거

## 위치

- Roadmap: `agent-roadmap/ROADMAP.md`
- Phase: `agent-roadmap/phase/automation-runtime-bridge/PHASE.md`

## 목표

OTO가 IOP Edge에 직접 붙는 specialized domain agent가 아니라 독립 Control Plane 기반으로 전환된 상태를 IOP 코드와 문서에 반영한다.
IOP에는 OTO 전용 agent kind, bootstrap config, smoke target, test fixture, 운영 문구를 남기지 않고, 필요한 확장 지점은 generic external/domain agent 또는 adapter 경계로만 표현한다.

## 상태

[완료]

## 구현 잠금

- 상태: 해제
- 결정 필요: 없음

## 범위

- IOP 활성 코드, 설정, 테스트, README, agent-ops/project rule, 활성 로드맵 문서에 남은 OTO 전용 표현 제거
- `oto-agent`, `AgentKindOTOAgent`, `oto_bootstrap_script_url`, `oto_release_base_url`, OTO registration smoke, OTO bootstrap command 발급 경로 제거
- Edge/Node/Control Plane/Client fixture에서 OTO 전용 agent 예시를 generic agent 또는 build-deploy-neutral fixture로 전환
- OTO와 IOP 간 통합 검증 책임을 IOP repository 밖 또는 OTO 독립 Control Plane 경계로 분리

## 기능

### Epic: [decommission] OTO-Specific IOP Decommission

- [x] [inventory] 활성 파일 기준으로 OTO 전용 잔여 지점을 목록화하고 archive 스냅샷과 무관한 제거 대상을 확정한다.
- [x] [config-cleanup] `packages/go/config`, `configs/edge.yaml`, Edge command에서 OTO 전용 agent kind와 bootstrap/release config를 제거한다.
- [x] [runtime-cleanup] Edge registry, transport, service snapshot, Control Plane/Client fixture에서 OTO 전용 조건 분기와 표시 문구를 제거하거나 generic 표현으로 바꾼다.
- [x] [smoke-cleanup] `Makefile`의 OTO registration smoke와 OTO repository 의존 실행 경로를 제거한다.
- [x] [docs-cleanup] README, agent-ops project rules, 활성 로드맵 문서에서 OTO를 IOP-managed specialized agent로 설명하는 최신 문구를 제거하고 독립 경계로 정리한다.
- [x] [verification] active code/docs 검색과 변경 영향 테스트로 OTO 전용 경로 제거를 검증한다. 검증: `rg -n --hidden -S "\bOTO\b|\boto\b|oto-agent|OTOAgent|OTOBootstrap|oto_bootstrap|oto_release" -g '!agent-roadmap/archive/**' -g '!agent-task/archive/**' -g '!.git/**' -g '!build/**'` 결과가 archive/역사 보존 외 제거 대상 없음으로 정리되고, 변경 범위에 맞는 Go/Flutter 테스트가 통과한다.

## 완료 리뷰

- 상태: 승인됨
- 요청일: 2026-06-06
- 완료 근거: `packages/go/config/config_test.go`의 OTO 전용 negative fixture와 `apps/edge/cmd/edge/main_test.go`의 legacy help unwanted list를 정리했고, 비-roadmap 활성 코드/문서 검색에서 OTO 전용 잔여가 없음을 확인했다.
- 완료 근거: `go test ./packages/go/config`, `go test ./apps/edge/cmd/edge`, `go test ./packages/go/... ./apps/edge/...`가 통과했다. Flutter 변경은 없어 Flutter 테스트는 범위 밖으로 보았다.
- 리뷰 필요:
  - [x] 사용자가 완료 결과를 확인했다
  - [x] archive 이동을 승인했다
- 리뷰 코멘트: 2026-06-06 사용자 요청으로 완료 처리하고 archive 이동했다. 작은 잔여 작업은 즉시 처리했고, 별도 plan이 필요한 큰 작업은 발견되지 않았다.

## 범위 제외

- `agent-roadmap/archive/**`와 `agent-task/archive/**`의 과거 기록 스냅샷 재작성
- OTO repository 내부의 독립 Control Plane 구현
- generic external/domain agent 체계의 신규 제품 기능 설계

## 작업 컨텍스트

- 관련 경로: `Makefile`, `README.md`, `configs/edge.yaml`, `packages/go/config`, `apps/edge`, `apps/control-plane`, `apps/client`, `agent-ops/rules/project/rules.md`, `agent-roadmap/ROADMAP.md`, `agent-roadmap/phase/automation-runtime-bridge/PHASE.md`
- 표준선: IOP는 OTO를 직접 등록/부트스트랩/상태 관리하는 책임을 갖지 않는다. 필요한 generic 확장 지점은 OTO 이름 없이 external/domain agent 또는 adapter-neutral 표현으로 남긴다.
- 선행 작업: OTO 독립형 실행 전환 결정, Edge 직접 OTO registration 관련 Milestone 폐기
- 후속 작업: 제거 후 필요하면 generic external agent 경계를 별도 Milestone으로 재정의한다.
- 현재 동기화 상태: 작은 잔여 작업은 직접 처리했다. 비-archive `agent-task`에는 별도 plan이 필요한 `m-oto-specific-iop-removal` 작업 산출물이 없다.
- 현재 inventory: 비-roadmap 활성 코드/문서에서는 OTO 전용 문자열 검색 결과가 없다. 활성 Phase/Milestone의 OTO 언급은 과거 링크 또는 현재 제거 작업 문맥으로 본다.
