# Jenkins 호환 경계 정리 ## 목표 Jenkins 실행 경로를 유지하면서도 OTO의 장기 제어면이 Jenkins 전용 환경 변수와 실행 환경에 종속되지 않도록 경계를 정리한다. ## 단계 CLI 자동화 표면 정리 ## 상태 완료 ## 구현 잠금 - 상태: 해제 - 이유: 완료된 Milestone이며 완료 기준과 완료 근거가 문서화되어 있다. 후속 확장은 별도 Milestone에서 다룬다. - 해제 근거: 완료된 Milestone으로 완료 근거가 `작업 컨텍스트`에 문서화되어 있다. - 잠금 중 금지: - 해당 없음 ## 범위 - Jenkins 환경 변수 파싱과 일반 파일 기반 실행 경로의 경계를 명확히 한다. - Jenkins는 호환 adapter로 유지하고, core pipeline 실행은 Jenkins 밖에서도 동일하게 동작하도록 정리한다. - scheduler와 file 모드가 장기 제어면의 기준 실행 경로로 쓰일 수 있는지 확인한다. ## 필수 기능 - [x] [jenkins-env] Jenkins 환경 데이터 수집 책임이 분리되어 있다. - [x] [jenkins-free] file 모드와 scheduler 모드가 Jenkins 없이 실행 가능한 경로로 검증되어 있다. - [x] [compat-boundary] Jenkins 호환 유지 항목과 장기 의존 제거 후보가 구분되어 있다. - [x] [doc-boundary] 문서에서 Jenkins 전용 경로와 일반 실행 경로가 혼동되지 않는다. ## 완료 기준 - [x] Jenkins 없이도 OTO 파이프라인 실행 경로를 설명하고 테스트할 수 있다. - [x] Jenkins 관련 변경이 core pipeline, command model, structured output에 불필요하게 전파되지 않는다. - [x] Jenkins 지원을 제거하지 않고도 Edge agent 방향으로 확장할 수 있다. ## 범위 제외 - Jenkins 모드를 제거하지 않는다. - Jenkins plugin 또는 Jenkins UI 통합을 새로 만들지 않는다. - Edge bootstrap 구현을 포함하지 않는다. ## 작업 컨텍스트 - `lib/oto/core/data_composer.dart`, `lib/oto/data/command_data.dart`, `lib/oto/application.dart`, `lib/cli/**`, Jenkins 샘플 YAML을 확인한다. - core, cli, sample 도메인 rule이 관련될 수 있다. - 완료 근거: Jenkins env 수집 책임 분리, file/scheduler Jenkins-free 실행 검증, README 및 샘플 경계 문서화를 반영했고 `dart analyze`, `dart test test/oto_command_catalog_test.dart`, `dart test`가 통과했다. - 후속 작업: `Edge bootstrap 계약`으로 활성 Milestone 창을 전환한다.