oto/agent-task/m-control-plane-separation-migration/04+01,02,03_root_entrypoints/PLAN-cloud-G06.md
toki 86afabb3eb refactor(runner): 런타임 패키지를 앱 하위로 이동한다
독립 control plane 구성을 위해 기존 Dart CLI/runtime을 runner 앱 경계로 옮기고, 후속 client/core/root 작업을 같은 마일스톤 task group에 연결한다.
2026-06-05 06:34:45 +09:00

6.1 KiB

Implementation Plan - MONOREPO_ROOT

이 파일을 읽는 구현 에이전트에게

이 subtask는 디렉터리명 기준으로 01_runner_app, 02_client_app, 03_core_servicecomplete.log가 먼저 필요하다. 구현 완료 전 CODE_REVIEW-cloud-G06.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 구현 에이전트는 USER_REVIEW.md, archive log, complete.log를 만들지 않는다.

배경

첫 Epic의 앞선 세 작업이 앱/서비스 경계를 만들면 monorepo root에서 반복 개발 진입점이 필요하다. 현재 README와 scripts는 루트 단일 Dart package 기준이라 runner/client/core 작업을 위임하는 root helper로 정리해야 한다. 이 plan은 root Makefile과 README 실행 명령만 다룬다.

사용자 리뷰 요청 흐름

구현 중 blocker는 active review stub의 사용자 리뷰 요청 섹션에 기록한다. code-review가 검증하고 USER_REVIEW.md 작성 여부를 결정한다.

Roadmap Targets

  • Milestone: agent-roadmap/phase/independent-control-plane/milestones/control-plane-separation-migration.md
  • Task ids:
    • root-entrypoints: root bin/, Makefile 또는 동등한 helper가 runner/client/core 작업을 위임하도록 정리되어 monorepo root에서 개발 진입점이 명확하다.
  • Completion mode: check-on-pass

분석 결과

읽은 파일

  • agent-roadmap/current.md
  • agent-roadmap/phase/independent-control-plane/PHASE.md
  • agent-roadmap/phase/independent-control-plane/milestones/control-plane-separation-migration.md
  • agent-ops/rules/project/rules.md
  • agent-ops/skills/common/plan/SKILL.md
  • agent-test/local/rules.md
  • agent-test/local/cli-smoke.md
  • agent-test/local/framework-smoke.md
  • README.md
  • assets/script/shell/build.sh
  • assets/script/batch/build.bat
  • lib/cli/cli.dart
  • test/oto_agent_cli_test.dart
  • test/oto_application_test.dart
  • test/oto_catalog_cli_test.dart
  • test/oto_validate_cli_test.dart

테스트 환경 규칙

  • test_env: local
  • 적용 profiles: cli-smoke, framework-smoke.
  • 적용 명령: make runner-analyze, make runner-test, make client-test, make core-test, make test.
  • 확인한 도구: make/config/.local/bin/make, GNU Make 4.3.

테스트 커버리지 공백

  • 기존 테스트는 root Makefile 자체를 검증하지 않는다.
  • 이 plan은 Makefile target 실행을 최종 검증으로 사용한다.

심볼 참조

  • renamed/removed symbols: none.
  • path 문자열 보정 대상: root README.mddart compile exe bin/main.dart -o oto, scripts/tests에 남은 root bin/main.dart 참조가 있으면 모두 의도 여부를 확인한다.

분할 판단

  • split decision policy를 적용했다.
  • 이 subtask는 04+01,02,03_root_entrypoints이므로 predecessor indices 01, 02, 03이 필요하다.
  • 현재 predecessor complete.log 상태: active 경로 기준 missing. 구현 시작 전 다음 파일이 있어야 한다.
    • agent-task/m-control-plane-separation-migration/01_runner_app/complete.log
    • agent-task/m-control-plane-separation-migration/02_client_app/complete.log
    • agent-task/m-control-plane-separation-migration/03_core_service/complete.log

범위 결정 근거

  • runner/client/core 내부 기능 구현은 제외한다.
  • root helper는 Makefile 중심으로 둔다. 별도 root binary wrapper는 필요한 근거가 생기기 전까지 만들지 않는다.
  • roadmap 상태 체크는 이 plan에서 직접 수정하지 않는다.

빌드 등급

  • cloud-G06: 세 toolchain을 root에서 orchestration하고 predecessor 상태를 확인해야 하며 CLI/script 경로 회귀 위험이 있다.

의존 관계 및 구현 순서

  • 01_runner_app, 02_client_app, 03_core_servicecomplete.log가 모두 있어야 구현을 시작한다.
  • dependency는 디렉터리명 04+01,02,03_root_entrypoints가 source of truth다.

구현 체크리스트

  • predecessor complete.log 세 개가 있는지 확인하고 없으면 구현하지 않고 review stub에 차단 근거를 남긴다.
  • root Makefile을 추가해 runner/client/core setup/analyze/test/run helper를 위임한다.
  • root README의 설치/검증/프로젝트 구조를 monorepo 기준으로 보정한다.
  • root에서 make test 또는 개별 target을 실행해 위임 경로를 검증한다.
  • CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

[MONOREPO_ROOT-1] Add Root Makefile Delegation

문제: Milestone agent-roadmap/phase/independent-control-plane/milestones/control-plane-separation-migration.md:43은 root helper가 runner/client/core 작업을 위임해야 한다고 지정한다. 현재 root에는 Makefile이 없고 README는 README.md:18-21, :51, :67-73, :299-311에서 단일 Dart package 구조를 설명한다.

해결 방법:

Makefile target baseline:

runner-get:
	cd apps/runner && dart pub get
runner-analyze:
	cd apps/runner && dart analyze
runner-test:
	cd apps/runner && dart test
client-analyze:
	cd apps/client && flutter analyze
client-test:
	cd apps/client && flutter test
core-test:
	cd services/core && go test ./...
test: runner-test client-test core-test

수정 파일 및 체크리스트:

  • Makefile
  • README.md

테스트 작성: Makefile target 실행 자체를 검증으로 둔다. 별도 unit test는 만들지 않는다.

중간 검증:

make runner-analyze

예상 결과: runner analyzer 통과.

수정 파일 요약

파일 항목
Makefile MONOREPO_ROOT-1
README.md MONOREPO_ROOT-1

최종 검증

make test

예상 결과: runner/client/core delegated test target이 모두 통과한다.

모든 코드 변경 완료 후 반드시 CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 채운다. 이 파일 작성이 구현의 마지막 단계다.