{
  "repo": "tidbcloud/autoscaler",
  "full_name": "tidbcloud/autoscaler",
  "status": "scan_complete",
  "scan_started_at": "2026-03-27T21:10:00+08:00",
  "scan_completed_at": "2026-03-27T21:10:00+08:00",
  "review_status": "pending_review",
  "review_participants": [
    "codex"
  ],
  "review_cycles": 0,
  "codex_rescan_at": "2026-03-27T21:10:00+08:00",
  "codex_rescan_verdict": "approved",
  "codex_rescan_note": "Fresh codex rescan rebuilt balancer and cluster-autoscaler into canonical method-level outputs. The old balancer result was effectively empty and the old cluster-autoscaler result only modeled debug HTTP endpoints, missing lifecycle, leader-election, and autoscaling loop runtime surfaces.",
  "expected_binaries": [
    {"name": "addon-resizer", "path": "addon-resizer/main.go", "status": "skipped", "role": "admin_cli", "skip_reason": "cli_only"},
    {"name": "balancer", "path": "balancer/main.go", "status": "completed", "role": "primary_service"},
    {"name": "cluster-autoscaler", "path": "cluster-autoscaler/main.go", "status": "completed", "role": "primary_service"}
  ],
  "scanned_binaries": [
    {"name": "balancer", "output_file": "balancer"},
    {"name": "cluster-autoscaler", "output_file": "cluster-autoscaler"}
  ],
  "skipped_binaries": [
    {"name": "addon-resizer", "skip_reason": "cli_only"}
  ],
  "files_generated": [
    "interfaces/balancer.json",
    "service-mapping/balancer.json",
    "interfaces/cluster-autoscaler.json",
    "service-mapping/cluster-autoscaler.json"
  ],
  "scan_progress": "2/2",
  "notes": [
    "balancer is a controller-style primary service with no public network listener; its runtime surface is lifecycle plus reconcile paths, not an empty interface file.",
    "cluster-autoscaler exposes secondary debug HTTP handlers, but the primary runtime surface is leader election, informer startup, pod observer, and the autoscaling loop with cloud-provider and Kubernetes API dependencies."
  ]
}
