7.3 KiB
7.3 KiB
| test_env | last_rule_updated_at |
|---|---|
| dev | 2026-07-18 |
dev 테스트 규칙
현재 문서를 반드시 끝까지 정독하고 작업한다. 다 읽지 않고 즉각 작업은 금지한다. dev는 RARA의 기본 테스트 환경이며 local host가 아니라 원격 Mac runner를 기준으로 한다.
공통 규칙
- 사용자가 테스트 환경을 별도로 지정하지 않으면 이
dev환경을 기본 기준으로 삼는다. - local 검증은 원격 프리플라이트와 source 동기화를 대신하지 않는다.
- 작업 완료 검증은 변경 범위에 맞는 도메인 profile을 선택한다.
- 필수 검증을 실행하지 못하면 차단 사유로 보고한다.
- 최종 보고에는 원격 source identity, 실행 명령, 결과, 생략 사유, 남은 위험을 남긴다.
- secret, token, password, private key, 개인 endpoint 원문은 tracked 파일이나 shell 출력에 남기지 않는다.
- 원격 서비스는 기본적으로 runner loopback에 bind한다. 외부 공개 검증이 명시된 경우에만 별도 접근 경계와 방화벽 상태를 확인한다.
기본 환경
- host:
ssh toki@toki-labs.com표준 원격 Mac runner - repo root: 목표 checkout
/Users/toki/agent-work/rara-dev - checkout 상태: 2026-07-18 점검 시 아직 없음. 최초 원격 검증 전 생성이 필요하다.
- sync 기준: 검증할 exact source commit을 origin에서 fetch한 뒤 clean checkout하고, local 변경과 원격 HEAD가 동일한지 확인한다.
- runtime: macOS arm64. 2026-07-18 login shell에서 Go 1.26.3과
Python 3.12.9(
python3.12)를 확인했다. - package manager: Go modules, Python venv/pip
- docker: login shell의 Docker Desktop/Engine 27.4.0을 사용한다. 일반 비대화형 SSH PATH에는 Go와 Docker가 없으므로 원격 명령은 login shell 또는 검증된 explicit PATH로 실행한다.
- external service: readiness·통합 smoke에는 PostgreSQL이 필요하며, 준비되지 않으면 source test/build까지만 수행하고 통합 검증은 차단으로 보고한다.
- model endpoint: 기본값 없음. adaptation/model 통합 검증 시 별도 승인된 endpoint가 필요하다.
- credential: secret/token/API key 원문은 문서에 기록하지 않는다.
포트 매핑
2026-07-18 기준 workspace 원장에 기존 70 슬롯 배정이 없고, 원격 runner의 아래
후보 포트가 listen 중이 아님을 확인한 뒤 RARA dev 전용으로 배정했다. 실행 직전
동일 검사를 반복한다.
| 용도 | local 호환값 | dev 원격값 | bind 기준 |
|---|---|---|---|
| Control Plane HTTP | 18080 |
18070 |
127.0.0.1:18070 |
| RAG API HTTP | 18081 |
18071 |
127.0.0.1:18071 |
| Go Worker HTTP | 18082 |
18072 |
127.0.0.1:18072 |
| Python Executor gRPC | 19090 |
19070 |
127.0.0.1:19070 |
| PostgreSQL host publish | 5432 |
15470 |
127.0.0.1:15470 -> 5432 |
| Frontend reserve | 해당 없음 | 13070 reserved |
현재 RARA runtime에 없음 |
| Cache reserve | 해당 없음 | 16370 reserved |
현재 RARA runtime에 없음 |
| Metrics / diagnostics reserve | 해당 없음 | 19170-19172 reserved |
현재 RARA runtime에 없음 |
18080-18099와19080/19090은 IOP shared field/runtime baseline이므로 RARA 원격 dev 서비스에 재사용하지 않는다.- repo의
configs/*.yaml기본 listen 값은 local 호환값이다. 원격 dev에서는RARA_LISTEN과RARA_PYTHON_LISTEN_PORT로 위 dev 값을 명시한다. - PostgreSQL host publish가 필요하지 않으면
15470을 열지 않고 service와 DB를 전용 network 또는 loopback으로만 연결한다.
런타임 프로필
- source validation: 원격 checkout에서
make test && make build를 기본 완료 검증으로 사용한다. - service smoke: PostgreSQL이 준비된 경우 Control Plane
18070, RAG API18071, Go Worker18072를 각각 dev override로 실행하고 health/readiness를 확인한다. - Python executor smoke:
RARA_PYTHON_LISTEN_HOST=127.0.0.1과RARA_PYTHON_LISTEN_PORT=19070을 사용한다. - compose candidate: 향후 remote compose를 추가할 경우
COMPOSE_PROJECT_NAME=rara-dev-agent, networkrara-dev-agent-net, subnet10.89.7.0/24, PostgreSQL host publish15470을 기준으로 한다. 2026-07-18 기존 remote Docker network와 subnet이 겹치지 않음을 확인했지만, 현재 compose에는 dev override와 network 정의가 없으므로 실제 구성으로 간주하지 않는다. - artifact: runner-local filesystem artifact root를 사용하며 공개 artifact HTTP 포트는 없다.
프리플라이트
- 원격 검증 전 runner 접속,
/Users/toki/agent-work/rara-dev존재 여부, branch, HEAD, dirty 상태, local 변경과 source 동기화 여부를 확인한다. - login shell에서
go version,python3.12 --version,docker version, 필요한 tool/version,.venv의 Python identity를 확인한다. 기본python3은 2026-07-18 기준 3.14.6이므로 Python 3.12 venv라고 추정하지 않는다. 13070,18070-18072,15470,16370,19070,19170-19172가 다른 process에 점유되지 않았는지 확인한다. 미사용 후보까지 함께 확인해70슬롯의 부분 재사용을 방지한다.- service smoke 전 config path,
RARA_LISTEN,RARA_DATABASE_URL, artifact root, process identity를 확인한다. - Docker daemon과 PostgreSQL container가 실제로 준비되지 않았으면 설치 상태만으로 통합 검증 가능하다고 추정하지 않고 integration blocker로 보고한다.
- checkout 부재, source 불일치, stale binary, port 점유, runtime version 불일치는 setup/sync/rebuild 후 해소하거나 차단 사유로 보고한다.
노드/서비스 인벤토리 위치
- machine-readable runner·port 기준:
agent-test/dev/inventory.yaml - Control Plane 기준:
agent-test/dev/control-plane-smoke.md - RAG API 기준:
agent-test/dev/rag-data-plane-smoke.md - Go/Python worker 기준:
agent-test/dev/workflow-execution-smoke.md - 공통 config·database·artifact·배포 기준:
agent-test/dev/platform-common-smoke.md
반복 테스트 기준
- 원격 evidence는 current source와 동일한 remote checkout에서만 수집한다.
- source test/build와 PostgreSQL 의존 service smoke를 구분해 보고한다.
- 여러 RARA 서비스를 동시에 실행할 때 각 프로세스에 다른
RARA_LISTEN을 명시한다. - test 종료 후 장기 runtime으로 승인되지 않은 프로세스는 정리하고, 포트가 반환됐는지 확인한다.
- secret이 포함될 수 있는 database URL과 외부 endpoint는 값 대신 주입 여부만 보고한다.
라우팅
- control-plane / smoke / 수명주기 API와 제어 상태 원격 검증:
agent-test/dev/control-plane-smoke.md - rag-data-plane / smoke / retrieve·answer 계약 원격 검증:
agent-test/dev/rag-data-plane-smoke.md - workflow-execution / smoke / Go worker와 Python executor 원격 검증:
agent-test/dev/workflow-execution-smoke.md - platform-common / smoke / config·database·artifact·배포 원격 검증:
agent-test/dev/platform-common-smoke.md
라우팅 규칙
- 여러 항목이 맞으면 모두 읽는다.
- 도메인 매핑이나 domain rule이 있으면 각 도메인의
<domain>-smoke를 baseline으로 둔다. - 도메인/검증 시나리오별 문서는 다른 테스트 문서로 라우팅하지 않는다.