# 11. 전체 경로 검증 · AI CLI 카드

라이브 검증은 실제 모델과 물리 실행을 사용합니다. 대상 주소와 예정된 호출 수를 먼저 확인합니다.

```ai-prompt
Robot Atlas 워크숍 11장의 검증을 수행하세요.
ROBOT_REPO/workshop/chapters/11-validation.md를 읽고 ROBOT_LAB의 바인딩과
App PublicUrl을 확인하세요. 루트 운영 서비스나 다른 참가자 주소는 검사하지 마세요.

검증을 나누어 진행:
1. npm test/build, Python Agent 계약, 실제 MuJoCo, 배포 lint.
2. .local/tools/verify-aws.py: AWS 구성·공개 HTTPS. 모델 호출/새 실행은 하지 않는 검사.
3. .local/tools/verify-demo.py --seed 123: 실제 플래너 2회, 파랑→빨강→주황 실행,
   물리 검사, DynamoDB 상태, S3/API 일치, 다른 세션의 404.
4. BROWSER_BASE_URL을 본인 URL로 고정한 실제 데스크톱·모바일 브라우저 검사.
두 Python 검증기는 reference/resources.md의 코드로 본인 app에 준비합니다.

근거:
각 명령의 종료 상태, 날짜, URL, release, run ID, seed, 계획 순서, metrics/checks,
캡처 위치와 미검증 항목을 참가자 .local/evidence에 남기세요.
tee를 쓰면 pipefail로 실패 상태를 보존하세요.
BROWSER_SKIP_LIVE=1은 전체 경로 검증이 아니고 모델 호출도 남을 수 있습니다.

진단 원칙:
연결 오류는 HTTP 상태·Content-Type·구간별 상태로 좁히세요.
정적 정상/API 502는 origin DNS·TLS·Host·ALB target을 확인하세요.
429는 실행 경합을 먼저 확인하고 제한적으로 재시도하세요.
물리 실패는 실패로 남기고 endpoint나 규칙 모드 전환으로 숨기지 마세요.
취소 후 늦은 응답이 성공을 덮어쓰지 않아야 합니다.

로컬 테스트 통과, 과거 운영 검증, 교재 읽음 표시는 본인 클라우드 리허설 증거가 아닙니다.
Secret·쿠키·CSRF·원문 대화는 보고서에서 제외하세요.
수정은 본인 app으로 제한하고, 배포가 필요하면 새 manifest와 본인 변경 세트를 검토하세요.
최종 보고에 실제 통과·실패·생략을 구분하세요.
```
