{
  "campaign_root": "/srv/local_train/eval/work/REPLACE_WITH_FROZEN_AUTO_CAMPAIGN",
  "campaign_id": "REPLACE_WITH_FROZEN_CAMPAIGN_ID",
  "orchestrator_url": "http://127.0.0.1:8876",
  "admin_token_file": "/srv/local_train-local-secrets/orchestrator-admin.token",
  "state_db": "/srv/local_train-local-state/e2-auto-driver.sqlite3",
  "owner_prefix": "e2-auto-v1",
  "stage_config": "/srv/local_train-local-config/e2-auto-stage.json",
  "controller_lease_seconds": 120,
  "poll_seconds": 5,
  "stalled_after_seconds": 600,
  "source_limit": 2,
  "automatic_policy": {
    "path": "/srv/local_train/storage/config/automatic-hard-gates-v1.json",
    "sha256": "c4c2f73f0ca9a6d80767b7ae3f5d1a6ec74f7c46e36abf11712b2be43c67c76a"
  },
  "stages": {
    "prepare": {
      "machine_id": "REPLACE_WITH_PRODUCTION_MACHINE_ID",
      "handler": "e2-pipeline-stage",
      "memory_mb": 2048,
      "required_capabilities": [
        "production_host",
        "docker"
      ]
    },
    "solve": {
      "machine_id": "REPLACE_WITH_PRODUCTION_MACHINE_ID",
      "handler": "e2-pipeline-stage",
      "memory_mb": 2048,
      "required_capabilities": [
        "production_host",
        "docker"
      ]
    },
    "postprocess": {
      "machine_id": "REPLACE_WITH_PRODUCTION_MACHINE_ID",
      "handler": "e2-pipeline-stage",
      "memory_mb": 2048,
      "required_capabilities": [
        "production_host",
        "docker"
      ]
    },
    "automatic-admission": {
      "machine_id": "REPLACE_WITH_PRODUCTION_MACHINE_ID",
      "handler": "e2-pipeline-stage",
      "memory_mb": 2048,
      "required_capabilities": [
        "production_host",
        "publication"
      ]
    }
  },
  "production_status": "BLOCKED_TEMPLATE_NOT_A_RUNNABLE_RUN",
  "p0_required": true,
  "configuration_note": "Example template only. Does not claim P0READY. A new frozen campaign and fresh P0 snapshot are required before real production execution. Bind the identical automatic_policy reference in the new campaign.json before solve; existing dispatches without it cannot opt in after generation."
}
