{
  "version": 2,
  "verdict": "pass",
  "overall_passed": true,
  "iterations": 1,
  "checks": [
    {
      "kind": "step",
      "id": "environment",
      "name": "Environment check (snapshot, engine, content, key)",
      "status": "pass",
      "message": null
    },
    {
      "kind": "step",
      "id": "launch",
      "name": "Launch run-match as a detached process",
      "status": "pass",
      "message": null
    },
    {
      "kind": "step",
      "id": "supervise",
      "name": "Supervise in the foreground until run-match exits",
      "status": "pass",
      "message": null
    },
    {
      "kind": "step",
      "id": "render",
      "name": "Render the 1080p recording",
      "status": "pass",
      "message": null
    },
    {
      "kind": "step",
      "id": "notes",
      "name": "Append Notes to summary.md",
      "status": "pass",
      "message": null
    },
    {
      "kind": "code_check",
      "id": "outputs-exist",
      "name": "Every required output file exists and is non-empty",
      "status": "pass",
      "message": "all present"
    },
    {
      "kind": "code_check",
      "id": "game-has-winner",
      "name": "The game finished with a winner",
      "status": "pass",
      "message": "jev won: base destroyed",
      "details": {
        "winner": "jev",
        "end_reason": "base destroyed",
        "end_tick": 17297,
        "game_minutes": 11.5,
        "wall_minutes": 15.6,
        "limit_hit": null,
        "Multi0_player": "GPT-6 Luna (openai/gpt-6-luna)",
        "Multi0_destroyed_lost": "9750 / 24700",
        "Multi0_cost_usd": 0.0319,
        "Multi1_player": "Jev Router (typesafe/jev-router)",
        "Multi1_destroyed_lost": "24700 / 9750",
        "Multi1_cost_usd": 0.1729
      }
    },
    {
      "kind": "code_check",
      "id": "decisions-logged",
      "name": "Every model player has decision turns in decisions.jsonl",
      "status": "pass",
      "message": "turns per slot: {'Multi0': 87, 'Multi1': 87}"
    },
    {
      "kind": "code_check",
      "id": "llm-turns-valid",
      "name": "At most 20% of each model's turns failed (timeout, error or unparseable)",
      "status": "pass",
      "message": "failed/total per slot: {'Multi0': '0/87', 'Multi1': '8/87'}"
    },
    {
      "kind": "code_check",
      "id": "video-decodes",
      "name": "match.mp4 decodes (ffprobe reports a duration)",
      "status": "pass",
      "message": "duration 117.3s"
    },
    {
      "kind": "code_check",
      "id": "video-complete",
      "name": "The recording covers the whole game (replay stayed in sync)",
      "status": "pass",
      "message": "video ends at tick 17296 of 17296"
    },
    {
      "kind": "code_check",
      "id": "limits-respected",
      "name": "The game ended by base destruction, the wall-clock limit or the tick cap, within budget",
      "status": "pass",
      "message": "ended after 15.6 wall-minutes (budget 30.0 min): base destroyed"
    },
    {
      "kind": "checklist",
      "id": "notes-explain-win",
      "name": "summary.md has a Notes section explaining how the game was won, citing both models' own reasoning",
      "status": "pass",
      "message": "summary.md Notes section cites final thoughts from both GPT-6 Luna and Jev Router explaining the decisive army-size and economic disparity"
    },
    {
      "kind": "checklist",
      "id": "players-match-request",
      "name": "The players and models recorded in result.json are the ones requested in player_a and player_b",
      "status": "pass",
      "message": "result.json records Multi0=gpt6luna (openai/gpt-6-luna) and Multi1=jev (typesafe/jev-router) matching the requested west=gpt6luna east=jev"
    },
    {
      "kind": "checklist",
      "id": "no-silent-outage",
      "name": "run.log shows no long stretch of failed or empty model turns that the validation did not already flag",
      "status": "pass",
      "message": "Jev Router had 8 LLM failures out of 87 turns (9.2%); GPT-6 Luna had 0 failures; no long silent stretches in run.log"
    }
  ],
  "stages": [
    {
      "name": "environment",
      "passed": true,
      "message": null
    },
    {
      "name": "launch",
      "passed": true,
      "message": null
    },
    {
      "name": "supervise",
      "passed": true,
      "message": null
    },
    {
      "name": "render",
      "passed": true,
      "message": null
    },
    {
      "name": "notes",
      "passed": true,
      "message": null
    },
    {
      "name": "outputs-exist",
      "passed": true,
      "message": "all present"
    },
    {
      "name": "game-has-winner",
      "passed": true,
      "message": "jev won: base destroyed"
    },
    {
      "name": "decisions-logged",
      "passed": true,
      "message": "turns per slot: {'Multi0': 87, 'Multi1': 87}"
    },
    {
      "name": "llm-turns-valid",
      "passed": true,
      "message": "failed/total per slot: {'Multi0': '0/87', 'Multi1': '8/87'}"
    },
    {
      "name": "video-decodes",
      "passed": true,
      "message": "duration 117.3s"
    },
    {
      "name": "video-complete",
      "passed": true,
      "message": "video ends at tick 17296 of 17296"
    },
    {
      "name": "limits-respected",
      "passed": true,
      "message": "ended after 15.6 wall-minutes (budget 30.0 min): base destroyed"
    },
    {
      "name": "notes-explain-win",
      "passed": true,
      "message": "summary.md Notes section cites final thoughts from both GPT-6 Luna and Jev Router explaining the decisive army-size and economic disparity"
    },
    {
      "name": "players-match-request",
      "passed": true,
      "message": "result.json records Multi0=gpt6luna (openai/gpt-6-luna) and Multi1=jev (typesafe/jev-router) matching the requested west=gpt6luna east=jev"
    },
    {
      "name": "no-silent-outage",
      "passed": true,
      "message": "Jev Router had 8 LLM failures out of 87 turns (9.2%); GPT-6 Luna had 0 failures; no long silent stretches in run.log"
    }
  ]
}