독립 control plane 구성을 위해 기존 Dart CLI/runtime을 runner 앱 경계로 옮기고, 후속 client/core/root 작업을 같은 마일스톤 task group에 연결한다.
6.1 KiB
Implementation Plan - MONOREPO_ROOT
이 파일을 읽는 구현 에이전트에게
이 subtask는 디렉터리명 기준으로 01_runner_app, 02_client_app, 03_core_service의 complete.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: rootbin/, Makefile 또는 동등한 helper가 runner/client/core 작업을 위임하도록 정리되어 monorepo root에서 개발 진입점이 명확하다.
- Completion mode: check-on-pass
분석 결과
읽은 파일
agent-roadmap/current.mdagent-roadmap/phase/independent-control-plane/PHASE.mdagent-roadmap/phase/independent-control-plane/milestones/control-plane-separation-migration.mdagent-ops/rules/project/rules.mdagent-ops/skills/common/plan/SKILL.mdagent-test/local/rules.mdagent-test/local/cli-smoke.mdagent-test/local/framework-smoke.mdREADME.mdassets/script/shell/build.shassets/script/batch/build.batlib/cli/cli.darttest/oto_agent_cli_test.darttest/oto_application_test.darttest/oto_catalog_cli_test.darttest/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 Make4.3.
테스트 커버리지 공백
- 기존 테스트는 root Makefile 자체를 검증하지 않는다.
- 이 plan은 Makefile target 실행을 최종 검증으로 사용한다.
심볼 참조
- renamed/removed symbols: none.
- path 문자열 보정 대상: root
README.md의dart compile exe bin/main.dart -o oto, scripts/tests에 남은 rootbin/main.dart참조가 있으면 모두 의도 여부를 확인한다.
분할 판단
- split decision policy를 적용했다.
- 이 subtask는
04+01,02,03_root_entrypoints이므로 predecessor indices01,02,03이 필요하다. - 현재 predecessor
complete.log상태: active 경로 기준 missing. 구현 시작 전 다음 파일이 있어야 한다.agent-task/m-control-plane-separation-migration/01_runner_app/complete.logagent-task/m-control-plane-separation-migration/02_client_app/complete.logagent-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_service의complete.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
수정 파일 및 체크리스트:
MakefileREADME.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의 구현 에이전트 소유 섹션을 채운다. 이 파일 작성이 구현의 마지막 단계다.