--- test_env: local test_profile: command-smoke domain: command verification_type: smoke last_rule_updated_at: 2026-06-12 --- # command-smoke local 테스트 ## 읽기 조건 - `apps/runner/lib/oto/commands/**`, `apps/runner/lib/oto/data/**`, 또는 command template 변경 검증이 필요한 경우 ## 적용 범위 - Command registry, command runtime, command catalog, DataParam JSON 모델 ## 분류 - domain: command - verification_type: smoke - scope: command 구현과 데이터 모델 ## 환경 - host: `ssh toki@toki-labs.com` 원격 runner, checkout `/Users/toki/agent-work/oto` - port: 기본 command smoke는 public port를 사용하지 않는다. Core 연동이 필요하면 OTO Core HTTP `18020`을 사용한다. - runtime: Dart SDK - package manager: dart pub - docker: 기본 smoke는 Docker를 사용하지 않는다. - external service: 없음 - model endpoint: - credential: private input 원문은 tracked 파일에 기록하지 않는다. ## 명령 - setup: `cd apps/runner && dart pub get` (또는 `make runner-get`) - lint: `cd apps/runner && dart analyze` (또는 `make runner-analyze`) - unit: `cd apps/runner && dart test test/oto_command_catalog_test.dart test/oto_command_runtime_test.dart` (또는 `make runner-test`) - smoke: - e2e: - model: - full-cycle: ## 필수 검증 - command 도메인 변경 후 `cd apps/runner && dart analyze`를 실행한다. - command 도메인 변경 후 관련 `cd apps/runner && dart test ...` 명령을 실행한다. - `@JsonSerializable` 모델을 추가/변경한 경우 `cd apps/runner && dart run build_runner build`를 실행하거나 생성물 갱신 필요를 보고한다. ## 보조 검증 - 전체 command 회귀가 필요하면 `cd apps/runner && dart test` 또는 `make runner-test`를 실행한다. ## 판정 기준 - `cd apps/runner && dart analyze`가 issue 없이 종료한다. - 지정한 `cd apps/runner && dart test`가 모두 통과한다. - 생성 코드가 필요한 변경은 generated file과 source가 일치한다. ## 기준 출력 예시 ```text No issues found! All tests passed! ``` ## 차단 기준 - 원격 runner에 Dart SDK 또는 path dependency가 없어 command를 시작할 수 없는 경우 ## 보고 항목 - 실행한 명령: - 성공한 검증: - 실패/차단된 검증: - 생략 사유: - 남은 위험: ## 금지 사항 - 검증되지 않은 외부 서비스 응답을 command 통과 기준으로 기록하지 않는다.