{
  "repo": "pingcap/tidb-operator",
  "binary": "overlay-gen",
  "binary_path": "cmd/overlay-gen/main.go",
  "surface_kind": "cli_tool",
  "type": "cli_tool",
  "services": [
    {
      "name": "OverlayGeneratorLifecycle",
      "package": "cmd/overlay-gen",
      "methods": [
        {
          "name": "ParseFlags",
          "name_key": "CLI OverlayGenerator.ParseFlags",
          "input": "output-file, output-dir, go-header-file, and remaining package arguments",
          "output": "parsed generator arguments",
          "type": "local"
        },
        {
          "name": "ValidateArgs",
          "name_key": "CLI OverlayGenerator.ValidateArgs",
          "input": "parsed generator arguments",
          "output": "validation success or process exit when --go-header-file is missing",
          "type": "local"
        },
        {
          "name": "GenerateOverlayTargets",
          "name_key": "CLI OverlayGenerator.GenerateOverlayTargets",
          "input": "gengo generator context, target packages, and boilerplate header file",
          "output": "zz_generated.overlay.go and zz_generated.overlay_test.go written for each input package",
          "type": "local"
        }
      ]
    }
  ],
  "extensions": {
    "notes": [
      "This binary is a build-time code generator, not a runtime service.",
      "Runtime truth comes from the executed main path: it validates flags, loads the boilerplate header, then emits generator targets for each input package."
    ]
  }
}
