--- test_env: dev test_profile: workflow-execution-smoke domain: workflow-execution verification_type: smoke last_rule_updated_at: 2026-07-18 --- # workflow-execution-smoke dev 테스트 ## 읽기 조건 - Go worker, executor registry, Python executor 또는 Protobuf 실행 계약을 원격 환경에서 검증할 때 ## 적용 범위 - `apps/worker/`, `packages/go/workflow/`, `packages/python/`, `api/proto/`, `gen/go/rara/v1/` ## 분류 - domain: workflow-execution - verification_type: smoke - scope: 원격 runner의 Go worker와 Python gRPC executor 검증 ## 환경 - host: `ssh toki@toki-labs.com` - repo root: `/Users/toki/agent-work/rara-dev` - port: Go Worker `127.0.0.1:18072`, Python Executor gRPC `127.0.0.1:19070` - runtime: Go 1.26, Python 3.12 - package manager: Go modules, Python venv/pip - docker: login shell의 Docker Desktop/Engine 27.4.0, PostgreSQL 통합 검증 전 daemon 재확인 - external service: Go worker 상태 전이 검증에는 PostgreSQL 필요 - model endpoint: 기본값 없음. adaptation 모델 검증은 별도 승인된 endpoint 필요 - credential: database/model credential 원문은 문서와 출력에 남기지 않는다. ## 명령 - setup: `make setup` - lint: `.venv/bin/ruff format --check packages/python/src packages/python/tests && .venv/bin/ruff check packages/python/src packages/python/tests` - unit: `go test ./packages/go/workflow/... && PYTHONPATH=packages/python/src .venv/bin/python -m pytest packages/python/tests` - smoke: `go build -o /tmp/rara-worker ./apps/worker/cmd/worker` - service: PostgreSQL 준비 후 Go worker는 `RARA_LISTEN=127.0.0.1:18072`, Python executor는 `RARA_PYTHON_LISTEN_HOST=127.0.0.1` `RARA_PYTHON_LISTEN_PORT=19070`으로 실행 - e2e: PostgreSQL과 executor가 준비된 경우 ping step의 lease와 terminal 상태 확인 - model: ML dependency와 승인된 endpoint가 준비된 경우에만 수행 - full-cycle: `make test && make build` ## 필수 검증 - 원격 checkout의 HEAD가 검증 대상 source와 일치한다. - Go workflow와 Python executor 테스트, Ruff 검사가 통과한다. - Go worker binary가 빌드된다. - Protobuf 변경 시 `make proto` 후 Go/Python 생성물과 호환성 영향을 확인한다. - service smoke 시 `18072`와 `19070`이 각각 의도한 프로세스에만 점유된다. ## 보조 검증 - `lsof -nP -iTCP:18072 -sTCP:LISTEN`과 `lsof -nP -iTCP:19070 -sTCP:LISTEN`으로 충돌과 종료 후 반환을 확인한다. - PostgreSQL을 준비한 경우 step lease·성공·실패·재시도 상태 전이를 확인한다. ## 판정 기준 - source identity가 일치하고 Go/Python 테스트, Ruff, worker 빌드가 exit code 0으로 종료한다. - service smoke를 수행한 경우 Go worker health/readiness와 Python gRPC capability 응답을 확인한다. - PostgreSQL·ML dependency가 없으면 source 검증과 통합 차단을 구분해 보고한다. ## 기준 출력 예시 ```text ok git.toki-labs.com/toki/rara/packages/go/workflow ``` ## 차단 기준 - 원격 checkout 부재·source 불일치, Go 1.26/Python 3.12/`.venv` 부재 - `18072` 또는 `19070` 점유 - 상태 전이 검증에 필요한 PostgreSQL 또는 모델 검증에 필요한 ML dependency 부재 ## 보고 항목 - 원격 branch/HEAD: - 실행한 명령: - 성공한 검증: - 실패/차단된 검증: - 생략 사유: - 남은 위험: ## 금지 사항 - local test 결과를 원격 worker/executor evidence로 보고하지 않는다. - 생성된 Protobuf 파일을 직접 수정하지 않는다. - ML dependency가 없는 환경에서 adaptation 모델 실행이 검증됐다고 보고하지 않는다. - secret, token, 개인 endpoint 원문을 기록하지 않는다.