# 지속 검증 ## 목표 저장소 로컬에서 동일 언어 테스트, 크로스 언어 테스트, proto 동기화 검사를 반복 가능한 단일 진입점으로 실행해 모든 사용 가능 구현체에 대한 신뢰도를 유지한다. 외부 CI/CD 실행기 연결은 상위 `../oto` 프로젝트의 표준 실행 방식이 확정된 뒤 진행한다. ## 단계 검증과 호환성 ## 상태 완료 ## 범위 - README의 테스트 명령 매트릭스를 반복 가능한 로컬 검증 진입점으로 만든다. - Dart, Go, Kotlin, Python, TypeScript 동일 언어 테스트를 포함한다. - 사용 가능한 크로스 언어 테스트 runner를 포함한다. - 전체 검증에 proto 동기화 검사를 포함한다. - 기존 로컬 명령 및 프로젝트 test-matrix 스킬을 맞춘다. - 외부 CI/CD runner 연결은 현재 범위에서 확정하지 않고, 상위 `../oto` 프로젝트의 표준 실행기를 기준 후보로 둔다. ## 필수 기능 - [x] Dart unit test를 실행하는 로컬 매트릭스 명령을 제공한다. - [x] Go unit test를 실행하는 로컬 매트릭스 명령을 제공한다. - [x] Kotlin unit test를 실행하는 로컬 매트릭스 명령을 제공한다. - [x] Python unit test를 실행하는 로컬 매트릭스 명령을 제공한다. - [x] TypeScript check와 unit test를 실행하는 로컬 매트릭스 명령을 제공한다. - [x] Dart, Go, Kotlin, Python, TypeScript 간 사용 가능한 크로스 언어 검사를 실행하는 로컬 매트릭스 명령을 제공한다. - [x] 전체 검증과 개별 proto 검증에서 `tools/check_proto_sync.sh`를 실행한다. - [x] 실패를 확인하고 매트릭스를 로컬에서 다시 실행하는 방법을 문서화한다. - [x] 전체 로컬 매트릭스 실행 결과를 확인한다. ## 완료 기준 - [x] 단일 로컬 검증 명령이 proto 동기화, 전체 지원 언어, 크로스 언어 매트릭스를 검증할 수 있다. - [x] 실패가 proto 동기화, 실패한 언어 쌍, 또는 동일 언어 package를 명확히 식별한다. - [x] `README.md`의 로컬 명령이 프로젝트 test-matrix 스킬과 일치한다. - [x] 외부 CI/CD 실행기 연결은 상위 `../oto` 프로젝트와의 실행 계약이 확정될 때 별도 작업으로 진행할 수 있다. ## 범위 제외 - 이 마일스톤에서 C# 또는 Swift 구현 작업을 추가하지 않는다. - Jenkins 전용 pipeline 또는 설정 파일을 추가하지 않는다. - 이 마일스톤에서 상위 `../oto` 프로젝트 파일을 수정하지 않는다. - CI 편의를 위해 프로토콜 동작이나 package API를 변경하지 않는다. - 모든 일반 개발 작업에서 전체 로드맵을 읽도록 요구하지 않는다. ## 작업 컨텍스트 - 관련 경로: `agent-ops/skills/project/run-proto-socket-test-matrix/SKILL.md`, `agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_matrix.sh`, `README.md` - 선행 작업: 사용 가능 언어 parity - 후속 작업: 안정화 기준선 - 검증 기록: 2026-05-30에 `bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_matrix.sh --all` 통과. Proto 동기화, Dart/Go/Kotlin/Python/TypeScript 동일 언어 테스트, 20개 일반 크로스 언어 방향, Dart.web WS/WSS 5개 방향이 모두 `PASS`. - 확인 필요: CI/CD 연결은 현재 완전성 기준이 아니다. 상위 `../oto` 프로젝트의 표준 실행 방식이 확정되고 사용자가 명시적으로 요청하면 이 저장소의 로컬 검증 진입점을 외부 실행기로 연결한다.