{
  "benchmark_id": "001_synthetic_mine_throughput",
  "submission_dir": "submissions/2026-05-19__001_synthetic_mine_throughput__antigravity__gemini-3-5-flash__normal-thinking",
  "outputs_dir": "submissions/2026-05-19__001_synthetic_mine_throughput__antigravity__gemini-3-5-flash__normal-thinking",
  "automated_checks": {
    "passed": 57,
    "total": 57,
    "pass_rate": 1.0,
    "checks": [
      {
        "name": "output_exists_conceptual_model.md",
        "passed": true,
        "description": "Required output file conceptual_model.md should exist."
      },
      {
        "name": "output_exists_README.md",
        "passed": true,
        "description": "Required output file README.md should exist."
      },
      {
        "name": "output_exists_results.csv",
        "passed": true,
        "description": "Required output file results.csv should exist."
      },
      {
        "name": "output_exists_summary.json",
        "passed": true,
        "description": "Required output file summary.json should exist."
      },
      {
        "name": "output_exists_event_log.csv",
        "passed": true,
        "description": "Required output file event_log.csv should exist."
      },
      {
        "name": "summary_has_benchmark_id",
        "passed": true,
        "description": "summary.json should include benchmark_id."
      },
      {
        "name": "summary_has_scenarios_object",
        "passed": true,
        "description": "summary.json should include a scenarios object."
      },
      {
        "name": "scenario_present_baseline",
        "passed": true,
        "description": "summary.json should include scenario baseline."
      },
      {
        "name": "scenario_present_trucks_4",
        "passed": true,
        "description": "summary.json should include scenario trucks_4."
      },
      {
        "name": "scenario_present_trucks_12",
        "passed": true,
        "description": "summary.json should include scenario trucks_12."
      },
      {
        "name": "scenario_present_ramp_upgrade",
        "passed": true,
        "description": "summary.json should include scenario ramp_upgrade."
      },
      {
        "name": "scenario_present_crusher_slowdown",
        "passed": true,
        "description": "summary.json should include scenario crusher_slowdown."
      },
      {
        "name": "scenario_present_ramp_closed",
        "passed": true,
        "description": "summary.json should include scenario ramp_closed."
      },
      {
        "name": "baseline_has_replications",
        "passed": true,
        "description": "baseline should include replications."
      },
      {
        "name": "baseline_has_shift_length_hours",
        "passed": true,
        "description": "baseline should include shift_length_hours."
      },
      {
        "name": "baseline_has_total_tonnes_mean",
        "passed": true,
        "description": "baseline should include total_tonnes_mean."
      },
      {
        "name": "baseline_has_tonnes_per_hour_mean",
        "passed": true,
        "description": "baseline should include tonnes_per_hour_mean."
      },
      {
        "name": "trucks_4_has_replications",
        "passed": true,
        "description": "trucks_4 should include replications."
      },
      {
        "name": "trucks_4_has_shift_length_hours",
        "passed": true,
        "description": "trucks_4 should include shift_length_hours."
      },
      {
        "name": "trucks_4_has_total_tonnes_mean",
        "passed": true,
        "description": "trucks_4 should include total_tonnes_mean."
      },
      {
        "name": "trucks_4_has_tonnes_per_hour_mean",
        "passed": true,
        "description": "trucks_4 should include tonnes_per_hour_mean."
      },
      {
        "name": "trucks_12_has_replications",
        "passed": true,
        "description": "trucks_12 should include replications."
      },
      {
        "name": "trucks_12_has_shift_length_hours",
        "passed": true,
        "description": "trucks_12 should include shift_length_hours."
      },
      {
        "name": "trucks_12_has_total_tonnes_mean",
        "passed": true,
        "description": "trucks_12 should include total_tonnes_mean."
      },
      {
        "name": "trucks_12_has_tonnes_per_hour_mean",
        "passed": true,
        "description": "trucks_12 should include tonnes_per_hour_mean."
      },
      {
        "name": "ramp_upgrade_has_replications",
        "passed": true,
        "description": "ramp_upgrade should include replications."
      },
      {
        "name": "ramp_upgrade_has_shift_length_hours",
        "passed": true,
        "description": "ramp_upgrade should include shift_length_hours."
      },
      {
        "name": "ramp_upgrade_has_total_tonnes_mean",
        "passed": true,
        "description": "ramp_upgrade should include total_tonnes_mean."
      },
      {
        "name": "ramp_upgrade_has_tonnes_per_hour_mean",
        "passed": true,
        "description": "ramp_upgrade should include tonnes_per_hour_mean."
      },
      {
        "name": "crusher_slowdown_has_replications",
        "passed": true,
        "description": "crusher_slowdown should include replications."
      },
      {
        "name": "crusher_slowdown_has_shift_length_hours",
        "passed": true,
        "description": "crusher_slowdown should include shift_length_hours."
      },
      {
        "name": "crusher_slowdown_has_total_tonnes_mean",
        "passed": true,
        "description": "crusher_slowdown should include total_tonnes_mean."
      },
      {
        "name": "crusher_slowdown_has_tonnes_per_hour_mean",
        "passed": true,
        "description": "crusher_slowdown should include tonnes_per_hour_mean."
      },
      {
        "name": "ramp_closed_has_replications",
        "passed": true,
        "description": "ramp_closed should include replications."
      },
      {
        "name": "ramp_closed_has_shift_length_hours",
        "passed": true,
        "description": "ramp_closed should include shift_length_hours."
      },
      {
        "name": "ramp_closed_has_total_tonnes_mean",
        "passed": true,
        "description": "ramp_closed should include total_tonnes_mean."
      },
      {
        "name": "ramp_closed_has_tonnes_per_hour_mean",
        "passed": true,
        "description": "ramp_closed should include tonnes_per_hour_mean."
      },
      {
        "name": "trucks_12_ramp_upgrade_has_replications",
        "passed": true,
        "description": "trucks_12_ramp_upgrade should include replications."
      },
      {
        "name": "trucks_12_ramp_upgrade_has_shift_length_hours",
        "passed": true,
        "description": "trucks_12_ramp_upgrade should include shift_length_hours."
      },
      {
        "name": "trucks_12_ramp_upgrade_has_total_tonnes_mean",
        "passed": true,
        "description": "trucks_12_ramp_upgrade should include total_tonnes_mean."
      },
      {
        "name": "trucks_12_ramp_upgrade_has_tonnes_per_hour_mean",
        "passed": true,
        "description": "trucks_12_ramp_upgrade should include tonnes_per_hour_mean."
      },
      {
        "name": "results_has_scenario_id",
        "passed": true,
        "description": "results.csv should include scenario_id."
      },
      {
        "name": "results_has_replication",
        "passed": true,
        "description": "results.csv should include replication."
      },
      {
        "name": "results_has_random_seed",
        "passed": true,
        "description": "results.csv should include random_seed."
      },
      {
        "name": "results_has_total_tonnes_delivered",
        "passed": true,
        "description": "results.csv should include total_tonnes_delivered."
      },
      {
        "name": "results_has_tonnes_per_hour",
        "passed": true,
        "description": "results.csv should include tonnes_per_hour."
      },
      {
        "name": "event_log_has_time_min",
        "passed": true,
        "description": "event_log.csv should include time_min."
      },
      {
        "name": "event_log_has_replication",
        "passed": true,
        "description": "event_log.csv should include replication."
      },
      {
        "name": "event_log_has_scenario_id",
        "passed": true,
        "description": "event_log.csv should include scenario_id."
      },
      {
        "name": "event_log_has_truck_id",
        "passed": true,
        "description": "event_log.csv should include truck_id."
      },
      {
        "name": "event_log_has_event_type",
        "passed": true,
        "description": "event_log.csv should include event_type."
      },
      {
        "name": "trucks_12_gt_trucks_4",
        "passed": true,
        "description": "Higher fleet should usually outperform lower fleet."
      },
      {
        "name": "baseline_gt_trucks_4",
        "passed": true,
        "description": "Baseline 8-truck case should usually outperform 4-truck case."
      },
      {
        "name": "ramp_upgrade_ge_baseline",
        "passed": true,
        "description": "Ramp upgrade should usually improve or maintain throughput."
      },
      {
        "name": "crusher_slowdown_lt_baseline",
        "passed": true,
        "description": "Slower crusher should usually reduce throughput."
      },
      {
        "name": "ramp_closed_le_baseline",
        "passed": true,
        "description": "Ramp closure should usually not improve throughput."
      },
      {
        "name": "truck_count_saturation_plausible",
        "passed": true,
        "description": "Throughput should show some saturation as trucks increase."
      }
    ]
  },
  "scenario_total_tonnes_means": {
    "baseline": 12503.33,
    "trucks_4": 7623.33,
    "trucks_12": 12896.67,
    "ramp_upgrade": 12556.67,
    "crusher_slowdown": 6530.0,
    "ramp_closed": 12393.33,
    "trucks_12_ramp_upgrade": 12876.67
  },
  "quantitative_metrics": {
    "loc": {
      "python_file_count": 7,
      "total_lines": 1334,
      "code_lines": 992,
      "comment_lines": 121,
      "blank_lines": 221,
      "files": [
        {
          "path": "submissions/2026-05-19__001_synthetic_mine_throughput__antigravity__gemini-3-5-flash__normal-thinking/src/mine_sim/data_loader.py",
          "total_lines": 74,
          "code_lines": 60,
          "comment_lines": 3,
          "blank_lines": 11
        },
        {
          "path": "submissions/2026-05-19__001_synthetic_mine_throughput__antigravity__gemini-3-5-flash__normal-thinking/src/mine_sim/graph.py",
          "total_lines": 148,
          "code_lines": 114,
          "comment_lines": 12,
          "blank_lines": 22
        },
        {
          "path": "submissions/2026-05-19__001_synthetic_mine_throughput__antigravity__gemini-3-5-flash__normal-thinking/src/mine_sim/__init__.py",
          "total_lines": 1,
          "code_lines": 0,
          "comment_lines": 1,
          "blank_lines": 0
        },
        {
          "path": "submissions/2026-05-19__001_synthetic_mine_throughput__antigravity__gemini-3-5-flash__normal-thinking/src/mine_sim/visualisation.py",
          "total_lines": 264,
          "code_lines": 197,
          "comment_lines": 27,
          "blank_lines": 40
        },
        {
          "path": "submissions/2026-05-19__001_synthetic_mine_throughput__antigravity__gemini-3-5-flash__normal-thinking/src/mine_sim/model.py",
          "total_lines": 440,
          "code_lines": 314,
          "comment_lines": 42,
          "blank_lines": 84
        },
        {
          "path": "submissions/2026-05-19__001_synthetic_mine_throughput__antigravity__gemini-3-5-flash__normal-thinking/src/mine_sim/experiment.py",
          "total_lines": 220,
          "code_lines": 170,
          "comment_lines": 19,
          "blank_lines": 31
        },
        {
          "path": "submissions/2026-05-19__001_synthetic_mine_throughput__antigravity__gemini-3-5-flash__normal-thinking/src/mine_sim/__main__.py",
          "total_lines": 187,
          "code_lines": 137,
          "comment_lines": 17,
          "blank_lines": 33
        }
      ]
    },
    "files": {
      "file_count": 31,
      "by_suffix": {
        ".csv": 7,
        ".gif": 1,
        ".json": 4,
        ".md": 3,
        ".png": 1,
        ".py": 7,
        ".yaml": 7,
        "[no_suffix]": 1
      }
    },
    "runtime_seconds": null,
    "return_code": null,
    "timed_out": null,
    "token_usage": {
      "input_tokens": null,
      "output_tokens": null,
      "total_tokens": null,
      "token_count_method": "unknown",
      "estimated_cost_usd": null
    }
  },
  "notes": [
    "Automated checks are not a substitute for human review.",
    "Behavioural checks are broad sanity checks, not exact answer keys.",
    "Token usage is reported only if supplied by the benchmark runner."
  ]
}