test(local): 로컬 검증 규칙을 추가한다

도메인별 smoke 기준을 저장소에 남겨 이후 로컬 검증 범위를 일관되게 선택할 수 있게 한다.
This commit is contained in:
toki 2026-06-05 10:43:51 +09:00
parent 96d8a40d0e
commit 619c9e223f
9 changed files with 691 additions and 0 deletions

View file

@ -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 문서에 기록하지 않는다.

View file

@ -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 문서에 기록하지 않는다.

View file

@ -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 통과 기준으로 기록하지 않는다.

View file

@ -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 문서에 기록하지 않는다.

View file

@ -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을 기록하지 않는다.

View file

@ -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 동작을 통과 기준으로 단정하지 않는다.

45
agent-test/local/rules.md Normal file
View file

@ -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이 있으면 각 도메인의 `<domain>-smoke` 문서를 기본 baseline으로 둔다.
- 도메인이 아직 없을 때만 `project-smoke`를 fallback baseline으로 둔다.
- 도메인/검증 시나리오별 문서는 다른 테스트 문서로 라우팅하지 않는다.

View file

@ -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을 검증 완료로 기록하지 않는다.

View file

@ -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을 종료 조건 없이 검증 명령으로 두지 않는다.