From 619c9e223fd74f94431f4d1de0b88d9475294a6b Mon Sep 17 00:00:00 2001 From: toki Date: Fri, 5 Jun 2026 10:43:51 +0900 Subject: [PATCH] =?UTF-8?q?test(local):=20=EB=A1=9C=EC=BB=AC=20=EA=B2=80?= =?UTF-8?q?=EC=A6=9D=20=EA=B7=9C=EC=B9=99=EC=9D=84=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 도메인별 smoke 기준을 저장소에 남겨 이후 로컬 검증 범위를 일관되게 선택할 수 있게 한다. --- agent-test/local/agent-smoke.md | 81 ++++++++++++++++++++++++++++ agent-test/local/cli-smoke.md | 81 ++++++++++++++++++++++++++++ agent-test/local/command-smoke.md | 82 +++++++++++++++++++++++++++++ agent-test/local/core-smoke.md | 80 ++++++++++++++++++++++++++++ agent-test/local/framework-smoke.md | 82 +++++++++++++++++++++++++++++ agent-test/local/pipeline-smoke.md | 80 ++++++++++++++++++++++++++++ agent-test/local/rules.md | 45 ++++++++++++++++ agent-test/local/sample-smoke.md | 80 ++++++++++++++++++++++++++++ agent-test/local/scheduler-smoke.md | 80 ++++++++++++++++++++++++++++ 9 files changed, 691 insertions(+) create mode 100644 agent-test/local/agent-smoke.md create mode 100644 agent-test/local/cli-smoke.md create mode 100644 agent-test/local/command-smoke.md create mode 100644 agent-test/local/core-smoke.md create mode 100644 agent-test/local/framework-smoke.md create mode 100644 agent-test/local/pipeline-smoke.md create mode 100644 agent-test/local/rules.md create mode 100644 agent-test/local/sample-smoke.md create mode 100644 agent-test/local/scheduler-smoke.md diff --git a/agent-test/local/agent-smoke.md b/agent-test/local/agent-smoke.md new file mode 100644 index 0000000..8458a07 --- /dev/null +++ b/agent-test/local/agent-smoke.md @@ -0,0 +1,81 @@ +--- +test_env: local +test_profile: agent-smoke +domain: agent +verification_type: smoke +last_rule_updated_at: 2026-06-05 +--- + +# agent-smoke local 테스트 + +## 읽기 조건 + +- `lib/oto/agent/**`, `lib/cli/commands/command_agent.dart`, 또는 `assets/script/shell/oto_agent_bootstrap.sh` 변경 검증이 필요한 경우 + +## 적용 범위 + +- OTO agent 등록/설정/CLI/bootstrap smoke 경로 + +## 분류 + +- domain: agent +- verification_type: smoke +- scope: OTO agent 로컬 동작과 기존 smoke test + +## 환경 + +- host: +- port: +- runtime: Dart SDK +- package manager: dart pub +- docker: +- external service: 없음 +- model endpoint: +- credential: + +## 명령 + +- setup: `dart pub get` +- lint: `dart analyze` +- unit: `dart test test/oto_agent_bootstrap_script_test.dart test/oto_agent_cli_test.dart test/oto_agent_config_test.dart test/oto_agent_registration_test.dart test/oto_iop_connection_smoke_test.dart` +- smoke: +- e2e: +- model: +- full-cycle: + +## 필수 검증 + +- agent 도메인 변경 후 `dart analyze`를 실행한다. +- agent 도메인 변경 후 agent 관련 `dart test` 명령을 실행한다. + +## 보조 검증 + +- 전체 회귀가 필요한 경우 `dart test`를 실행한다. + +## 판정 기준 + +- `dart analyze`가 issue 없이 종료한다. +- 지정한 `dart test`가 모두 통과한다. + +## 기준 출력 예시 + +```text +No issues found! +All tests passed! +``` + +## 차단 기준 + +- Dart SDK 또는 path dependency가 없어 `dart pub get`, `dart analyze`, `dart test`를 시작할 수 없는 경우 + +## 보고 항목 + +- 실행한 명령: +- 성공한 검증: +- 실패/차단된 검증: +- 생략 사유: +- 남은 위험: + +## 금지 사항 + +- 외부 iop endpoint, secret, token 원문을 테스트 규칙이나 tracked 문서에 기록하지 않는다. diff --git a/agent-test/local/cli-smoke.md b/agent-test/local/cli-smoke.md new file mode 100644 index 0000000..6e405a5 --- /dev/null +++ b/agent-test/local/cli-smoke.md @@ -0,0 +1,81 @@ +--- +test_env: local +test_profile: cli-smoke +domain: cli +verification_type: smoke +last_rule_updated_at: 2026-06-05 +--- + +# cli-smoke local 테스트 + +## 읽기 조건 + +- `bin/main.dart`, `lib/cli/**`, `assets/script/**`, `assets/bin/**`, `assets/package/**`, 또는 resource importer 변경 검증이 필요한 경우 + +## 적용 범위 + +- OTO CLI entrypoint, command parsing, validate/catalog/runtime smoke + +## 분류 + +- domain: cli +- verification_type: smoke +- scope: CLI 로컬 실행 표면 + +## 환경 + +- host: +- port: +- runtime: Dart SDK +- package manager: dart pub +- docker: +- external service: 없음 +- model endpoint: +- credential: + +## 명령 + +- setup: `dart pub get` +- lint: `dart analyze` +- unit: `dart test test/oto_cli_runtime_test.dart test/oto_catalog_cli_test.dart test/oto_validate_cli_test.dart` +- smoke: `dart run bin/main.dart --help` +- e2e: +- model: +- full-cycle: + +## 필수 검증 + +- CLI 도메인 변경 후 `dart analyze`를 실행한다. +- CLI 도메인 변경 후 관련 `dart test` 명령을 실행한다. + +## 보조 검증 + +- CLI entrypoint 변경 시 `dart run bin/main.dart --help`를 실행한다. + +## 판정 기준 + +- analyzer issue가 없고 지정 테스트가 통과한다. +- help smoke는 정상 종료하거나 현재 CLI가 정의한 도움말/사용법 출력을 낸다. + +## 기준 출력 예시 + +```text +No issues found! +All tests passed! +``` + +## 차단 기준 + +- Dart SDK 또는 path dependency가 없어 local command를 시작할 수 없는 경우 + +## 보고 항목 + +- 실행한 명령: +- 성공한 검증: +- 실패/차단된 검증: +- 생략 사유: +- 남은 위험: + +## 금지 사항 + +- local 환경의 개인 경로나 secret을 tracked 문서에 기록하지 않는다. diff --git a/agent-test/local/command-smoke.md b/agent-test/local/command-smoke.md new file mode 100644 index 0000000..a1e55b3 --- /dev/null +++ b/agent-test/local/command-smoke.md @@ -0,0 +1,82 @@ +--- +test_env: local +test_profile: command-smoke +domain: command +verification_type: smoke +last_rule_updated_at: 2026-06-05 +--- + +# command-smoke local 테스트 + +## 읽기 조건 + +- `lib/oto/commands/**`, `lib/oto/data/**`, 또는 command template 변경 검증이 필요한 경우 + +## 적용 범위 + +- Command registry, command runtime, command catalog, DataParam JSON 모델 + +## 분류 + +- domain: command +- verification_type: smoke +- scope: command 구현과 데이터 모델 + +## 환경 + +- host: +- port: +- runtime: Dart SDK +- package manager: dart pub +- docker: +- external service: 없음 +- model endpoint: +- credential: + +## 명령 + +- setup: `dart pub get` +- lint: `dart analyze` +- unit: `dart test test/oto_command_catalog_test.dart test/oto_command_runtime_test.dart` +- smoke: +- e2e: +- model: +- full-cycle: + +## 필수 검증 + +- command 도메인 변경 후 `dart analyze`를 실행한다. +- command 도메인 변경 후 관련 `dart test` 명령을 실행한다. +- `@JsonSerializable` 모델을 추가/변경한 경우 `dart run build_runner build`를 실행하거나 생성물 갱신 필요를 보고한다. + +## 보조 검증 + +- 전체 command 회귀가 필요하면 `dart test`를 실행한다. + +## 판정 기준 + +- analyzer issue가 없고 지정 테스트가 통과한다. +- 생성 코드가 필요한 변경은 generated file과 source가 일치한다. + +## 기준 출력 예시 + +```text +No issues found! +All tests passed! +``` + +## 차단 기준 + +- Dart SDK 또는 path dependency가 없어 local command를 시작할 수 없는 경우 + +## 보고 항목 + +- 실행한 명령: +- 성공한 검증: +- 실패/차단된 검증: +- 생략 사유: +- 남은 위험: + +## 금지 사항 + +- 검증되지 않은 외부 서비스 응답을 command 통과 기준으로 기록하지 않는다. diff --git a/agent-test/local/core-smoke.md b/agent-test/local/core-smoke.md new file mode 100644 index 0000000..ba271ad --- /dev/null +++ b/agent-test/local/core-smoke.md @@ -0,0 +1,80 @@ +--- +test_env: local +test_profile: core-smoke +domain: core +verification_type: smoke +last_rule_updated_at: 2026-06-05 +--- + +# core-smoke local 테스트 + +## 읽기 조건 + +- `lib/oto/application.dart`, `lib/oto/core/**`, `lib/oto/utils/**`, 또는 core script helper 변경 검증이 필요한 경우 + +## 적용 범위 + +- Application orchestration, tag system, data composition, core utilities + +## 분류 + +- domain: core +- verification_type: smoke +- scope: OTO core runtime + +## 환경 + +- host: +- port: +- runtime: Dart SDK +- package manager: dart pub +- docker: +- external service: 없음 +- model endpoint: +- credential: + +## 명령 + +- setup: `dart pub get` +- lint: `dart analyze` +- unit: `dart test test/oto_application_test.dart test/oto_context_test.dart test/oto_core_test.dart test/oto_system_runtime_test.dart` +- smoke: +- e2e: +- model: +- full-cycle: + +## 필수 검증 + +- core 도메인 변경 후 `dart analyze`를 실행한다. +- core 도메인 변경 후 관련 `dart test` 명령을 실행한다. + +## 보조 검증 + +- runtime 전체 영향이 있으면 `dart test`를 실행한다. + +## 판정 기준 + +- analyzer issue가 없고 지정 테스트가 통과한다. + +## 기준 출력 예시 + +```text +No issues found! +All tests passed! +``` + +## 차단 기준 + +- Dart SDK 또는 path dependency가 없어 local command를 시작할 수 없는 경우 + +## 보고 항목 + +- 실행한 명령: +- 성공한 검증: +- 실패/차단된 검증: +- 생략 사유: +- 남은 위험: + +## 금지 사항 + +- runtime-local secret이나 개인 endpoint를 tracked 문서에 기록하지 않는다. diff --git a/agent-test/local/framework-smoke.md b/agent-test/local/framework-smoke.md new file mode 100644 index 0000000..a1ecb75 --- /dev/null +++ b/agent-test/local/framework-smoke.md @@ -0,0 +1,82 @@ +--- +test_env: local +test_profile: framework-smoke +domain: framework +verification_type: smoke +last_rule_updated_at: 2026-06-05 +--- + +# framework-smoke local 테스트 + +## 읽기 조건 + +- `pubspec.yaml`, `analysis_options.yaml`, dependency, analyzer, build_runner 경계 변경 검증이 필요한 경우 + +## 적용 범위 + +- Dart package manifest, analyzer configuration, dependency resolution + +## 분류 + +- domain: framework +- verification_type: smoke +- scope: project framework/dependency setup + +## 환경 + +- host: +- port: +- runtime: Dart SDK +- package manager: dart pub +- docker: +- external service: 없음 +- model endpoint: +- credential: + +## 명령 + +- setup: `dart pub get` +- lint: `dart analyze` +- unit: `dart test` +- smoke: +- e2e: +- model: +- full-cycle: + +## 필수 검증 + +- framework 도메인 변경 후 `dart pub get`가 필요한지 판단하고 실행 또는 생략 사유를 보고한다. +- framework 도메인 변경 후 `dart analyze`를 실행한다. +- test/runtime 영향이 있으면 `dart test`를 실행한다. + +## 보조 검증 + +- JSON 생성 경계 변경 시 `dart run build_runner build`를 실행하거나 생성물 갱신 필요를 보고한다. + +## 판정 기준 + +- dependency resolution이 성공하고 analyzer issue가 없다. +- 실행한 테스트가 모두 통과한다. + +## 기준 출력 예시 + +```text +No issues found! +All tests passed! +``` + +## 차단 기준 + +- Dart SDK 또는 path dependency가 없어 local command를 시작할 수 없는 경우 + +## 보고 항목 + +- 실행한 명령: +- 성공한 검증: +- 실패/차단된 검증: +- 생략 사유: +- 남은 위험: + +## 금지 사항 + +- dependency source의 credential이나 private token을 기록하지 않는다. diff --git a/agent-test/local/pipeline-smoke.md b/agent-test/local/pipeline-smoke.md new file mode 100644 index 0000000..596faad --- /dev/null +++ b/agent-test/local/pipeline-smoke.md @@ -0,0 +1,80 @@ +--- +test_env: local +test_profile: pipeline-smoke +domain: pipeline +verification_type: smoke +last_rule_updated_at: 2026-06-05 +--- + +# pipeline-smoke local 테스트 + +## 읽기 조건 + +- `lib/oto/pipeline/**` 또는 `lib/oto/data/pipeline_data.dart` 변경 검증이 필요한 경우 + +## 적용 범위 + +- Pipeline execution engine and pipeline data model + +## 분류 + +- domain: pipeline +- verification_type: smoke +- scope: OTO pipeline runtime + +## 환경 + +- host: +- port: +- runtime: Dart SDK +- package manager: dart pub +- docker: +- external service: 없음 +- model endpoint: +- credential: + +## 명령 + +- setup: `dart pub get` +- lint: `dart analyze` +- unit: `dart test` +- smoke: +- e2e: +- model: +- full-cycle: + +## 필수 검증 + +- pipeline 도메인 변경 후 `dart analyze`를 실행한다. +- pipeline 전용 테스트가 확인되지 않았으므로 변경 영향이 있는 경우 `dart test` 전체 회귀를 실행한다. + +## 보조 검증 + +- 새 pipeline fixture가 생기면 해당 fixture 기반 smoke 명령을 후속 테스트 규칙에 구체화한다. + +## 판정 기준 + +- analyzer issue가 없고 전체 테스트가 통과한다. + +## 기준 출력 예시 + +```text +No issues found! +All tests passed! +``` + +## 차단 기준 + +- Dart SDK 또는 path dependency가 없어 local command를 시작할 수 없는 경우 + +## 보고 항목 + +- 실행한 명령: +- 성공한 검증: +- 실패/차단된 검증: +- 생략 사유: +- 남은 위험: + +## 금지 사항 + +- 검증되지 않은 YAML fixture 동작을 통과 기준으로 단정하지 않는다. diff --git a/agent-test/local/rules.md b/agent-test/local/rules.md new file mode 100644 index 0000000..9d02151 --- /dev/null +++ b/agent-test/local/rules.md @@ -0,0 +1,45 @@ +--- +test_env: local +last_rule_updated_at: 2026-06-05 +--- + +# local 테스트 규칙 + +**현재 문서를 반드시 끝까지 정독하고 작업한다. 다 읽지 않고 즉각 작업은 금지한다.** + +## 공통 규칙 + +- local 테스트/검증은 이 파일을 기준으로 판단한다. +- 작업 완료 검증은 변경 범위 기준으로 선택한다. +- 필수 검증을 실행하지 못하면 차단 사유로 보고한다. +- 최종 보고에는 실행 명령, 결과, 생략 사유, 남은 위험을 남긴다. +- 환경값, secret, 개인 endpoint는 tracked docs/roadmap에 쓰지 않는다. + +## 기본 환경 + +- host: +- port: +- runtime: Dart SDK +- package manager: dart pub +- docker: +- external service: 없음 +- model endpoint: +- credential: + +## 라우팅 + +- agent / smoke / OTO agent CLI, registration, bootstrap script, iop connection smoke: `agent-test/local/agent-smoke.md` +- cli / smoke / CLI entrypoint, resource importer, scripts, package assets: `agent-test/local/cli-smoke.md` +- command / smoke / command implementations and data models: `agent-test/local/command-smoke.md` +- core / smoke / Application, tag system, composer, core utilities: `agent-test/local/core-smoke.md` +- framework / smoke / pubspec, analyzer options, dependency and generated-code boundary: `agent-test/local/framework-smoke.md` +- pipeline / smoke / pipeline execution and pipeline data model: `agent-test/local/pipeline-smoke.md` +- sample / smoke / sample YAML and template-facing examples: `agent-test/local/sample-smoke.md` +- scheduler / smoke / scheduler CLI and runtime: `agent-test/local/scheduler-smoke.md` + +## 라우팅 규칙 + +- 여러 항목이 맞으면 모두 읽는다. +- 도메인 매핑이나 domain rule이 있으면 각 도메인의 `-smoke` 문서를 기본 baseline으로 둔다. +- 도메인이 아직 없을 때만 `project-smoke`를 fallback baseline으로 둔다. +- 도메인/검증 시나리오별 문서는 다른 테스트 문서로 라우팅하지 않는다. diff --git a/agent-test/local/sample-smoke.md b/agent-test/local/sample-smoke.md new file mode 100644 index 0000000..75ae1c2 --- /dev/null +++ b/agent-test/local/sample-smoke.md @@ -0,0 +1,80 @@ +--- +test_env: local +test_profile: sample-smoke +domain: sample +verification_type: smoke +last_rule_updated_at: 2026-06-05 +--- + +# sample-smoke local 테스트 + +## 읽기 조건 + +- `assets/yaml/sample/**` 변경 또는 YAML sample 검증이 필요한 경우 + +## 적용 범위 + +- Sample pipeline YAML and public examples + +## 분류 + +- domain: sample +- verification_type: smoke +- scope: sample YAML validity and CLI validation path + +## 환경 + +- host: +- port: +- runtime: Dart SDK +- package manager: dart pub +- docker: +- external service: 없음 +- model endpoint: +- credential: + +## 명령 + +- setup: `dart pub get` +- lint: `dart analyze` +- unit: `dart test test/oto_validate_cli_test.dart` +- smoke: +- e2e: +- model: +- full-cycle: + +## 필수 검증 + +- sample 도메인 변경 후 `dart analyze`를 실행한다. +- sample 검증 경로 변경 후 `dart test test/oto_validate_cli_test.dart`를 실행한다. + +## 보조 검증 + +- sample을 직접 실행하는 CLI smoke가 확정되면 이 문서를 `update-test`로 갱신한다. + +## 판정 기준 + +- analyzer issue가 없고 validate CLI 테스트가 통과한다. + +## 기준 출력 예시 + +```text +No issues found! +All tests passed! +``` + +## 차단 기준 + +- Dart SDK 또는 path dependency가 없어 local command를 시작할 수 없는 경우 + +## 보고 항목 + +- 실행한 명령: +- 성공한 검증: +- 실패/차단된 검증: +- 생략 사유: +- 남은 위험: + +## 금지 사항 + +- 실행하지 않은 sample pipeline을 검증 완료로 기록하지 않는다. diff --git a/agent-test/local/scheduler-smoke.md b/agent-test/local/scheduler-smoke.md new file mode 100644 index 0000000..82f98a0 --- /dev/null +++ b/agent-test/local/scheduler-smoke.md @@ -0,0 +1,80 @@ +--- +test_env: local +test_profile: scheduler-smoke +domain: scheduler +verification_type: smoke +last_rule_updated_at: 2026-06-05 +--- + +# scheduler-smoke local 테스트 + +## 읽기 조건 + +- `lib/cli/commands/scheduler/**` 또는 `lib/cli/commands/command_scheduler.dart` 변경 검증이 필요한 경우 + +## 적용 범위 + +- Scheduler command and local scheduler runtime + +## 분류 + +- domain: scheduler +- verification_type: smoke +- scope: OTO scheduler CLI/runtime + +## 환경 + +- host: +- port: +- runtime: Dart SDK +- package manager: dart pub +- docker: +- external service: 없음 +- model endpoint: +- credential: + +## 명령 + +- setup: `dart pub get` +- lint: `dart analyze` +- unit: `dart test test/oto_scheduler_runtime_test.dart` +- smoke: +- e2e: +- model: +- full-cycle: + +## 필수 검증 + +- scheduler 도메인 변경 후 `dart analyze`를 실행한다. +- scheduler 도메인 변경 후 `dart test test/oto_scheduler_runtime_test.dart`를 실행한다. + +## 보조 검증 + +- scheduler daemon smoke가 확정되면 이 문서를 `update-test`로 갱신한다. + +## 판정 기준 + +- analyzer issue가 없고 scheduler 테스트가 통과한다. + +## 기준 출력 예시 + +```text +No issues found! +All tests passed! +``` + +## 차단 기준 + +- Dart SDK 또는 path dependency가 없어 local command를 시작할 수 없는 경우 + +## 보고 항목 + +- 실행한 명령: +- 성공한 검증: +- 실패/차단된 검증: +- 생략 사유: +- 남은 위험: + +## 금지 사항 + +- 장기 실행 daemon을 종료 조건 없이 검증 명령으로 두지 않는다.