{
  "repo": "infra-api",
  "full_name": "tidbcloud/infra-api",
  "status": "scan_complete",
  "scan_started_at": "2026-03-26T00:00:00Z",
  "scan_completed_at": "2026-03-27T09:21:56+08:00",
  "expected_binaries": [
    {
      "name": "config-manager",
      "path": "cmd/config-manager/main.go",
      "status": "completed",
      "role": "primary_service"
    },
    {
      "name": "infra-provider",
      "path": "cmd/infra-provider/main.go",
      "status": "completed",
      "role": "primary_service"
    },
    {
      "name": "debug",
      "path": "cmd/debug/main.go",
      "status": "completed",
      "role": "primary_service"
    },
    {
      "name": "patch-snippets",
      "path": "cmd/patch-snippets/main.go",
      "status": "skipped",
      "role": "admin_cli",
      "skip_reason": "one-off repair script with no service interface"
    },
    {
      "name": "audit",
      "path": "cmd/audit/main.go",
      "status": "completed",
      "role": "worker"
    }
  ],
  "scanned_binaries": [
    {
      "name": "config-manager",
      "path": "cmd/config-manager/main.go",
      "type": "kubernetes_controller_runtime",
      "status": "completed",
      "interfaces_file": "interfaces/cmd-config-manager.json",
      "service_mapping_file": "service-mapping/cmd-config-manager.json",
      "controllers": 2,
      "webhooks": 1,
      "external_services": 1
    },
    {
      "name": "infra-provider",
      "path": "cmd/infra-provider/main.go",
      "type": "kubernetes_controller_runtime",
      "status": "completed",
      "interfaces_file": "interfaces/cmd-infra-provider.json",
      "service_mapping_file": "service-mapping/cmd-infra-provider.json",
      "controllers": 9,
      "webhooks": 20,
      "external_services": 4
    },
    {
      "name": "debug",
      "path": "cmd/debug/main.go",
      "type": "http_server",
      "status": "completed",
      "interfaces_file": "interfaces/cmd-debug.json",
      "service_mapping_file": "service-mapping/cmd-debug.json",
      "http_endpoints": 5,
      "external_services": 0
    },
    {
      "name": "audit",
      "path": "cmd/audit/main.go",
      "type": "cli_plus_http_worker",
      "status": "completed",
      "interfaces_file": "interfaces/cmd-audit.json",
      "service_mapping_file": "service-mapping/cmd-audit.json",
      "http_endpoints": 1,
      "external_services": 1
    }
  ],
  "skipped_binaries": [
    {"name": "patch-snippets", "skip_reason": "one-off repair script"}
  ],
  "files_generated": [
    "interfaces/cmd-config-manager.json",
    "interfaces/cmd-audit.json",
    "interfaces/cmd-infra-provider.json",
    "interfaces/cmd-debug.json",
    "service-mapping/cmd-config-manager.json",
    "service-mapping/cmd-audit.json",
    "service-mapping/cmd-infra-provider.json",
    "service-mapping/cmd-debug.json"
  ],
  "review_status": "pending_review",
  "review_cycles": 0,
  "review_participants": [
    "codex"
  ],
  "review_started_at": null,
  "review_completed_at": null,
  "codex_rescan_at": "2026-03-27T09:21:56+08:00",
  "codex_rescan_verdict": "scan_complete",
  "codex_rescan_note": "Manual meta validation confirmed patch-snippets is an admin CLI rather than unknown, and cmd/audit is not CLI-only because its server subcommand starts the long-running audit log shipping worker with an optional /metrics listener. The KB paths are now aligned to each binary's real main.go entrypoint.",
  "scan_progress": "4/4",
  "statistics": {
    "total_binaries": 4,
    "total_services": 16,
    "total_methods": 79,
    "output_files": 8
  }
}
