{
  "benchmark_id": "001_synthetic_mine_throughput",
  "submission_dir": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort",
  "outputs_dir": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort",
  "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": 12546.666667,
    "trucks_4": 7650.0,
    "trucks_12": 12906.666667,
    "ramp_upgrade": 12606.666667,
    "crusher_slowdown": 6513.333333,
    "ramp_closed": 12363.333333,
    "trucks_12_ramp_upgrade": 12953.333333
  },
  "quantitative_metrics": {
    "loc": {
      "python_file_count": 27,
      "total_lines": 5444,
      "code_lines": 4335,
      "comment_lines": 230,
      "blank_lines": 879,
      "files": [
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/tests/test_rng.py",
          "total_lines": 83,
          "code_lines": 55,
          "comment_lines": 5,
          "blank_lines": 23
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/tests/conftest.py",
          "total_lines": 22,
          "code_lines": 13,
          "comment_lines": 1,
          "blank_lines": 8
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/tests/test_behavioural.py",
          "total_lines": 71,
          "code_lines": 45,
          "comment_lines": 4,
          "blank_lines": 22
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/tests/__init__.py",
          "total_lines": 0,
          "code_lines": 0,
          "comment_lines": 0,
          "blank_lines": 0
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/tests/test_routing.py",
          "total_lines": 131,
          "code_lines": 83,
          "comment_lines": 16,
          "blank_lines": 32
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/tests/test_runner.py",
          "total_lines": 73,
          "code_lines": 49,
          "comment_lines": 4,
          "blank_lines": 20
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/tests/test_aggregate.py",
          "total_lines": 130,
          "code_lines": 101,
          "comment_lines": 9,
          "blank_lines": 20
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/tests/test_shift_cut.py",
          "total_lines": 61,
          "code_lines": 45,
          "comment_lines": 2,
          "blank_lines": 14
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/tests/test_scenarios.py",
          "total_lines": 81,
          "code_lines": 56,
          "comment_lines": 4,
          "blank_lines": 21
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/tests/test_io_writers.py",
          "total_lines": 213,
          "code_lines": 166,
          "comment_lines": 11,
          "blank_lines": 36
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/tests/test_topology.py",
          "total_lines": 79,
          "code_lines": 56,
          "comment_lines": 5,
          "blank_lines": 18
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/src/mine_sim/scenarios.py",
          "total_lines": 374,
          "code_lines": 287,
          "comment_lines": 20,
          "blank_lines": 67
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/src/mine_sim/metrics.py",
          "total_lines": 373,
          "code_lines": 298,
          "comment_lines": 22,
          "blank_lines": 53
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/src/mine_sim/scenario_runner.py",
          "total_lines": 246,
          "code_lines": 204,
          "comment_lines": 0,
          "blank_lines": 42
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/src/mine_sim/aggregate.py",
          "total_lines": 384,
          "code_lines": 308,
          "comment_lines": 5,
          "blank_lines": 71
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/src/mine_sim/io_writers.py",
          "total_lines": 523,
          "code_lines": 435,
          "comment_lines": 22,
          "blank_lines": 66
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/src/mine_sim/runner.py",
          "total_lines": 166,
          "code_lines": 130,
          "comment_lines": 2,
          "blank_lines": 34
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/src/mine_sim/rng.py",
          "total_lines": 184,
          "code_lines": 140,
          "comment_lines": 8,
          "blank_lines": 36
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/src/mine_sim/events.py",
          "total_lines": 117,
          "code_lines": 90,
          "comment_lines": 6,
          "blank_lines": 21
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/src/mine_sim/__init__.py",
          "total_lines": 120,
          "code_lines": 116,
          "comment_lines": 0,
          "blank_lines": 4
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/src/mine_sim/narrative.py",
          "total_lines": 125,
          "code_lines": 116,
          "comment_lines": 1,
          "blank_lines": 8
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/src/mine_sim/model.py",
          "total_lines": 505,
          "code_lines": 434,
          "comment_lines": 26,
          "blank_lines": 45
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/src/mine_sim/cli.py",
          "total_lines": 372,
          "code_lines": 304,
          "comment_lines": 12,
          "blank_lines": 56
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/src/mine_sim/routing.py",
          "total_lines": 249,
          "code_lines": 182,
          "comment_lines": 17,
          "blank_lines": 50
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/src/mine_sim/topology.py",
          "total_lines": 412,
          "code_lines": 333,
          "comment_lines": 19,
          "blank_lines": 60
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/src/mine_sim/viz.py",
          "total_lines": 336,
          "code_lines": 280,
          "comment_lines": 9,
          "blank_lines": 47
        },
        {
          "path": "submissions/2026-06-01__001_synthetic_mine_throughput__claude-code__claude-opus-4-8__plan-mode-max-effort/src/mine_sim/__main__.py",
          "total_lines": 14,
          "code_lines": 9,
          "comment_lines": 0,
          "blank_lines": 5
        }
      ]
    },
    "files": {
      "file_count": 53,
      "by_suffix": {
        ".csv": 7,
        ".gif": 1,
        ".json": 3,
        ".md": 3,
        ".png": 1,
        ".py": 27,
        ".toml": 1,
        ".txt": 1,
        ".yaml": 8,
        "[no_suffix]": 1
      }
    },
    "runtime_seconds": 2.8,
    "return_code": 0,
    "timed_out": false,
    "token_usage": {
      "input_tokens": null,
      "output_tokens": null,
      "total_tokens": null,
      "token_count_method": "unknown",
      "estimated_cost_usd": null,
      "note": "Token usage was not instrumented for this interactive Claude Code session; method is 'unknown' rather than 'reported'."
    }
  },
  "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."
  ]
}