3.3 KiB
3.3 KiB
| domain | last_rule_review_commit | last_rule_updated_at |
|---|---|---|
| framework | 67d7b6e411 |
2026-06-01 |
framework
목적 / 책임
현재 프로젝트에는 lib/framework/ 모듈이 없다.
이 도메인은 외부 Git 의존성인 dart_framework 사용 규칙, Dart toolchain 설정, 의존성 경계를 기록한다.
포함 경로
pubspec.yaml—dart_framework외부 Git 의존성 선언analysis_options.yaml— Dart analyzer/lint 기준
제외 경로
lib/framework/— 제거된 로컬 모듈. 새로 만들지 않는다lib/oto/— OTO 비즈니스 로직 (framework 위에서 동작)lib/cli/— CLI 레이어 (framework를 소비)
주요 구성 요소
dart_framework/core/application.dart—bin/main.dart에서 앱 진입 래퍼로 사용dart_framework/platform/process.dart— 커맨드 실행에서ProcessExecutor,ProcessData사용dart_framework/platform/isolate_manager.dart— CLI 실행/스케줄러 isolate 처리에서 사용dart_framework/utils/*—simpleFuture, path/system/string/os startup 유틸 사용dart_framework/log/log.dart—Application.logWithType()의 로그 타입에 사용proto_socket— agent Edge 등록 통신에서 사용하는 workspace 상위 path dependencyprotobuf/fixnum—lib/oto/agent/**의 generated protobuf 코드 런타임 의존성resource_importer—lib/resources.resource_importer.dart생성 파일과 asset 임베딩 설정
유지할 패턴
- 프로세스 실행은
ProcessExecutor.start()(스트리밍, stdout/stderr 실시간 수신) 또는ProcessExecutor.run()(블로킹, 결과만 필요) 중 목적에 맞게 선택 dart_frameworkAPI 사용 시 기존 import 패턴을 따른다- 외부 의존성 ref 변경은
pubspec.yaml에서만 수행하고, 변경 후dart pub get및dart analyze를 확인한다 - analyzer/lint 기준 변경은 기존 코드 전체에 영향을 줄 수 있으므로
dart analyze결과와 필요한 수정 범위를 함께 확인한다 - generated protobuf lint 예외는
analysis_options.yaml의 analyzer exclude 또는 파일 생성 주석으로 관리한다 - 로컬에
lib/framework/를 되살리는 대신 필요한 OTO 로직은lib/oto/또는lib/cli/의 해당 도메인에 둔다
다른 도메인과의 경계
- core:
lib/oto/application.dart는 OTO 오케스트레이터이며 외부 framework의 Application과 별개다 - cli/scheduler: isolate, process, OS startup 유틸을 소비하지만 스케줄러 정책은 scheduler 도메인에 둔다
- command: 커맨드들은
ProcessExecutor를 소비하지만 커맨드별 비즈니스 로직은 command 도메인에 둔다 - agent:
proto_socket,protobuf,fixnum의존성은 framework 도메인에서 관리하지만 Edge 등록 프로토콜과 agent 정책은 agent 도메인에 둔다
금지 사항
lib/framework/디렉터리를 새로 만들지 않는다- 외부
dart_framework내부 코드를 이 저장소의 도메인 rule 기준으로 직접 수정한다고 가정하지 않는다 - OTO 비즈니스 로직(파이프라인, 커맨드 등록 등)을 framework 의존성 변경으로 해결하려 하지 않는다
- generated dependency/runtime 코드를 수동 수정으로 문제 해결하려 하지 않는다