{
  "schemaVersion": 3,
  "runId": "c4a59a56-eb25-4438-afae-b13af70d3626",
  "fixtureIds": [
    "gmod.ents-iterator.v1",
    "gmod.hook-add.v1",
    "gmod.isvalid.v1",
    "gmod.net-receivers.v1",
    "gmod.perf.angle-zero.v1",
    "gmod.perf.config-var.v1",
    "gmod.perf.darkrpvar.v1",
    "gmod.perf.disttosqr.v1",
    "gmod.perf.ents-iterator.v1",
    "gmod.perf.find-ents-near.v1",
    "gmod.perf.find-players-near.v1",
    "gmod.perf.for-vs-while.v1",
    "gmod.perf.hook-once.v1",
    "gmod.perf.hudpaint-cache.v1",
    "gmod.perf.local-color.v1",
    "gmod.perf.local-vs-global.v1",
    "gmod.perf.localplayer-cache.v1",
    "gmod.perf.looking-at.v1",
    "gmod.perf.meta-vs-arg.v1",
    "gmod.perf.msg-vs-print.v1",
    "gmod.perf.pairs-ipairs-for.v1",
    "gmod.perf.plain-lua-vs-fn.v1",
    "gmod.perf.player-cache-hooks.v1",
    "gmod.perf.ply-table-index.v1",
    "gmod.perf.seq-tables.v1",
    "gmod.perf.setdrawcolor-split.v1",
    "gmod.perf.sqlite-vs-mysql.v1",
    "gmod.perf.steamid-cache.v1",
    "gmod.perf.string-table-concat.v1",
    "gmod.perf.surface-drawrect.v1",
    "gmod.perf.surface-text.v1",
    "gmod.perf.table-count-hash.v1",
    "gmod.perf.table-empty.v1",
    "gmod.perf.table-hasvalue.v1",
    "gmod.perf.table-literal.v1",
    "gmod.perf.table-random.v1",
    "gmod.perf.x-times-x.v1",
    "gmod.player-iterator.v1"
  ],
  "startedAt": "2026-07-11T06:50:37.822Z",
  "completedAt": "2026-07-11T06:53:24.362Z",
  "repeat": 1,
  "concurrency": 4,
  "attempts": [
    {
      "fixtureId": "gmod.ents-iterator.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nfor _, ent in ipairs(ents.FindByClass(\"prop_physics\")) do\n    print(ent)\nend\n```\n\nReason: `ents.FindByClass(\"prop_physics\")` queries the engine directly for entities matching that class, so no intermediate full-entity table is constructed by user code before the loop runs.",
      "durationMs": 9771,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "2",
      "promptHash": "3990c92253db85bb",
      "startedAt": "2026-07-11T06:50:37.826Z",
      "completedAt": "2026-07-11T06:50:47.606Z",
      "answerBytes": 280,
      "answerChars": 280,
      "exitCode": 0,
      "usage": {
        "promptTokens": 72,
        "completionTokens": 70,
        "totalTokens": 142,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.hook-add.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Registers a named hook with hook.Add.",
      "finalResponse": "```lua\nhook.Add(\"Think\", \"MyAddon.Think\", function()\nend)\n```\n\nReason: `hook.Add` takes the hook name (`\"Think\"`), a unique string identifier (`\"MyAddon.Think\"`) used to reference or remove the hook later, and a callback function that is called every game tick.",
      "durationMs": 11041,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "2",
      "promptHash": "12d2222fdb7d6b90",
      "startedAt": "2026-07-11T06:50:37.826Z",
      "completedAt": "2026-07-11T06:50:48.871Z",
      "answerBytes": 261,
      "answerChars": 261,
      "exitCode": 0,
      "usage": {
        "promptTokens": 78,
        "completionTokens": 66,
        "totalTokens": 144,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.isvalid.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Uses IsValid for entity/object validity.",
      "finalResponse": "```lua\nif IsValid(ent) then\n    ent:SomeMethod()\nend\n```\n\nReason: `IsValid()` returns `false` for both `nil` and `NULL` (a Source engine null entity), whereas a plain `ent ~= nil` check would still pass on a `NULL` entity—one whose underlying C++ object has been removed—causing a crash when any method is called on it.",
      "durationMs": 7659,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "2",
      "promptHash": "35527312e59dfc13",
      "startedAt": "2026-07-11T06:50:37.826Z",
      "completedAt": "2026-07-11T06:50:45.499Z",
      "answerBytes": 323,
      "answerChars": 319,
      "exitCode": 0,
      "usage": {
        "promptTokens": 74,
        "completionTokens": 80,
        "totalTokens": 154,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.net-receivers.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nnet.Receive(\"MyAddon.Sync\", function(len, ply)\n    -- ply is the sending player (server-side only; nil on client)\n    local data = net.ReadString()\n    print(\"Received MyAddon.Sync with data:\", data)\nend)\n```\n\nReason: `net.Receive` registers a callback that fires whenever a net message with the given name arrives; the callback receives the message length in bits and, when called server-side, the `Player` who sent it.",
      "durationMs": 8304,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "2",
      "promptHash": "24d54ee8366753a6",
      "startedAt": "2026-07-11T06:50:37.826Z",
      "completedAt": "2026-07-11T06:50:46.147Z",
      "answerBytes": 427,
      "answerChars": 427,
      "exitCode": 0,
      "usage": {
        "promptTokens": 64,
        "completionTokens": 107,
        "totalTokens": 171,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.angle-zero.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "incorrect",
      "detail": "Did not match a fixture answer pattern.",
      "finalResponse": "```lua\n-- Allocate once, outside the hot path\nlocal scratchAngle = Angle(0, 0, 0)\n\nlocal function DoHotWork()\n    -- Reuse by zeroing fields directly — no new userdata allocation\n    scratchAngle.p = 0\n    scratchAngle.y = 0\n    scratchAngle.r = 0\n\n    -- use scratchAngle ...\nend\n```\n\nReason: Calling `Angle()` each iteration allocates a new userdata object on every call, pressuring the garbage collector; reusing a single pre-allocated `Angle` and resetting its `p`/`y`/`r` fields in-place is a pure field-write with zero allocation, keeping the GC quiet across thousands of frames.",
      "durationMs": 18770,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "f6bc97bf98280d62",
      "startedAt": "2026-07-11T06:50:45.501Z",
      "completedAt": "2026-07-11T06:51:04.273Z",
      "answerBytes": 587,
      "answerChars": 585,
      "exitCode": 0,
      "usage": {
        "promptTokens": 71,
        "completionTokens": 147,
        "totalTokens": 218,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.config-var.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\n-- Preferred: flat local variable (module-level or upvalue)\nlocal color = Vector(255, 128, 0)\n\n-- Read (no table lookups, direct upvalue access)\nlocal c = color\n```\n\nReason: Local variables (upvalues) are resolved in a single CPU instruction via the Lua VM's register/upvalue slot, whereas `myaddon.config.color` requires two sequential `GETTABLE` bytecode ops (global → nested table → key), each involving a hash-map lookup, making the flat local significantly faster for hot reads.",
      "durationMs": 11423,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "bcc4ff8eb162b699",
      "startedAt": "2026-07-11T06:50:46.149Z",
      "completedAt": "2026-07-11T06:50:57.574Z",
      "answerBytes": 494,
      "answerChars": 490,
      "exitCode": 0,
      "usage": {
        "promptTokens": 82,
        "completionTokens": 123,
        "totalTokens": 205,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.darkrpvar.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nlocal jobName = ply:getDarkRPVar(\"job\")\n```\n\nReason: `getDarkRPVar(\"job\")` is the official DarkRP API for reading synced job data — it reads from DarkRP's own networked variable system rather than the raw NWString layer, making it more robust to internal DarkRP changes and consistent with how all other DarkRP vars (salary, money, etc.) are accessed.",
      "durationMs": 7683,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "02a37daa699cded3",
      "startedAt": "2026-07-11T06:50:47.608Z",
      "completedAt": "2026-07-11T06:50:55.291Z",
      "answerBytes": 360,
      "answerChars": 358,
      "exitCode": 0,
      "usage": {
        "promptTokens": 66,
        "completionTokens": 90,
        "totalTokens": 156,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.disttosqr.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nif vecA:DistToSqr(vecB) < threshold * threshold then\n    -- within range\nend\n```\n\nReason: `DistToSqr` returns the squared distance and skips the expensive `math.sqrt` call that `Dist` performs, so comparing it against the squared threshold is both accurate and faster when you only need a threshold check.",
      "durationMs": 9798,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "a5772470c6859cdc",
      "startedAt": "2026-07-11T06:50:48.872Z",
      "completedAt": "2026-07-11T06:50:58.672Z",
      "answerBytes": 312,
      "answerChars": 312,
      "exitCode": 0,
      "usage": {
        "promptTokens": 71,
        "completionTokens": 78,
        "totalTokens": 149,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.ents-iterator.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nfor _, ent in ents.Iterator() do\n    -- work with ent\n    print(ent)\nend\n```\n\nReason: `ents.Iterator()` is the GMod wiki's recommended efficient alternative to `ents.GetAll()` because it returns a stateful iterator over the internal entity list directly, avoiding the allocation and population of a temporary table on every call.",
      "durationMs": 8399,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "306d3f1d05f28246",
      "startedAt": "2026-07-11T06:50:55.293Z",
      "completedAt": "2026-07-11T06:51:03.693Z",
      "answerBytes": 336,
      "answerChars": 336,
      "exitCode": 0,
      "usage": {
        "promptTokens": 66,
        "completionTokens": 84,
        "totalTokens": 150,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.find-ents-near.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "Answer must contain 0 through 0 candidate loops.",
      "finalResponse": "```lua\nlocal function GetNearbyEntities(player, radius)\n    local origin = player:GetPos()\n    return ents.FindInSphere(origin, radius)\nend\n\n-- Usage\nlocal nearby = GetNearbyEntities(ply, 512)\nfor _, ent in ipairs(nearby) do\n    -- process ent\nend\n```\n\nReason: `ents.FindInSphere` consistently outperforms `FindInPVS` and `FindInBox` in community benchmarks for tight radius queries around a player because it does a single distance-squared check per candidate against a fixed origin, avoiding the broader over-inclusion of PVS cells and the axis-aligned box expansion overhead; it is the idiomatic fast pick for \"entities near a point\" in GMod Lua.",
      "durationMs": 11911,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "07c583fc3d9fe09f",
      "startedAt": "2026-07-11T06:50:57.575Z",
      "completedAt": "2026-07-11T06:51:09.488Z",
      "answerBytes": 649,
      "answerChars": 649,
      "exitCode": 0,
      "usage": {
        "promptTokens": 83,
        "completionTokens": 163,
        "totalTokens": 246,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.find-players-near.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nlocal function GetPlayersInRadius(origin, radius)\n    local radiusSqr = radius * radius\n    local result = {}\n    for _, ply in ipairs(player.GetAll()) do\n        if ply:GetPos():DistToSqr(origin) <= radiusSqr do\n            result[#result + 1] = ply\n        end\n    end\n    return result\nend\n```\n\nReason: `ents.FindInSphere` performs a broad spatial query over **all** entities in the world (props, NPCs, projectiles, etc.) and builds a full result table before you can filter it, whereas `player.GetAll()` returns only the pre-maintained player list (≤ 128 entries on any server), letting you do a tight `DistToSqr` comparison (squaring the radius once avoids repeated `math.sqrt` calls inside `Vector:Distance`) on exactly the entities you care about — no allocation of unwanted entity results, no Lua-side type filtering loop on top.",
      "durationMs": 13129,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "d139ba2e8ee38a2f",
      "startedAt": "2026-07-11T06:50:58.673Z",
      "completedAt": "2026-07-11T06:51:11.803Z",
      "answerBytes": 848,
      "answerChars": 844,
      "exitCode": 0,
      "usage": {
        "promptTokens": 79,
        "completionTokens": 211,
        "totalTokens": 290,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.for-vs-while.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nlocal n = 1000000\nfor i = 1, n do\n    -- body\nend\n```\n\nReason: Garry's Mod runs LuaJIT, which compiles the numeric `for` loop using dedicated `FORI`/`FORL` bytecode instructions that the JIT traces and optimises into tight native code; a `while` loop requires a separate counter variable, an explicit increment, and a branch instruction, producing more bytecode and giving the JIT less static information to work with, making it measurably slower in tight counting loops.",
      "durationMs": 9271,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "b3401a190a8aecf0",
      "startedAt": "2026-07-11T06:51:03.694Z",
      "completedAt": "2026-07-11T06:51:12.966Z",
      "answerBytes": 478,
      "answerChars": 478,
      "exitCode": 0,
      "usage": {
        "promptTokens": 65,
        "completionTokens": 120,
        "totalTokens": 185,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.hook-once.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\n-- FASTER: Call hook.Run once, pass all players as a table\nhook.Add(\"Think\", \"NotifyAllPlayers_Fast\", function()\n    local players = player.GetAll()\n    hook.Run(\"OnTickAllPlayers\", players)\nend)\n\n-- SLOWER: Loop players and call hook.Run per player\nhook.Add(\"Think\", \"NotifyAllPlayers_Slow\", function()\n    for _, ply in ipairs(player.GetAll()) do\n        hook.Run(\"OnTickPerPlayer\", ply)\n    end\nend)\n```\n\nReason: `hook.Run` iterates the entire hook table and performs a function lookup every call, so calling it N times (once per player) multiplies that overhead by N each tick; calling it once and passing the player list as an argument pays that fixed lookup cost only once, making the single-call pattern O(1) in hook overhead versus O(N).",
      "durationMs": 11002,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "ed1d3e09249fc8bb",
      "startedAt": "2026-07-11T06:51:04.279Z",
      "completedAt": "2026-07-11T06:51:15.284Z",
      "answerBytes": 752,
      "answerChars": 752,
      "exitCode": 0,
      "usage": {
        "promptTokens": 84,
        "completionTokens": 188,
        "totalTokens": 272,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.hudpaint-cache.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nhook.Add(\"HUDPaint\", \"DrawHealth\", function()\n    local hp = LocalPlayer():Health()\n\n    draw.SimpleText(\"HP: \" .. hp, \"DermaDefault\", 20, 20, Color(255, 255, 255))\n    draw.SimpleText(\"Health: \" .. hp, \"DermaDefault\", 20, 40, Color(0, 255, 0))\n    draw.SimpleText(hp .. \"%\", \"DermaDefault\", 20, 60, Color(255, 0, 0))\nend)\n```\n\nReason: Caching `LocalPlayer():Health()` into a local variable `hp` before the draw calls eliminates two redundant C→Lua boundary crossings per frame — `LocalPlayer()` and `:Health()` are both metamethod dispatches into the engine, so calling them once and reusing the result is faster than invoking them three times.",
      "durationMs": 12591,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "3def450f3158ceff",
      "startedAt": "2026-07-11T06:51:09.489Z",
      "completedAt": "2026-07-11T06:51:22.081Z",
      "answerBytes": 656,
      "answerChars": 652,
      "exitCode": 0,
      "usage": {
        "promptTokens": 76,
        "completionTokens": 163,
        "totalTokens": 239,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.local-color.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nlocal white = Color(255, 255, 255)\n\nhook.Add(\"HUDPaint\", \"ExamplePaint\", function()\n    draw.SimpleText(\"Hello\", \"DermaDefault\", 100, 100, white)\nend)\n```\n\nReason: `Color()` allocates a new table on every call; caching it in an upvalue outside the paint callback eliminates that per-frame allocation, reducing GC pressure and removing the constructor overhead from the hot path entirely.",
      "durationMs": 8810,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "16a7bed1b931d467",
      "startedAt": "2026-07-11T06:51:11.805Z",
      "completedAt": "2026-07-11T06:51:20.617Z",
      "answerBytes": 394,
      "answerChars": 394,
      "exitCode": 0,
      "usage": {
        "promptTokens": 63,
        "completionTokens": 99,
        "totalTokens": 162,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.local-vs-global.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nlocal sin = math.sin\n\nfor i = 1, 1000000 do\n    local result = sin(i * 0.01)\nend\n```\n\nReason: Storing `math.sin` in a local variable avoids a global table lookup (`_G[\"math\"][\"sin\"]`) on every iteration; Lua resolves locals via a direct register/upvalue access which is significantly faster than traversing the global environment table each call.",
      "durationMs": 7055,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "c116d8c651190647",
      "startedAt": "2026-07-11T06:51:12.968Z",
      "completedAt": "2026-07-11T06:51:20.024Z",
      "answerBytes": 353,
      "answerChars": 353,
      "exitCode": 0,
      "usage": {
        "promptTokens": 62,
        "completionTokens": 89,
        "totalTokens": 151,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.localplayer-cache.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nlocal LocalPlayer = LocalPlayer\n\nhook.Add(\"Think\", \"example_think\", function()\n    local ply = LocalPlayer()\n    if not IsValid(ply) then return end\n\n    -- use ply freely, no repeated LocalPlayer() calls\n    local pos  = ply:GetPos()\n    local vel  = ply:GetVelocity()\n    local hp   = ply:Health()\nend)\n```\n\nReason: Shadowing `LocalPlayer` as a `local` at the top of the file (or module) replaces every subsequent call's slow `_G` hash-table lookup with a cheap upvalue read from the VM's register file; within each hook/function body you then assign `LocalPlayer()` once to a local `ply`, so the function-call overhead itself also happens only once per frame instead of once per usage site.",
      "durationMs": 11091,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "2",
      "promptHash": "7398105af47b079e",
      "startedAt": "2026-07-11T06:51:15.286Z",
      "completedAt": "2026-07-11T06:51:26.379Z",
      "answerBytes": 700,
      "answerChars": 700,
      "exitCode": 0,
      "usage": {
        "promptTokens": 70,
        "completionTokens": 175,
        "totalTokens": 245,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.looking-at.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "partial",
      "detail": "Matched a partial-answer pattern.",
      "finalResponse": "```lua\nlocal function ArePlayersFacingEachOther(p1, p2, threshold)\n    -- threshold is the minimum dot product (e.g. 0.8 ≈ within ~37°, 0.0 = up to 90°)\n    threshold = threshold or 0.7\n\n    local aim1 = p1:GetAimVector()          -- unit vector, already normalised by the engine\n    local aim2 = p2:GetAimVector()\n\n    -- Vector from p1 to p2 and vice-versa (normalised cheaply with :GetNormalized)\n    local eye1 = p1:EyePos()\n    local eye2 = p2:EyePos()\n\n    local dir1to2 = (eye2 - eye1):GetNormalized()\n    local dir2to1 = -dir1to2               -- exact inverse, no second normalize needed\n\n    -- Dot products: >0 means generally pointing toward; >threshold means within a cone\n    -- Dot of two unit vectors = cos(angle), no trig needed\n    local dot1 = aim1:Dot(dir1to2)         -- is p1 aiming roughly toward p2?\n    local dot2 = aim2:Dot(dir2to1)         -- is p2 aiming roughly toward p1?\n\n    return dot1 >= threshold and dot2 >= threshold\nend\n```\n\nReason: Two unit vectors' dot product equals cos(θ) directly, so comparing it against a constant threshold is a single multiply-add per axis—no `math.acos`, no branch-heavy angle unwrapping, and the inverse direction reuses the already-normalised delta, halving the normalisation cost.",
      "durationMs": 13833,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "20b22f678a4b08d7",
      "startedAt": "2026-07-11T06:51:20.026Z",
      "completedAt": "2026-07-11T06:51:33.860Z",
      "answerBytes": 1255,
      "answerChars": 1248,
      "exitCode": 0,
      "usage": {
        "promptTokens": 91,
        "completionTokens": 312,
        "totalTokens": 403,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.meta-vs-arg.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nSomeHelper(ply)\n```\n\nReason: In Lua, `ply:SomeHelper()` is syntactic sugar for `ply.SomeHelper(ply)`, which requires a table index lookup on the object (and its metatable chain if not found directly) every call — for a helper *you control* that lives in a plain module or global, `SomeHelper(ply)` skips that lookup entirely, making it consistently faster.",
      "durationMs": 8022,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "de332f7356830dfa",
      "startedAt": "2026-07-11T06:51:20.618Z",
      "completedAt": "2026-07-11T06:51:28.641Z",
      "answerBytes": 365,
      "answerChars": 363,
      "exitCode": 0,
      "usage": {
        "promptTokens": 71,
        "completionTokens": 91,
        "totalTokens": 162,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.msg-vs-print.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nMsgN(\"debug value: \" .. tostring(someVar))\n```\n\nReason: `MsgN` (and `Msg`) bypasses the overhead of `print`'s argument formatting loop and the `tostring` coercion it applies to every argument — it writes directly to the console output stream, making it measurably faster in hot paths where `print`'s variadic argument handling adds up.",
      "durationMs": 6516,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "6cbb4e4b2f19dd24",
      "startedAt": "2026-07-11T06:51:22.083Z",
      "completedAt": "2026-07-11T06:51:28.600Z",
      "answerBytes": 344,
      "answerChars": 342,
      "exitCode": 0,
      "usage": {
        "promptTokens": 63,
        "completionTokens": 86,
        "totalTokens": 149,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.pairs-ipairs-for.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "incorrect",
      "detail": "Did not match a fixture answer pattern.",
      "finalResponse": "```lua\nlocal t = {1, 2, 3, --[[ ... ]]}\nlocal len = #t\nfor i = 1, len do\n    local v = t[i]\n    -- use v\nend\n```\n\nReason: A numeric `for` loop with a cached length is fastest because it avoids the overhead of iterator function calls that `ipairs` and `pairs` incur on every iteration, and unlike `pairs` it never walks the hash part of the table — in LuaJIT (which GMod uses via Garry's Mod's Lua 5.1 + LuaJIT), the numeric `for` over an array-backed table is also JIT-compiled most aggressively, reducing it to near-native sequential memory reads.",
      "durationMs": 9315,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "de5e4875fcf3e600",
      "startedAt": "2026-07-11T06:51:26.380Z",
      "completedAt": "2026-07-11T06:51:35.698Z",
      "answerBytes": 550,
      "answerChars": 548,
      "exitCode": 0,
      "usage": {
        "promptTokens": 73,
        "completionTokens": 137,
        "totalTokens": 210,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.plain-lua-vs-fn.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\n-- DarkRP fn approach (slower): creates intermediate tables, multiple passes\n-- local filtered = fn.Filter(function(p) return p:Team() == TEAM_POLICE end, player.GetAll())\n-- local names   = fn.Map(function(p) return p:Nick() end, filtered)\n\n-- Faster: single-pass, no intermediate table, no fn overhead\nlocal function filterMap(tbl, predicate, transform)\n    local out, n = {}, 0\n    for i = 1, #tbl do\n        local v = tbl[i]\n        if predicate(v) then\n            n = n + 1\n            out[n] = transform(v)\n        end\n    end\n    return out\nend\n\n-- Usage: get names of all police players in one pass\nlocal policeNames = filterMap(\n    player.GetAll(),\n    function(p) return p:Team() == TEAM_POLICE end,\n    function(p) return p:Nick() end\n)\n```\n\nReason: `fn.Filter` + `fn.Map` each iterate the list separately and allocate a new table per step; the single-pass `filterMap` fuses both operations into one loop with pre-indexed `out[n]` writes (avoiding `table.insert` overhead), halving allocations and iterations for the common filter-then-map pattern.",
      "durationMs": 13488,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "ead0a98b3ff6a388",
      "startedAt": "2026-07-11T06:51:28.601Z",
      "completedAt": "2026-07-11T06:51:42.091Z",
      "answerBytes": 1068,
      "answerChars": 1068,
      "exitCode": 0,
      "usage": {
        "promptTokens": 76,
        "completionTokens": 267,
        "totalTokens": 343,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.player-cache-hooks.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\n-- Cached player list, refreshed only on join/leave events\nlocal cachedPlayers = {}\n\nlocal function RebuildPlayerCache()\n    cachedPlayers = player.GetAll()\nend\n\nhook.Add(\"PlayerInitialSpawn\", \"PlayerCache_Add\", RebuildPlayerCache)\nhook.Add(\"PlayerDisconnected\",  \"PlayerCache_Remove\", RebuildPlayerCache)\n\n-- Populate on script load (e.g. after a lua_openscript / map change)\nRebuildPlayerCache()\n\n-- Think/Tick hook now iterates the pre-built table — zero allocation per tick\nhook.Add(\"Think\", \"PlayerCache_Think\", function()\n    for i = 1, #cachedPlayers do\n        local ply = cachedPlayers[i]\n        -- your per-tick logic here\n    end\nend)\n```\n\nReason: `player.GetAll()` allocates a new table and walks the full entity list on every call; by rebuilding the cache only on `PlayerInitialSpawn`/`PlayerDisconnected` (which fire at most a handful of times per server session), the Think hook iterates a plain pre-built Lua array with a numeric `for` loop — the fastest possible traversal in Lua — eliminating both the per-tick allocation and the C→Lua boundary crossing that `player.GetAll()` incurs each frame.",
      "durationMs": 11933,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "a834817afe9e6c25",
      "startedAt": "2026-07-11T06:51:28.642Z",
      "completedAt": "2026-07-11T06:51:40.577Z",
      "answerBytes": 1129,
      "answerChars": 1121,
      "exitCode": 0,
      "usage": {
        "promptTokens": 88,
        "completionTokens": 281,
        "totalTokens": 369,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.ply-table-index.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "incorrect",
      "detail": "Did not match a fixture answer pattern.",
      "finalResponse": "```lua\n-- Fast per-player storage using a plain table keyed by entity index\nlocal playerData = {}\n\n-- On player init / spawn\nhook.Add(\"PlayerSpawn\", \"FastDataInit\", function(ply)\n    local idx = ply:EntIndex()\n    playerData[idx] = {\n        stamina  = 100,\n        currency = 0,\n        combo    = 0,\n    }\nend)\n\n-- Cleanup to avoid memory leaks\nhook.Add(\"PlayerDisconnected\", \"FastDataCleanup\", function(ply)\n    playerData[ply:EntIndex()] = nil\nend)\n\n-- Read (hot path) — pure Lua table lookup, no metamethod traversal\nlocal function GetStamina(ply)\n    local d = playerData[ply:EntIndex()]\n    return d and d.stamina or 0\nend\n\n-- Write\nlocal function SetStamina(ply, val)\n    local d = playerData[ply:EntIndex()]\n    if d then d.stamina = val end\nend\n```\n\nReason: `ply.someField` resolves through the `Player` userdata's `__index` metamethod (a C-side lookup into the entity's Lua table), adding overhead on every read; a plain Lua table (`playerData[ply:EntIndex()]`) is a direct hash lookup with no metamethod chain, making hot-path reads measurably faster in tight loops or per-tick hooks.",
      "durationMs": 12676,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "f18cc80df8999147",
      "startedAt": "2026-07-11T06:51:33.861Z",
      "completedAt": "2026-07-11T06:51:46.538Z",
      "answerBytes": 1098,
      "answerChars": 1096,
      "exitCode": 0,
      "usage": {
        "promptTokens": 69,
        "completionTokens": 274,
        "totalTokens": 343,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.seq-tables.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "Answer must contain 0 through 1 candidate loops.",
      "finalResponse": "```lua\n-- Sequential integer-indexed array (faster for iteration)\nlocal fruits = { \"apple\", \"banana\", \"cherry\" }\n\nfor i = 1, #fruits do\n    print(fruits[i])\nend\n\n-- String-keyed map (slower for iteration)\nlocal fruitMap = { apple = true, banana = true, cherry = true }\n\nfor k, v in pairs(fruitMap) do\n    print(k, v)\nend\n```\n\nReason: Sequential integer-indexed arrays iterated with a numeric `for` loop (`for i = 1, #t`) are faster because the VM can use a tight counter loop with direct offset indexing into the array part of the table, avoiding the hash-lookup and `next()`-based traversal that `pairs()` must perform over a string-keyed map's hash part on every iteration step.",
      "durationMs": 9045,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "4778b0220c3f91a3",
      "startedAt": "2026-07-11T06:51:35.699Z",
      "completedAt": "2026-07-11T06:51:44.745Z",
      "answerBytes": 680,
      "answerChars": 680,
      "exitCode": 0,
      "usage": {
        "promptTokens": 79,
        "completionTokens": 170,
        "totalTokens": 249,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.setdrawcolor-split.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nsurface.SetDrawColor(255, 128, 0, 255)\n```\n\nReason: Passing separate integers avoids constructing or unpacking a Color table object, eliminating the metatable overhead and GC pressure that come with `Color(r,g,b,a)` allocation on every frame.",
      "durationMs": 6611,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "d110fde8a37bbe59",
      "startedAt": "2026-07-11T06:51:40.578Z",
      "completedAt": "2026-07-11T06:51:47.190Z",
      "answerBytes": 249,
      "answerChars": 249,
      "exitCode": 0,
      "usage": {
        "promptTokens": 71,
        "completionTokens": 63,
        "totalTokens": 134,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.sqlite-vs-mysql.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\n-- Local SQLite read via GMod's sql library\nlocal result = sql.QueryRow(\"SELECT coins FROM player_data WHERE steamid = \" .. sql.SQLStr(steamid))\nif result then\n    local coins = tonumber(result.coins)\nend\n```\n\nReason: Local SQLite runs in-process on the same machine as the game server, so reads/writes are synchronous filesystem operations with no network round-trip overhead, making it consistently lower latency than remote MySQL which incurs TCP/IP network latency on every query even on a LAN.",
      "durationMs": 7703,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "4a3f5d2a20d71ac9",
      "startedAt": "2026-07-11T06:51:42.092Z",
      "completedAt": "2026-07-11T06:51:49.797Z",
      "answerBytes": 505,
      "answerChars": 505,
      "exitCode": 0,
      "usage": {
        "promptTokens": 100,
        "completionTokens": 127,
        "totalTokens": 227,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.steamid-cache.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\n-- Cache table: maps Player entity to their SteamID string.\n-- Keyed by the Player userdata directly (valid as a table key in GMod Lua).\nlocal steamIDCache = {}\n\n-- Populate the cache when a player spawns (runs once per player session).\nhook.Add(\"PlayerInitialSpawn\", \"CacheSteamID\", function(ply)\n    steamIDCache[ply] = ply:SteamID()\nend)\n\n-- Clean up when the player disconnects to avoid holding a stale reference.\nhook.Add(\"PlayerDisconnected\", \"ClearSteamIDCache\", function(ply)\n    steamIDCache[ply] = nil\nend)\n\n-- Drop-in helper used on the hot path instead of ply:SteamID().\nlocal function GetCachedSteamID(ply)\n    return steamIDCache[ply] or ply:SteamID()\nend\n\n-- Example hot path (e.g. a per-tick or per-damage hook).\nhook.Add(\"EntityTakeDamage\", \"HotPathExample\", function(target, dmginfo)\n    local attacker = dmginfo:GetAttacker()\n    if not IsValid(attacker) or not attacker:IsPlayer() then return end\n\n    local sid = GetCachedSteamID(attacker)   -- O(1) table lookup, no C++ round-trip\n    -- ... rest of logic using sid ...\nend)\n```\n\nReason: `ply:SteamID()` crosses the Lua→C++ boundary on every call; caching the returned string in a plain Lua table on first spawn reduces repeated hot-path calls to a single O(1) table lookup, eliminating the FFI overhead for the lifetime of the player's session.",
      "durationMs": 12244,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "e8a94aa454154982",
      "startedAt": "2026-07-11T06:51:44.746Z",
      "completedAt": "2026-07-11T06:51:56.992Z",
      "answerBytes": 1326,
      "answerChars": 1324,
      "exitCode": 0,
      "usage": {
        "promptTokens": 63,
        "completionTokens": 331,
        "totalTokens": 394,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.string-table-concat.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "Answer must contain 0 through 0 candidate loops.",
      "finalResponse": "```lua\n-- Slow: repeated .. creates a new string object every iteration\nlocal result = \"\"\nfor i = 1, 10000 do\n    result = result .. \"piece\" .. i  -- O(n²) total copies\nend\n\n-- Fast: collect into a table, then join once with table.concat\nlocal parts = {}\nfor i = 1, 10000 do\n    parts[#parts + 1] = \"piece\" .. i  -- O(n) inserts\nend\nlocal result = table.concat(parts)    -- one final allocation\n```\n\nReason: Lua strings are immutable, so every `..` on a growing string allocates and copies the entire accumulated string; using a table as a buffer defers all copying to a single `table.concat` call, reducing the complexity from O(n²) to O(n).",
      "durationMs": 8722,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "b0cf9e04ae7c5dd9",
      "startedAt": "2026-07-11T06:51:46.540Z",
      "completedAt": "2026-07-11T06:51:55.265Z",
      "answerBytes": 644,
      "answerChars": 642,
      "exitCode": 0,
      "usage": {
        "promptTokens": 70,
        "completionTokens": 161,
        "totalTokens": 231,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.surface-drawrect.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nsurface.SetDrawColor(r, g, b, a)\nsurface.DrawRect(x, y, w, h)\n```\n\nReason: `draw.RoundedBox` is a Lua wrapper that validates arguments, computes corner geometry, and calls `surface` functions internally — even with radius `0` it still pays that overhead on every call; `surface.SetDrawColor` + `surface.DrawRect` are direct bindings to the engine's surface API with no Lua-side indirection, making them measurably faster when called hundreds of times per frame.",
      "durationMs": 10049,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "696e8de769d9ad0e",
      "startedAt": "2026-07-11T06:51:47.191Z",
      "completedAt": "2026-07-11T06:51:57.242Z",
      "answerBytes": 470,
      "answerChars": 468,
      "exitCode": 0,
      "usage": {
        "promptTokens": 69,
        "completionTokens": 117,
        "totalTokens": 186,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.surface-text.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\n-- Fastest approach: cache font + color, use surface.* directly\nlocal font = \"DermaDefault\"\nlocal color = Color(255, 255, 255, 255)\nlocal text  = \"Hello World\"\n\nhook.Add(\"HUDPaint\", \"FastTextDraw\", function()\n    surface.SetFont(font)\n    surface.SetTextColor(color)\n    surface.SetTextPos(100, 100)\n    surface.DrawText(text)\nend)\n```\n\nReason: `draw.DrawText` and `draw.SimpleTextOutlined` are Lua wrappers that call `surface.SetFont`, `surface.SetTextColor`, `surface.SetTextPos`, and `surface.DrawText` internally on every frame plus perform additional table lookups and color unpacking; calling the four `surface.*` functions directly eliminates that wrapper overhead, and pre-caching the `Color` object outside the hook avoids allocating a new table each frame, making it measurably cheaper per-call in a hot HUDPaint loop.",
      "durationMs": 12592,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "95d9fe4918ee4197",
      "startedAt": "2026-07-11T06:51:49.798Z",
      "completedAt": "2026-07-11T06:52:02.391Z",
      "answerBytes": 835,
      "answerChars": 835,
      "exitCode": 0,
      "usage": {
        "promptTokens": 76,
        "completionTokens": 209,
        "totalTokens": 285,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.table-count-hash.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nlocal myTable = {\"a\", \"b\", \"c\"}\nlocal length = #myTable\n```\n\nReason: The `#` length operator is the idiomatic and preferred way to get the length of a sequential (integer-keyed) table in Lua and Garry's Mod Lua; `table.Count` exists in GMod but iterates all keys and is intended for non-sequential/mixed tables, making `#` the correct choice for arrays.",
      "durationMs": 7020,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "3e9bbfc8452e05e3",
      "startedAt": "2026-07-11T06:51:55.266Z",
      "completedAt": "2026-07-11T06:52:02.288Z",
      "answerBytes": 360,
      "answerChars": 360,
      "exitCode": 0,
      "usage": {
        "promptTokens": 62,
        "completionTokens": 90,
        "totalTokens": 152,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.table-empty.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\n-- Faster approach: reassign to a new table\nt = {}\n```\n\nReason: `t = {}` is O(1) — it simply points the variable at a fresh table and lets the GC collect the old one — whereas `table.Empty(t)` iterates every element and sets each key to `nil`, making it O(n); for large sequential tables the linear traversal is measurably slower.",
      "durationMs": 9089,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "3a6344977f5bd475",
      "startedAt": "2026-07-11T06:51:56.993Z",
      "completedAt": "2026-07-11T06:52:06.084Z",
      "answerBytes": 341,
      "answerChars": 337,
      "exitCode": 0,
      "usage": {
        "promptTokens": 73,
        "completionTokens": 85,
        "totalTokens": 158,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.table-hasvalue.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "incorrect",
      "detail": "Matched an incorrect-answer pattern.",
      "finalResponse": "```lua\n-- Slow: O(n) linear scan through a list\nlocal list = { \"admin\", \"superadmin\", \"moderator\" }\nif table.HasValue(list, \"admin\") then\n    print(\"found\")\nend\n\n-- Fast: O(1) hash lookup using a set (value as key)\nlocal set = { admin = true, superadmin = true, moderator = true }\nif set[\"admin\"] then\n    print(\"found\")\nend\n```\n\nReason: Lua tables are hash maps, so keyed lookups (`set[value]`) are O(1) constant time, whereas `table.HasValue` iterates the entire list sequentially making it O(n) — the difference becomes significant in hot code paths like `GM:PlayerCanHearPlayersVoice` or `GM:Think` that run every tick.",
      "durationMs": 9285,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "7d064428a873fdfc",
      "startedAt": "2026-07-11T06:51:57.244Z",
      "completedAt": "2026-07-11T06:52:06.531Z",
      "answerBytes": 625,
      "answerChars": 623,
      "exitCode": 0,
      "usage": {
        "promptTokens": 67,
        "completionTokens": 156,
        "totalTokens": 223,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.table-literal.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\n-- Faster: table constructor\nlocal t = { x = 1, y = 2, z = 3 }\n\n-- Slower: assign after\nlocal t = {}\nt.x = 1\nt.y = 2\nt.z = 3\n```\n\nReason: The table constructor is faster because Lua pre-allocates the hash part of the table in a single step (using `NEWTABLE` with a known count hint), whereas post-assignment triggers incremental rehashing on each new key insertion.",
      "durationMs": 7305,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "f95a8fc610d720ad",
      "startedAt": "2026-07-11T06:52:02.289Z",
      "completedAt": "2026-07-11T06:52:09.596Z",
      "answerBytes": 372,
      "answerChars": 372,
      "exitCode": 0,
      "usage": {
        "promptTokens": 70,
        "completionTokens": 93,
        "totalTokens": 163,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.table-random.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nlocal element = t[math.random(#t)]\n```\n\nReason: `table.Random` iterates the entire table to build a count (handling arbitrary keys), but `#t` retrieves the length of a sequential table in O(1), so a direct `math.random(#t)` index skips that traversal entirely.",
      "durationMs": 7987,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "f3e090701953d4a9",
      "startedAt": "2026-07-11T06:52:02.392Z",
      "completedAt": "2026-07-11T06:52:10.381Z",
      "answerBytes": 267,
      "answerChars": 267,
      "exitCode": 0,
      "usage": {
        "promptTokens": 66,
        "completionTokens": 67,
        "totalTokens": 133,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.x-times-x.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nlocal result = x * x\n```\n\nReason: The `^` operator in Lua (and GMod's LuaJIT) invokes a general power function (`pow`), while `x * x` compiles to a single multiplication instruction, making it significantly faster in tight loops.",
      "durationMs": 7644,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "79d48008f6b5174f",
      "startedAt": "2026-07-11T06:52:06.085Z",
      "completedAt": "2026-07-11T06:52:13.731Z",
      "answerBytes": 236,
      "answerChars": 236,
      "exitCode": 0,
      "usage": {
        "promptTokens": 58,
        "completionTokens": 59,
        "totalTokens": 117,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.player-iterator.v1",
      "adapterId": "agy",
      "model": "Claude Sonnet 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "partial",
      "detail": "Uses ipairs but still allocates via player.GetAll() each time.",
      "finalResponse": "```lua\nfor _, ply in ipairs(player.GetAll()) do\n    -- your code here\nend\n```\n\nReason: `ipairs` is preferred over `pairs` for array-like tables because it iterates in order and stops at the first `nil` index, making it both safer and marginally faster; `_` discards the numeric index since only the player entity `ply` is needed.",
      "durationMs": 6862,
      "version": "1.1.1",
      "fixtureVersion": 2,
      "rubricVersion": "4",
      "promptHash": "fe3d7469535a0ca2",
      "startedAt": "2026-07-11T06:52:06.532Z",
      "completedAt": "2026-07-11T06:52:13.396Z",
      "answerBytes": 329,
      "answerChars": 329,
      "exitCode": 0,
      "usage": {
        "promptTokens": 80,
        "completionTokens": 83,
        "totalTokens": 163,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.ents-iterator.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nfor _, ent in ipairs(ents.FindByClass(\"prop_physics\")) do\n    -- do something with ent\nend\n```\n\nReason: `ents.FindByClass` queries the engine directly for entities matching the given class, so it returns only `prop_physics` entities without ever constructing a table of every entity in the map (unlike `ents.GetAll()`).",
      "durationMs": 7671,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "2",
      "promptHash": "3990c92253db85bb",
      "startedAt": "2026-07-11T06:52:09.597Z",
      "completedAt": "2026-07-11T06:52:17.269Z",
      "answerBytes": 326,
      "answerChars": 326,
      "exitCode": 0,
      "usage": {
        "promptTokens": 72,
        "completionTokens": 82,
        "totalTokens": 154,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.hook-add.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Registers a named hook with hook.Add.",
      "finalResponse": "```lua\nhook.Add(\"Think\", \"MyAddon.Think\", function()\nend)\n```\n\nReason: `hook.Add` registers a callback on the named hook (`\"Think\"`), using `\"MyAddon.Think\"` as the unique identifier to allow later removal or replacement.",
      "durationMs": 6689,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "2",
      "promptHash": "12d2222fdb7d6b90",
      "startedAt": "2026-07-11T06:52:10.382Z",
      "completedAt": "2026-07-11T06:52:17.072Z",
      "answerBytes": 221,
      "answerChars": 221,
      "exitCode": 0,
      "usage": {
        "promptTokens": 78,
        "completionTokens": 56,
        "totalTokens": 134,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.isvalid.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Uses IsValid for entity/object validity.",
      "finalResponse": "```lua\nif IsValid(ent) then\n    ent:Remove() -- safe to call methods here\nend\n```\n\nReason: `IsValid(ent)` returns `true` only when `ent` is non-nil, is an entity (or panel/NPC/etc.), and has not been removed from the game world, making it the single idiomatic guard against dangling entity references in Garry's Mod.",
      "durationMs": 7638,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "2",
      "promptHash": "35527312e59dfc13",
      "startedAt": "2026-07-11T06:52:13.397Z",
      "completedAt": "2026-07-11T06:52:21.036Z",
      "answerBytes": 316,
      "answerChars": 316,
      "exitCode": 0,
      "usage": {
        "promptTokens": 74,
        "completionTokens": 79,
        "totalTokens": 153,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.net-receivers.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nnet.Receive(\"MyAddon.Sync\", function(len, ply)\n    -- handle the incoming message\nend)\n```\n\nReason: `net.Receive` registers a callback that fires whenever a net message with the given name arrives, providing the message length in bits and the sending player (server-side) or `nil` (client-side).",
      "durationMs": 8248,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "2",
      "promptHash": "24d54ee8366753a6",
      "startedAt": "2026-07-11T06:52:13.732Z",
      "completedAt": "2026-07-11T06:52:21.982Z",
      "answerBytes": 302,
      "answerChars": 302,
      "exitCode": 0,
      "usage": {
        "promptTokens": 64,
        "completionTokens": 76,
        "totalTokens": 140,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.angle-zero.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "partial",
      "detail": "Matched a partial-answer pattern.",
      "finalResponse": "```lua\n-- Pre-allocate once outside the hot path\nlocal cached_ang = Angle()\n\nlocal function GetZeroAngle()\n    cached_ang.p = 0\n    cached_ang.y = 0\n    cached_ang.r = 0\n    return cached_ang\nend\n```\n\nReason: `Angle()` allocates a new userdata each call, pressuring the garbage collector; reusing a single pre-allocated Angle and zeroing its three fields avoids per-frame allocation entirely.",
      "durationMs": 12722,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "f6bc97bf98280d62",
      "startedAt": "2026-07-11T06:52:17.073Z",
      "completedAt": "2026-07-11T06:52:29.796Z",
      "answerBytes": 392,
      "answerChars": 392,
      "exitCode": 0,
      "usage": {
        "promptTokens": 71,
        "completionTokens": 98,
        "totalTokens": 169,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.config-var.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "incorrect",
      "detail": "Matched an incorrect-answer pattern.",
      "finalResponse": "```lua\nlocal cfg_color = myaddon.config.color   -- cache the nested lookup once\n\nlocal function Draw()\n    surface.SetDrawColor(cfg_color)       -- fast local read every frame\nend\n```\n\nReason: Each `.` is a hash-table lookup at runtime; a `local` is a direct register access in LuaJIT's VM, so caching the value into a local eliminates repeated table traversals and is measurably faster in hot paths like `HUDPaint`.",
      "durationMs": 8648,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "bcc4ff8eb162b699",
      "startedAt": "2026-07-11T06:52:17.271Z",
      "completedAt": "2026-07-11T06:52:25.920Z",
      "answerBytes": 416,
      "answerChars": 416,
      "exitCode": 0,
      "usage": {
        "promptTokens": 82,
        "completionTokens": 104,
        "totalTokens": 186,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.darkrpvar.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nply:getDarkRPVar(\"job\")\n```\n\nReason: `getDarkRPVar` is DarkRP's dedicated accessor for shared player variables (job, salary, etc.) and is the supported API; `GetNWString(\"job\")` bypasses DarkRP's networking layer and may return stale or empty values.",
      "durationMs": 6847,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "02a37daa699cded3",
      "startedAt": "2026-07-11T06:52:21.037Z",
      "completedAt": "2026-07-11T06:52:27.885Z",
      "answerBytes": 257,
      "answerChars": 257,
      "exitCode": 0,
      "usage": {
        "promptTokens": 66,
        "completionTokens": 65,
        "totalTokens": 131,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.disttosqr.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nif a:DistToSqr(b) < threshold * threshold then\n    -- within range\nend\n```\n\nReason: `DistToSqr` skips the square root, making it cheaper than `Distance` when you only need to compare against a threshold.",
      "durationMs": 8575,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "a5772470c6859cdc",
      "startedAt": "2026-07-11T06:52:21.983Z",
      "completedAt": "2026-07-11T06:52:30.559Z",
      "answerBytes": 210,
      "answerChars": 210,
      "exitCode": 0,
      "usage": {
        "promptTokens": 71,
        "completionTokens": 53,
        "totalTokens": 124,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.ents-iterator.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nfor _, ent in ents.Iterator() do\n    -- operate on ent\nend\n```\n\nReason: `ents.Iterator()` is the wiki-recommended efficient iterator because, unlike `ents.GetAll()`, it does not allocate a new table of all entities on each call.",
      "durationMs": 7878,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "306d3f1d05f28246",
      "startedAt": "2026-07-11T06:52:25.921Z",
      "completedAt": "2026-07-11T06:52:33.801Z",
      "answerBytes": 235,
      "answerChars": 235,
      "exitCode": 0,
      "usage": {
        "promptTokens": 66,
        "completionTokens": 59,
        "totalTokens": 125,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.find-ents-near.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "Answer must contain 0 through 0 candidate loops.",
      "finalResponse": "```lua\nlocal nearbyEnts = ents.FindInSphere(ply:GetPos(), 512)\nfor _, ent in ipairs(nearbyEnts) do\n    if IsValid(ent) and ent ~= ply then\n        -- operate on ent\n    end\nend\n```\n\nReason: `ents.FindInSphere` performs a single engine-side squared-distance check per entity with no PVS/visibility overhead, making it consistently the fastest `FindIn*` call in GMod benchmarks for a simple proximity query.",
      "durationMs": 11500,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "07c583fc3d9fe09f",
      "startedAt": "2026-07-11T06:52:27.886Z",
      "completedAt": "2026-07-11T06:52:39.388Z",
      "answerBytes": 405,
      "answerChars": 405,
      "exitCode": 0,
      "usage": {
        "promptTokens": 83,
        "completionTokens": 102,
        "totalTokens": 185,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.find-players-near.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nlocal function PlayersInRadius(pos, radius)\n    local found = {}\n    local r2 = radius * radius\n    for _, ply in ipairs(player.GetAll()) do\n        if ply:GetPos():DistToSqr(pos) <= r2 then\n            found[#found + 1] = ply\n        end\n    end\n    return found\nend\n```\n\nReason: `ents.FindInSphere` tests every entity on the server (often thousands of props, weapons, NPCs, etc.) before you even start filtering for players, whereas iterating `player.GetAll()` touches only the handful of connected players and `DistToSqr` avoids the square-root cost of a true distance check.",
      "durationMs": 11059,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "d139ba2e8ee38a2f",
      "startedAt": "2026-07-11T06:52:29.797Z",
      "completedAt": "2026-07-11T06:52:40.857Z",
      "answerBytes": 585,
      "answerChars": 585,
      "exitCode": 0,
      "usage": {
        "promptTokens": 79,
        "completionTokens": 147,
        "totalTokens": 226,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.for-vs-while.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\nfor i = 1, n do\nend\n```\n\nReason: The numeric `for` loop is faster because LuaJIT (used by GMod) compiles it to dedicated `FORPREP`/`FORLOOP` VM opcodes that handle the increment and bound check internally, avoiding the extra variable lookup, manual increment, and comparison instructions that a `while` loop requires each iteration.",
      "durationMs": 10232,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "b3401a190a8aecf0",
      "startedAt": "2026-07-11T06:52:30.560Z",
      "completedAt": "2026-07-11T06:52:40.794Z",
      "answerBytes": 339,
      "answerChars": 339,
      "exitCode": 0,
      "usage": {
        "promptTokens": 65,
        "completionTokens": 85,
        "totalTokens": 150,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.hook-once.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "pass",
      "detail": "Matched a pass pattern.",
      "finalResponse": "```lua\n-- Pattern A: one hook.Run, pass the full player table\nhook.Add(\"Think\", \"BatchNotify\", function()\n    hook.Run(\"MyCustomLogic\", player.GetAll())\nend)\n\n-- Pattern B: loop and call hook.Run per player\nhook.Add(\"Think\", \"PerPlayerNotify\", function()\n    for _, ply in ipairs(player.GetAll()) do\n        hook.Run(\"MyCustomLogic\", ply)\n    end\nend)\n```\n\nReason: Pattern A is faster because `hook.Run` has fixed per-call overhead (table lookup, handler iteration, vararg packing); calling it once per tick with the player table incurs that cost once, while Pattern B incurs it N times (once per player per tick), making the overhead scale linearly with player count.",
      "durationMs": 9299,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "ed1d3e09249fc8bb",
      "startedAt": "2026-07-11T06:52:33.802Z",
      "completedAt": "2026-07-11T06:52:43.102Z",
      "answerBytes": 668,
      "answerChars": 668,
      "exitCode": 0,
      "usage": {
        "promptTokens": 84,
        "completionTokens": 167,
        "totalTokens": 251,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.hudpaint-cache.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 6898,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "3def450f3158ceff",
      "startedAt": "2026-07-11T06:52:39.391Z",
      "completedAt": "2026-07-11T06:52:46.291Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 76,
        "completionTokens": 0,
        "totalTokens": 76,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.local-color.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 6287,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "16a7bed1b931d467",
      "startedAt": "2026-07-11T06:52:40.795Z",
      "completedAt": "2026-07-11T06:52:47.083Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 63,
        "completionTokens": 0,
        "totalTokens": 63,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.local-vs-global.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 6741,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "c116d8c651190647",
      "startedAt": "2026-07-11T06:52:40.859Z",
      "completedAt": "2026-07-11T06:52:47.601Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 62,
        "completionTokens": 0,
        "totalTokens": 62,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.localplayer-cache.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 6729,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "2",
      "promptHash": "7398105af47b079e",
      "startedAt": "2026-07-11T06:52:43.109Z",
      "completedAt": "2026-07-11T06:52:49.839Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 70,
        "completionTokens": 0,
        "totalTokens": 70,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.looking-at.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 6450,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "20b22f678a4b08d7",
      "startedAt": "2026-07-11T06:52:46.293Z",
      "completedAt": "2026-07-11T06:52:52.745Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 91,
        "completionTokens": 0,
        "totalTokens": 91,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.meta-vs-arg.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 5618,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "de332f7356830dfa",
      "startedAt": "2026-07-11T06:52:47.084Z",
      "completedAt": "2026-07-11T06:52:52.703Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 71,
        "completionTokens": 0,
        "totalTokens": 71,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.msg-vs-print.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 6552,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "6cbb4e4b2f19dd24",
      "startedAt": "2026-07-11T06:52:47.602Z",
      "completedAt": "2026-07-11T06:52:54.155Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 63,
        "completionTokens": 0,
        "totalTokens": 63,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.pairs-ipairs-for.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 6334,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "de5e4875fcf3e600",
      "startedAt": "2026-07-11T06:52:49.842Z",
      "completedAt": "2026-07-11T06:52:56.177Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 73,
        "completionTokens": 0,
        "totalTokens": 73,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.plain-lua-vs-fn.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 6829,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "ead0a98b3ff6a388",
      "startedAt": "2026-07-11T06:52:52.704Z",
      "completedAt": "2026-07-11T06:52:59.534Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 76,
        "completionTokens": 0,
        "totalTokens": 76,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.player-cache-hooks.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 6866,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "a834817afe9e6c25",
      "startedAt": "2026-07-11T06:52:52.746Z",
      "completedAt": "2026-07-11T06:52:59.613Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 88,
        "completionTokens": 0,
        "totalTokens": 88,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.ply-table-index.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 5840,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "f18cc80df8999147",
      "startedAt": "2026-07-11T06:52:54.157Z",
      "completedAt": "2026-07-11T06:52:59.998Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 69,
        "completionTokens": 0,
        "totalTokens": 69,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.seq-tables.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 6840,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "4778b0220c3f91a3",
      "startedAt": "2026-07-11T06:52:56.178Z",
      "completedAt": "2026-07-11T06:53:03.020Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 79,
        "completionTokens": 0,
        "totalTokens": 79,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.setdrawcolor-split.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 6808,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "d110fde8a37bbe59",
      "startedAt": "2026-07-11T06:52:59.535Z",
      "completedAt": "2026-07-11T06:53:06.346Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 71,
        "completionTokens": 0,
        "totalTokens": 71,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.sqlite-vs-mysql.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 6667,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "4a3f5d2a20d71ac9",
      "startedAt": "2026-07-11T06:52:59.614Z",
      "completedAt": "2026-07-11T06:53:06.282Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 100,
        "completionTokens": 0,
        "totalTokens": 100,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.steamid-cache.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 5551,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "e8a94aa454154982",
      "startedAt": "2026-07-11T06:52:59.999Z",
      "completedAt": "2026-07-11T06:53:05.552Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 63,
        "completionTokens": 0,
        "totalTokens": 63,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.string-table-concat.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 6220,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "b0cf9e04ae7c5dd9",
      "startedAt": "2026-07-11T06:53:03.023Z",
      "completedAt": "2026-07-11T06:53:09.244Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 70,
        "completionTokens": 0,
        "totalTokens": 70,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.surface-drawrect.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 6469,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "696e8de769d9ad0e",
      "startedAt": "2026-07-11T06:53:05.553Z",
      "completedAt": "2026-07-11T06:53:12.025Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 69,
        "completionTokens": 0,
        "totalTokens": 69,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.surface-text.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 6410,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "95d9fe4918ee4197",
      "startedAt": "2026-07-11T06:53:06.283Z",
      "completedAt": "2026-07-11T06:53:12.695Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 76,
        "completionTokens": 0,
        "totalTokens": 76,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.table-count-hash.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 6611,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "3e9bbfc8452e05e3",
      "startedAt": "2026-07-11T06:53:06.348Z",
      "completedAt": "2026-07-11T06:53:12.960Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 62,
        "completionTokens": 0,
        "totalTokens": 62,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.table-empty.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 6641,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "3a6344977f5bd475",
      "startedAt": "2026-07-11T06:53:09.246Z",
      "completedAt": "2026-07-11T06:53:15.888Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 73,
        "completionTokens": 0,
        "totalTokens": 73,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.table-hasvalue.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 6690,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "7d064428a873fdfc",
      "startedAt": "2026-07-11T06:53:12.026Z",
      "completedAt": "2026-07-11T06:53:18.719Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 67,
        "completionTokens": 0,
        "totalTokens": 67,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.table-literal.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 6666,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "f95a8fc610d720ad",
      "startedAt": "2026-07-11T06:53:12.700Z",
      "completedAt": "2026-07-11T06:53:19.388Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 70,
        "completionTokens": 0,
        "totalTokens": 70,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.table-random.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 6611,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "f3e090701953d4a9",
      "startedAt": "2026-07-11T06:53:12.961Z",
      "completedAt": "2026-07-11T06:53:19.574Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 66,
        "completionTokens": 0,
        "totalTokens": 66,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.perf.x-times-x.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 5641,
      "version": "1.1.1",
      "fixtureVersion": 1,
      "rubricVersion": "1",
      "promptHash": "79d48008f6b5174f",
      "startedAt": "2026-07-11T06:53:15.891Z",
      "completedAt": "2026-07-11T06:53:21.533Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 58,
        "completionTokens": 0,
        "totalTokens": 58,
        "source": "estimated"
      }
    },
    {
      "fixtureId": "gmod.player-iterator.v1",
      "adapterId": "agy",
      "model": "Claude Opus 4.6 (Thinking)",
      "attemptIndex": 1,
      "status": "protocol_error",
      "detail": "CLI exited without a valid strict response.",
      "finalResponse": null,
      "durationMs": 5639,
      "version": "1.1.1",
      "fixtureVersion": 2,
      "rubricVersion": "4",
      "promptHash": "fe3d7469535a0ca2",
      "startedAt": "2026-07-11T06:53:18.720Z",
      "completedAt": "2026-07-11T06:53:24.360Z",
      "exitCode": 1,
      "usage": {
        "promptTokens": 80,
        "completionTokens": 0,
        "totalTokens": 80,
        "source": "estimated"
      }
    }
  ],
  "summary": {
    "statusCounts": {
      "pass": 39,
      "partial": 3,
      "incorrect": 5,
      "protocol_error": 29,
      "policy_violation": 0,
      "timeout": 0,
      "unavailable": 0,
      "unsupported": 0,
      "trace_error": 0,
      "scored": 47
    },
    "groups": [
      {
        "fixtureId": "gmod.ents-iterator.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.ents-iterator.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.hook-add.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.hook-add.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.isvalid.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.isvalid.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.net-receivers.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.net-receivers.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.angle-zero.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "partial",
        "meanScore": 0.5,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.angle-zero.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "incorrect",
        "meanScore": 0,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.config-var.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "incorrect",
        "meanScore": 0,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.config-var.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.darkrpvar.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.darkrpvar.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.disttosqr.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.disttosqr.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.ents-iterator.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.ents-iterator.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.find-ents-near.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.find-ents-near.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.find-players-near.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.find-players-near.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.for-vs-while.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.for-vs-while.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.hook-once.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.hook-once.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.hudpaint-cache.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.hudpaint-cache.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.local-color.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.local-color.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.local-vs-global.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.local-vs-global.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.localplayer-cache.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.localplayer-cache.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.looking-at.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.looking-at.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "partial",
        "meanScore": 0.5,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.meta-vs-arg.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.meta-vs-arg.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.msg-vs-print.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.msg-vs-print.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.pairs-ipairs-for.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.pairs-ipairs-for.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "incorrect",
        "meanScore": 0,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.plain-lua-vs-fn.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.plain-lua-vs-fn.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.player-cache-hooks.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.player-cache-hooks.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.ply-table-index.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.ply-table-index.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "incorrect",
        "meanScore": 0,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.seq-tables.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.seq-tables.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.setdrawcolor-split.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.setdrawcolor-split.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.sqlite-vs-mysql.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.sqlite-vs-mysql.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.steamid-cache.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.steamid-cache.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.string-table-concat.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.string-table-concat.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.surface-drawrect.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.surface-drawrect.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.surface-text.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.surface-text.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.table-count-hash.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.table-count-hash.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.table-empty.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.table-empty.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.table-hasvalue.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.table-hasvalue.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "incorrect",
        "meanScore": 0,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.table-literal.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.table-literal.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.table-random.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.table-random.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.perf.x-times-x.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.perf.x-times-x.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 1,
        "passAtK": true,
        "bestStatus": "pass",
        "meanScore": 1,
        "scoredAttempts": 1
      },
      {
        "fixtureId": "gmod.player-iterator.v1",
        "adapterId": "agy",
        "model": "Claude Opus 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "protocol_error",
        "meanScore": null,
        "scoredAttempts": 0
      },
      {
        "fixtureId": "gmod.player-iterator.v1",
        "adapterId": "agy",
        "model": "Claude Sonnet 4.6 (Thinking)",
        "attempts": 1,
        "passCount": 0,
        "passAtK": false,
        "bestStatus": "partial",
        "meanScore": 0.5,
        "scoredAttempts": 1
      }
    ],
    "passAtKRate": "39/47",
    "overallMeanScore": 0.8617021276595744
  },
  "execution": {
    "requestedFixtureIds": [
      "gmod.ents-iterator.v1",
      "gmod.hook-add.v1",
      "gmod.isvalid.v1",
      "gmod.net-receivers.v1",
      "gmod.perf.angle-zero.v1",
      "gmod.perf.config-var.v1",
      "gmod.perf.darkrpvar.v1",
      "gmod.perf.disttosqr.v1",
      "gmod.perf.ents-iterator.v1",
      "gmod.perf.find-ents-near.v1",
      "gmod.perf.find-players-near.v1",
      "gmod.perf.for-vs-while.v1",
      "gmod.perf.hook-once.v1",
      "gmod.perf.hudpaint-cache.v1",
      "gmod.perf.local-color.v1",
      "gmod.perf.local-vs-global.v1",
      "gmod.perf.localplayer-cache.v1",
      "gmod.perf.looking-at.v1",
      "gmod.perf.meta-vs-arg.v1",
      "gmod.perf.msg-vs-print.v1",
      "gmod.perf.pairs-ipairs-for.v1",
      "gmod.perf.plain-lua-vs-fn.v1",
      "gmod.perf.player-cache-hooks.v1",
      "gmod.perf.ply-table-index.v1",
      "gmod.perf.seq-tables.v1",
      "gmod.perf.setdrawcolor-split.v1",
      "gmod.perf.sqlite-vs-mysql.v1",
      "gmod.perf.steamid-cache.v1",
      "gmod.perf.string-table-concat.v1",
      "gmod.perf.surface-drawrect.v1",
      "gmod.perf.surface-text.v1",
      "gmod.perf.table-count-hash.v1",
      "gmod.perf.table-empty.v1",
      "gmod.perf.table-hasvalue.v1",
      "gmod.perf.table-literal.v1",
      "gmod.perf.table-random.v1",
      "gmod.perf.x-times-x.v1",
      "gmod.player-iterator.v1"
    ],
    "fixtureSelection": "explicit-ids",
    "rerunAll": false,
    "historyPolicy": "scored",
    "plannedSlots": 76,
    "scheduledSlots": 76,
    "resumedSlots": 0,
    "historicalSlotsSkipped": 0,
    "configHash": "4a3d3405766376ef7f985e49f308b3a0e82053c9ca75f4569996b4c05afc403b"
  },
  "metadata": {
    "schemaVersion": 3,
    "runId": "c4a59a56-eb25-4438-afae-b13af70d3626",
    "startedAt": "2026-07-11T06:50:37.822Z",
    "completedAt": "2026-07-11T06:53:24.362Z",
    "repeat": 1,
    "concurrency": 4,
    "fixtureIds": [
      "gmod.ents-iterator.v1",
      "gmod.hook-add.v1",
      "gmod.isvalid.v1",
      "gmod.net-receivers.v1",
      "gmod.perf.angle-zero.v1",
      "gmod.perf.config-var.v1",
      "gmod.perf.darkrpvar.v1",
      "gmod.perf.disttosqr.v1",
      "gmod.perf.ents-iterator.v1",
      "gmod.perf.find-ents-near.v1",
      "gmod.perf.find-players-near.v1",
      "gmod.perf.for-vs-while.v1",
      "gmod.perf.hook-once.v1",
      "gmod.perf.hudpaint-cache.v1",
      "gmod.perf.local-color.v1",
      "gmod.perf.local-vs-global.v1",
      "gmod.perf.localplayer-cache.v1",
      "gmod.perf.looking-at.v1",
      "gmod.perf.meta-vs-arg.v1",
      "gmod.perf.msg-vs-print.v1",
      "gmod.perf.pairs-ipairs-for.v1",
      "gmod.perf.plain-lua-vs-fn.v1",
      "gmod.perf.player-cache-hooks.v1",
      "gmod.perf.ply-table-index.v1",
      "gmod.perf.seq-tables.v1",
      "gmod.perf.setdrawcolor-split.v1",
      "gmod.perf.sqlite-vs-mysql.v1",
      "gmod.perf.steamid-cache.v1",
      "gmod.perf.string-table-concat.v1",
      "gmod.perf.surface-drawrect.v1",
      "gmod.perf.surface-text.v1",
      "gmod.perf.table-count-hash.v1",
      "gmod.perf.table-empty.v1",
      "gmod.perf.table-hasvalue.v1",
      "gmod.perf.table-literal.v1",
      "gmod.perf.table-random.v1",
      "gmod.perf.x-times-x.v1",
      "gmod.player-iterator.v1"
    ],
    "fixtureCount": 38,
    "attemptCount": 76,
    "adapters": [
      "agy"
    ],
    "models": [
      "agy/Claude Opus 4.6 (Thinking)",
      "agy/Claude Sonnet 4.6 (Thinking)"
    ],
    "keepRaw": true,
    "durationSeconds": 167,
    "usageTotals": {
      "promptTokens": 5522,
      "completionTokens": 6485,
      "reasoningTokens": 0,
      "totalTokens": 12007,
      "cachedTokens": 0,
      "cacheWriteTokens": 0,
      "cost": 0,
      "upstreamInferenceCost": 0,
      "attemptsWithUsage": 76,
      "providerUsageAttempts": 0,
      "estimatedUsageAttempts": 76,
      "avgDurationMs": 8596,
      "minDurationMs": 5551,
      "maxDurationMs": 18770,
      "totalDurationMs": 653263,
      "totalAnswerBytes": 25930
    },
    "execution": {
      "requestedFixtureIds": [
        "gmod.ents-iterator.v1",
        "gmod.hook-add.v1",
        "gmod.isvalid.v1",
        "gmod.net-receivers.v1",
        "gmod.perf.angle-zero.v1",
        "gmod.perf.config-var.v1",
        "gmod.perf.darkrpvar.v1",
        "gmod.perf.disttosqr.v1",
        "gmod.perf.ents-iterator.v1",
        "gmod.perf.find-ents-near.v1",
        "gmod.perf.find-players-near.v1",
        "gmod.perf.for-vs-while.v1",
        "gmod.perf.hook-once.v1",
        "gmod.perf.hudpaint-cache.v1",
        "gmod.perf.local-color.v1",
        "gmod.perf.local-vs-global.v1",
        "gmod.perf.localplayer-cache.v1",
        "gmod.perf.looking-at.v1",
        "gmod.perf.meta-vs-arg.v1",
        "gmod.perf.msg-vs-print.v1",
        "gmod.perf.pairs-ipairs-for.v1",
        "gmod.perf.plain-lua-vs-fn.v1",
        "gmod.perf.player-cache-hooks.v1",
        "gmod.perf.ply-table-index.v1",
        "gmod.perf.seq-tables.v1",
        "gmod.perf.setdrawcolor-split.v1",
        "gmod.perf.sqlite-vs-mysql.v1",
        "gmod.perf.steamid-cache.v1",
        "gmod.perf.string-table-concat.v1",
        "gmod.perf.surface-drawrect.v1",
        "gmod.perf.surface-text.v1",
        "gmod.perf.table-count-hash.v1",
        "gmod.perf.table-empty.v1",
        "gmod.perf.table-hasvalue.v1",
        "gmod.perf.table-literal.v1",
        "gmod.perf.table-random.v1",
        "gmod.perf.x-times-x.v1",
        "gmod.player-iterator.v1"
      ],
      "fixtureSelection": "explicit-ids",
      "rerunAll": false,
      "historyPolicy": "scored",
      "plannedSlots": 76,
      "scheduledSlots": 76,
      "resumedSlots": 0,
      "historicalSlotsSkipped": 0,
      "configHash": "4a3d3405766376ef7f985e49f308b3a0e82053c9ca75f4569996b4c05afc403b"
    }
  }
}
