{
  "test_id": "T13",
  "verdict": "pass",
  "observed": "istioctl proxy-config cluster로 확인한 결과, connectionPool.tcp.maxConnections=77과 http.http1MaxPendingRequests=42/http2MaxRequests=88은 circuitBreakers.thresholds[0]에 {maxConnections:77, maxPendingRequests:42, maxRequests:88}로 그대로 컴파일되었고, tcpKeepalive(time=60s/interval=5s/probes=3)는 별도 위치인 upstreamConnectionOptions.tcpKeepalive에 {keepaliveTime:60, keepaliveInterval:5, keepaliveProbes:3}로 컴파일되어 circuitBreakers와 분리된 JSON 위치에 놓였다. connectionPool.http.maxRequestsPerConnection=5는 레거시 top-level 필드(.maxRequestsPerConnection)에는 null이었지만 typedExtensionProtocolOptions[\"envoy.extensions.upstreams.http.v3.HttpProtocolOptions\"].commonHttpProtocolOptions.maxRequestsPerConnection=5로 확인되어, circuitBreakers 밖의 또 다른 위치에 있음이 검증되었다. loadBalancer(lbPolicy=LEAST_REQUEST)와 outlierDetection(consecutive5xx=4, interval=9s, baseEjectionTime=33s)도 모두 채워졌다. jq length는 1이 아니라 2였는데, 이는 echo Service가 포트 80/443 두 개를 노출하여 host+port 단위로 별도 cluster 객체가 생성되기 때문이며(outbound|80||... , outbound|443||...), 두 cluster 객체 각각을 개별 확인한 결과 lbPolicy+circuitBreakers.thresholds+upstreamConnectionOptions.tcpKeepalive+outlierDetection이 모두 동일하게 함께 담겨 있어, '하나의 DR이 그 모든 trafficPolicy 하위 필드를 하나의 cluster 객체 안에 공존시킨다'는 핵심 주장은 성립함을 확인했다. 별도로, harness-notes의 'cluster DNS domain=homelab.local' 안내와 달리 istiod --domain 플래그가 cluster.local로 고정되어 있어 DestinationRule host를 svc.cluster.local로 정정해야 IST0174 경고 없이 정책이 실제로 적용됨을 확인했다(환경 특이사항).",
  "claims": [
    {
      "doc": "blog:egress_destinationrule-fundamentals",
      "cid": "C4",
      "empirical": "supports-claim",
      "note": "connectionPool의 tcp 3종 한도는 circuitBreakers.thresholds로, tcpKeepalive는 upstreamConnectionOptions.tcpKeepalive로, maxRequestsPerConnection은 typedExtensionProtocolOptions로 각각 서로 다른 JSON 위치에 컴파일됨을 실측 확인."
    },
    {
      "doc": "xds__src-cluster-anatomy",
      "cid": "C1",
      "empirical": "supports-claim",
      "note": "loadBalancer+connectionPool+outlierDetection을 가진 단일 DR의 모든 필드가 (포트별로 생성된) 각 cluster 객체 하나 안에 함께 공존함을 확인. length=2는 Service의 포트 2개(80/443)에 기인한 것이며 DR 필드가 여러 cluster로 쪼개진 것이 아님."
    },
    {
      "doc": "xds__src-cluster-anatomy",
      "cid": "C8",
      "empirical": "supports-claim",
      "note": "maxRequestsPerConnection=5는 레거시 Cluster.maxRequestsPerConnection(top-level scalar)이 아니라 typedExtensionProtocolOptions.HttpProtocolOptions.commonHttpProtocolOptions.maxRequestsPerConnection에 위치하며, circuitBreakers.thresholds와는 분리된 별도 위치임을 실측으로 확인."
    }
  ]
}
