{
  "test_id": "T34",
  "verdict": "pass",
  "observed": "OPEN에서 /close-lb 직접 호출은 409, drain 후 /close-lb는 200으로 2-step만 성공했다. 상태표 결과는 OPEN=200/200/200, DRAINING=200/200/200, CLOSING=503/200/200, CLOSED=503/503/200(health_check.html/health/live 순)으로 명세와 정확히 일치했고, DRAINING에서 /reopen 호출(200) 직후 /drain/status가 {\"state\":\"OPEN\"}으로 즉시 복귀함을 확인했다. DRAIN_TIMEOUT 강제 전이 실험은 실제 in-mesh 트래픽(slow-echo에 겹치는 /delay/10 요청, 총 약 150초 지속, exit 0으로 정상 종료 확인)을 흘리며 3회 반복했고 매번 t>=120s 시점에 강제 /close-lb가 200으로 성공해 DRAINING->CLOSING 전이가 일어났다. 다만 스펙이 지정한 Envoy admin 통계(downstream_rq_active)는 3회 모두 값이 0으로 읽혔는데, 이는 이 클러스터의 사이드카 Envoy가 해당 리스너 단위 HTTP 통계 패밀리 자체를 노출하지 않기 때문(제어평면 xds-grpc 클러스터 통계는 정상 조회됨, 단일 foreground 요청도 delay 시간과 일치하는 200 응답을 반환함으로써 트래픽 자체는 정상 확인)으로, hc-mock의 강제 전이 로직 자체는 이 카운터를 전혀 참조하지 않으므로 정상 검증되었다.",
  "claims": [
    {
      "doc": "gt__src-w2-hc-fsm",
      "cid": "C4",
      "empirical": "supports-claim",
      "note": "OPEN/DRAINING/CLOSING/CLOSED 4개 상태에서 health_check.html/health/live 응답 코드가 §2.1 표(200/200/200, 200/200/200, 503/200/200, 503/503/200)와 정확히 일치."
    },
    {
      "doc": "gt__src-w2-hc-fsm",
      "cid": "C5",
      "empirical": "supports-claim",
      "note": "OPEN에서 close-lb 직접 호출은 409(불법 전이 차단), drain->close-lb 2-step만 200으로 성공."
    },
    {
      "doc": "gt__src-w2-hc-fsm",
      "cid": "C6",
      "empirical": "supports-claim",
      "note": "DRAINING에서 reopen 호출 시 200 성공 + /drain/status로 즉시 OPEN 복귀 확인(역방향 경로). CLOSING에서의 reopen은 코드 검토로만 확인(cur in (DRAINING, CLOSING) 조건), 별도 커맨드로 런타임 재현은 안 함."
    },
    {
      "doc": "gt__src-w2-hc-fsm",
      "cid": "C7",
      "empirical": "supports-claim",
      "note": "실 in-mesh 트래픽 생성 하에서 DRAIN_TIMEOUT(120s) 도달 시 강제 close-lb가 3회 모두 200으로 성공해 DRAINING->CLOSING 전이가 일어남을 확인. 다만 스펙이 지정한 downstream_rq_active 통계는 이 클러스터의 사이드카 구성상 노출되지 않아 '그 순간 active>0'을 이 통계로는 직접 증명하지 못했음(환경적 관측 한계이며 hc-mock 판정 로직에는 영향 없음, result.txt에 상세 근거 기록)."
    }
  ]
}
