jinin25 commited on
Commit
3775a7a
·
verified ·
1 Parent(s): a40cf24

Complete mode1 twin_holds

Browse files
minimax/mode1/twin_holds/evaluation/card.json ADDED
The diff for this file is too large to render. See raw diff
 
minimax/mode1/twin_holds/evaluation/report.json ADDED
The diff for this file is too large to render. See raw diff
 
minimax/mode1/twin_holds/evaluation/report.md ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # taskgen eval — brief / twin_holds
2
+
3
+ resolved=no eligibility=failed | ranking_eligible=no (measurement coverage, not contract)
4
+ verifier_profile=brief: judge evidence interpretation, authored GDD quality, executable self-clear causality, and GT-conditioned product fidelity
5
+
6
+ Evidence domains: Objective Behavioral Evaluation / Perceptual Quality Assessment. Availability and scoring eligibility are reported separately.
7
+
8
+ ranking_note: Compare only complete cards within the same mode, rubric and registry; independent calibration remains pending.
9
+
10
+ visual_protocol: 2026-09-19.game-rubric-v1; game-specific M/D/V/A, GT and asset images, continuous per-item attainment
11
+
12
+
13
+ Objective Behavioral Evaluation / 客观行为评测: 19.327 / 85.000 available points. This is the objective contribution, not a complete composite score.
14
+
15
+ ## Hierarchical scorecard (2026-09-19.mode1-vlm1)
16
+
17
+ composite_score=not_measured; assessment_status=objective_only; headline_ceiling=100.000; currently_reachable_ceiling=80.143; measured_weight_share=0.801; ranking_eligible=no; strict.resolved=no; eligibility=failed
18
+
19
+ The evaluator did not obtain a reading for every applicable source, so no complete composite is printed; the objective contribution above remains usable when measured. Unmeasured:
20
+ - `numeric_contract` (mode1_fixed_axes/numeric_contract): no per-frame numeric samples were recorded for the candidate run
21
+ - `item:task_visual` (visual_experience/task_visual): Game VLM requires --visual-judge vlm and an enabled engine
22
+
23
+ The weighted total is diagnostic. The strict mode profile remains conjunctive; a visual or content score cannot compensate for a false clear, missing mechanic, or repair regression.
24
+
25
+ | category | weight | score / 100 | measured share |
26
+ |---|---:|---:|---:|
27
+ | Mechanics and task fulfillment | 27% | 22.726 | 0.818 |
28
+ | Interface, content, and asset realization | 42% | 12.143 | 1.000 |
29
+ | Causal playability and demonstrations | 13% | 51.515 | 1.000 |
30
+ | Candidate-authored design contract | 2% | 50.000 | 1.000 |
31
+ | Game-specific visual quality | 15% | incomplete | 0.000 |
32
+
33
+ ## Independent feature demonstrations
34
+
35
+ Action-caused coverage: 1/3. Every segment starts cold; repeated checks count once. Full clear is optional.
36
+
37
+ | Demonstration | Status | Task-feature coverage / 100 | Action-caused checks |
38
+ |---|---|---:|---|
39
+ | cycle_build_menu | measured | 0.0 | |
40
+ | demolish_building | measured | 0.0 | |
41
+ | end_turn_rival_act | measured | 0.0 | |
42
+ | full_match_victory | measured | 33.333 | campaign_clear |
43
+ | movement_cursor | measured | 0.0 | |
44
+ | no_input_defeat | measured | 0.0 | |
45
+ | place_mine | measured | 0.0 | |
46
+
47
+ Missing: economy_resolution, successful_attack
48
+
49
+ ## Perceptual Quality Assessment / 感知质量评审
50
+
51
+ GameCraft-adapted judge; no GT reference images or submitter description. Experimental: not independently validated on this benchmark.
52
+
53
+ Status: inconclusive; visual credit: not measured
54
+
55
+ | Requirement / dimension | Aggregation | Credit / 100 |
56
+ |---|---|---:|
57
+
58
+ Game VLM requires --visual-judge vlm and an enabled engine
59
+
60
+ behavior_score_lo=0.611 behavior_score_hi=0.611 coverage=1.000 denom=6.000 comparable=yes (diagnostic; strict ranking uses resolved)
61
+
62
+ ## Eligibility
63
+
64
+ | id | verdict | detail |
65
+ |---|---|---|
66
+ | `layout` | passed | project.godot resolved |
67
+ | `gdd` | passed | GDD.md present (13387 chars) |
68
+ | `authored_gdd_quality` | passed | self-contained design, failure/recovery, progression, and acceptance present |
69
+ | `authored_gdd_interface` | failed | extended/analog controls are mentioned without stable ids |
70
+ | `brief_gdd_grounding` | passed | authored GDD retains every reference-conditioned control obligation |
71
+ | `rubric_interface` | failed | required group gb_enemy is absent; required group gb_interactive is absent; required group gb_goal is absent |
72
+ | `ops_present` | passed | feature demonstration protocol: /root/autodl-tmp/CodingBenchmark-server-results/fast_run_20260924_parallel/brief/twin_holds/cells/twin_holds__brief__claude__minimax-m3/submission/demos.json |
73
+ | `ops_valid` | passed | 7 independent input-only demonstrations accepted |
74
+ | `ops_not_idle` | passed | each demonstration contains player input |
75
+ | `interface` | passed | Interface v2 conformance PASS |
76
+ | `anti_grant_static` | passed | no blocking harness-flag on the load graph (3 files, authenticity=no_harness_flag_in_gameplay) |
77
+ | `auto_win_ready` | passed | no declared-victory change in _ready |
78
+ | `health_writable` | passed | 2 decreasing write(s) to declared `food` on its owner (0 owner, 2 unattributed) |
79
+ | `verifier_profile_complete` | passed | brief emitted all 18 strict profile checks |
80
+
81
+ ## Behavioral verification
82
+
83
+ | id | verdict | detail |
84
+ |---|---|---|
85
+ | `mechanic_trace` | passed | graded feature coverage: 1/3 |
86
+ | `causal_witness` | passed | graded action-caused feature coverage: 1/3; whole-game clear not required |
87
+ | `demonstrations_complete` | failed | incomplete feature coverage or no action-caused evidence: economy_resolution, successful_attack |
88
+ | `null_no_win` | passed | idle stop_reason=budget_frames |
89
+ | `extended_mash_no_win` | passed | mash of confirm_build, cycle_build, demolish, end_turn from frame 0 did not win |
90
+ | `anti_grant_diff` | passed | idle grant-probe and ops pair did not diverge in the grant direction (flagged-wins / env-loses, or flagged much earlier) |
91
+
92
+ ## Reference fidelity (not part of resolved)
93
+
94
+ | id | verdict | detail |
95
+ |---|---|---|
96
+ | `task_visual` | inconclusive | Game VLM requires --visual-judge vlm and an enabled engine |
97
+ | `reproduction` | passed | evaluate_project objective_lo=0.507 |
98
+
99
+ ## Limits of the anti-grant gate
100
+
101
+ - concatenated or computed flag names (`'--' + 'gb-route-plan'`)
102
+ - PackedByteArray / encrypted predicates
103
+ - checking that a plan JSON exists on disk
104
+ - a node probe whose autoload name is computed rather than spelled out, or which recognises the evaluator by something other than its autoload names
105
+ - unconditional invulnerability or zero damage with no harness test
106
+ - a victory predicate that is simply always true
107
+ - timed auto-clear outside the idle grant-probe budget (1100 frames)
108
+ - spawn overlapping gb_goal without an immediate scene change
109
+ - a grant in a file the project.godot load graph does not reach
110
+ - C# using/class references without res:// are not followed
111
+ - a _ready auto-win whose victory scene is not in gb_levels.json
112
+ - concessions (vendored probe GB_ASSET_SAMPLING, acknowledged GB_ROUTE_* reads) do not fail ScanReport.ok or anti_grant_static
113
+ - mash holds declared extras from frame 0; a delayed is_action_just_pressed win is missed
114
+ - mash at spawn misses a win button that requires being somewhere else first
115
+ - mash budget is 1100 frames, same gap as the idle grant probe
116
+
117
+ A passing static scan is not a proof of honesty. See `docs/reference/TASKGEN_HARNESS.md` §5.
118
+
minimax/mode1/twin_holds/evaluation/reproduction/capture_manifest.json ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "anchor_frame": "",
3
+ "anchor_requested": false,
4
+ "extended_actions": [
5
+ {
6
+ "id": "confirm_build",
7
+ "why": "Places the currently selected building under the cursor and consumes the cursor selection state in one action; a verb the six canonical actions cannot express in one binding."
8
+ },
9
+ {
10
+ "id": "cycle_build",
11
+ "why": "Advances the build menu index without moving the cursor and updates the building preview; a separate verb the six canonical actions cannot express."
12
+ },
13
+ {
14
+ "id": "demolish",
15
+ "why": "Removes the building under the cursor and refunds half its cost; a verb the six canonical actions cannot express."
16
+ },
17
+ {
18
+ "id": "end_turn",
19
+ "why": "Commits the player's build actions, runs the rival script, and advances the round counter as one combined verb; the six canonical actions cannot express."
20
+ }
21
+ ],
22
+ "frame_paths": [
23
+ "/root/autodl-tmp/CodingBenchmark-server-results/fast_run_20260924_parallel/brief/twin_holds/cells/twin_holds__brief__claude__minimax-m3/evaluation/reproduction/captures/game__f00000042.png",
24
+ "/root/autodl-tmp/CodingBenchmark-server-results/fast_run_20260924_parallel/brief/twin_holds/cells/twin_holds__brief__claude__minimax-m3/evaluation/reproduction/captures/game__f00000072.png",
25
+ "/root/autodl-tmp/CodingBenchmark-server-results/fast_run_20260924_parallel/brief/twin_holds/cells/twin_holds__brief__claude__minimax-m3/evaluation/reproduction/captures/game__f00000108.png"
26
+ ],
27
+ "interface_version": 2,
28
+ "level_frame_paths": {},
29
+ "mode": "X_CPU",
30
+ "normalized_sha256": "16a3fb98937e30c36c7af21aa3d3283acc0271c6853615fbcf6edc2092cebaaa",
31
+ "notes": [],
32
+ "probe_reported": true,
33
+ "source_sha256": "5b1fdbb523f094673e998cf77c09b0a801d4a0260c55befabdd4868fc9a163f0",
34
+ "visual_evidence": {
35
+ "candidate_evaluator_capture": {
36
+ "capture_kind": "frame_sequence",
37
+ "frames": [
38
+ {
39
+ "frame_index": 42,
40
+ "path": "captures/game__f00000042.png",
41
+ "source_frame": "f00000042.png",
42
+ "timestamp_seconds": 1.4
43
+ },
44
+ {
45
+ "frame_index": 72,
46
+ "path": "captures/game__f00000072.png",
47
+ "source_frame": "f00000072.png",
48
+ "timestamp_seconds": 2.4
49
+ },
50
+ {
51
+ "frame_index": 108,
52
+ "path": "captures/game__f00000108.png",
53
+ "source_frame": "f00000108.png",
54
+ "timestamp_seconds": 3.6
55
+ }
56
+ ],
57
+ "is_reference_input": false,
58
+ "level": "res://scenes/main.tscn",
59
+ "mode": "X",
60
+ "owner": "evaluator",
61
+ "provenance": {
62
+ "argv": [
63
+ "xvfb-run",
64
+ "-a",
65
+ "-s",
66
+ "-screen 0 1280x720x24",
67
+ "/opt/godot451-bin/godot",
68
+ "--rendering-driver",
69
+ "opengl3",
70
+ "--path",
71
+ "/data2/gamebench/scratch/gb_ocard_scratch/game-frames-a39a3cda",
72
+ "res://scenes/main.tscn",
73
+ "--quit-after",
74
+ "120",
75
+ "--fixed-fps",
76
+ "30",
77
+ "--write-movie",
78
+ "/data2/gamebench/scratch/gb_ocard_scratch/frames-5629acae/f.png"
79
+ ],
80
+ "cwd": "/data2/gamebench/scratch/gb_ocard_scratch/game-frames-a39a3cda",
81
+ "extra_hashes": {},
82
+ "outcome": "reported",
83
+ "returncode": 0,
84
+ "seconds": 103.902,
85
+ "stderr_tail": "",
86
+ "tool": "godot",
87
+ "tool_path": "/opt/godot451-bin/godot",
88
+ "tool_sha256": "db07cae7de644278a1884d4552bdf2bca3f5d30131b18faf3a0c4d730080b199"
89
+ },
90
+ "role": "candidate_evaluator_capture",
91
+ "subject": "candidate_submission",
92
+ "timeline": {
93
+ "basis": "frame_index / fixed_fps from evaluator capture start",
94
+ "fixed_fps": 30.0,
95
+ "frames_generated": 120
96
+ },
97
+ "video_file": null,
98
+ "video_status": "not_recorded"
99
+ },
100
+ "reference_input": {
101
+ "artifact_status": "separate_task_material",
102
+ "is_candidate_evidence": false,
103
+ "note": "Reference gameplay belongs to the model-facing task package; it is not evidence captured from this candidate submission.",
104
+ "owner": "benchmark_task",
105
+ "role": "reference_input",
106
+ "subject": "reference_game"
107
+ },
108
+ "schema": "gamebench.candidate-visual-evidence.v1"
109
+ }
110
+ }
minimax/mode1/twin_holds/evaluation/reproduction/captures/game__f00000042.png ADDED
minimax/mode1/twin_holds/evaluation/reproduction/captures/game__f00000072.png ADDED
minimax/mode1/twin_holds/evaluation/reproduction/captures/game__f00000108.png ADDED
minimax/mode1/twin_holds/evaluation/reproduction/card.json ADDED
@@ -0,0 +1,1374 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "ceiling": {
3
+ "fidelity_subset": 1.0,
4
+ "note": "Cross-tier comparison uses normalised_lo only. A partial card normalises against `restricted`, computed over the channels that reported; mixing that numerator with `total` produced 1.011 once.",
5
+ "restricted": 1.0,
6
+ "total": 1.0,
7
+ "used_for_normalisation": 1.0
8
+ },
9
+ "channels": [
10
+ {
11
+ "by_verdict": {
12
+ "passed": 1.0
13
+ },
14
+ "channel": "O1",
15
+ "coverage": 1.0,
16
+ "denominator": 1.0,
17
+ "hi": 1.0,
18
+ "lo": 1.0,
19
+ "low_coverage": false,
20
+ "measured": true,
21
+ "mode_used": "X_CPU",
22
+ "name": "runnable",
23
+ "note": "cold_import=passed; boots=passed; draws_nontrivial=passed; responds_to_input=passed",
24
+ "weight": 0.063,
25
+ "width": 0.0
26
+ },
27
+ {
28
+ "by_verdict": {
29
+ "passed": 1.0
30
+ },
31
+ "channel": "O2",
32
+ "coverage": 1.0,
33
+ "denominator": 1.0,
34
+ "hi": 1.0,
35
+ "lo": 1.0,
36
+ "low_coverage": false,
37
+ "measured": true,
38
+ "mode_used": "H",
39
+ "name": "interface_conformance",
40
+ "note": "groups=passed; actions=passed; levels=passed; endings=passed; optional_fields_valid=passed; task_required_observables=passed",
41
+ "weight": 0.072,
42
+ "width": 0.0
43
+ },
44
+ {
45
+ "by_verdict": {
46
+ "exempt": 2.0,
47
+ "failed": 1.0,
48
+ "passed": 5.0
49
+ },
50
+ "channel": "O3",
51
+ "coverage": 1.0,
52
+ "denominator": 8.0,
53
+ "hi": 0.875,
54
+ "lo": 0.625,
55
+ "low_coverage": false,
56
+ "measured": true,
57
+ "mode_used": "H",
58
+ "name": "mechanic_fidelity",
59
+ "note": "universal assertions U1, U2, U3, U4, U5, U6, U7 over 1 levels; H-class 3 item(s) for task_id='twin_holds' 2 item(s) genre-exempt (weight 2.000); see by_verdict.",
60
+ "weight": 0.18,
61
+ "width": 0.25
62
+ },
63
+ {
64
+ "by_verdict": {
65
+ "passed": 1.0,
66
+ "unobservable": 2.0
67
+ },
68
+ "channel": "O4",
69
+ "coverage": 1.0,
70
+ "denominator": 1.0,
71
+ "hi": 1.0,
72
+ "lo": 1.0,
73
+ "low_coverage": false,
74
+ "measured": true,
75
+ "mode_used": "H",
76
+ "name": "level_topology",
77
+ "note": "declared-vs-built consistency (brief mode): 1 declared, 1 built, gdd states no count",
78
+ "weight": 0.099,
79
+ "width": 0.0
80
+ },
81
+ {
82
+ "by_verdict": {
83
+ "skipped": 2.0,
84
+ "unobservable": 1.0
85
+ },
86
+ "channel": "O5",
87
+ "coverage": 0.0,
88
+ "denominator": 2.0,
89
+ "hi": 1.0,
90
+ "lo": 0.0,
91
+ "low_coverage": true,
92
+ "measured": true,
93
+ "mode_used": "H",
94
+ "name": "spatial_ordinal",
95
+ "note": "collectible ordering, normalised goal distance and entity dispersion over 1 levels against expectations frozen 2026-08-23T10:43:04+00:00",
96
+ "weight": 0.081,
97
+ "width": 1.0
98
+ },
99
+ {
100
+ "by_verdict": {
101
+ "failed": 37.0
102
+ },
103
+ "channel": "O6",
104
+ "coverage": 1.0,
105
+ "denominator": 37.0,
106
+ "hi": 0.0,
107
+ "lo": 0.0,
108
+ "low_coverage": false,
109
+ "measured": true,
110
+ "mode_used": "H",
111
+ "name": "asset_use",
112
+ "note": "0/37 supplied assets observed in the engine",
113
+ "weight": 0.063,
114
+ "width": 0.0
115
+ },
116
+ {
117
+ "by_verdict": {
118
+ "failed": 1.0
119
+ },
120
+ "channel": "O7",
121
+ "coverage": 1.0,
122
+ "denominator": 1.0,
123
+ "hi": 0.0,
124
+ "lo": 0.0,
125
+ "low_coverage": false,
126
+ "measured": true,
127
+ "mode_used": "H",
128
+ "name": "authored_clear",
129
+ "note": "L5 authored clear over 1 RT-1-passed route(s)",
130
+ "weight": 0.126,
131
+ "width": 0.0
132
+ },
133
+ {
134
+ "by_verdict": {
135
+ "unobservable": 1.0
136
+ },
137
+ "channel": "O9",
138
+ "coverage": 0.0,
139
+ "denominator": 0.0,
140
+ "hi": 0.0,
141
+ "lo": 0.0,
142
+ "low_coverage": true,
143
+ "measured": false,
144
+ "mode_used": "X_CPU",
145
+ "name": "anchor_composition",
146
+ "note": "task has no O9 expectation",
147
+ "weight": 0.09,
148
+ "width": 0.0
149
+ },
150
+ {
151
+ "by_verdict": {
152
+ "unobservable": 1.0
153
+ },
154
+ "channel": "O8",
155
+ "coverage": 0.0,
156
+ "denominator": 0.0,
157
+ "hi": 0.0,
158
+ "lo": 0.0,
159
+ "low_coverage": true,
160
+ "measured": false,
161
+ "mode_used": "X_CPU",
162
+ "name": "gui_agent_routes",
163
+ "note": "excluded from the main card; independent external-agent routes consume the same levels/actions SubmissionInterface",
164
+ "weight": 0.126,
165
+ "width": 0.0
166
+ }
167
+ ],
168
+ "flags": [
169
+ "partial-card(0.76 of registered weight)",
170
+ "exempt:2(w=2.000)",
171
+ "zero:O5",
172
+ "zero:O6",
173
+ "zero:O7",
174
+ "failed:O3",
175
+ "failed:O6",
176
+ "failed:O7"
177
+ ],
178
+ "generated_at": "2026-09-24T06:05:36+00:00",
179
+ "main_table_eligible": false,
180
+ "main_table_refusal": "partial-card: only 76% of the registered O-card weight produced a reading ( reported nothing). Its normalised score has a different denominator from a complete card and the two must not share a column.",
181
+ "modality": "Mv",
182
+ "notes": [
183
+ "liveness deadline derived from this project's own structural pass: 57.8 ms/frame median, 57.8 ms/frame worst",
184
+ "liveness sweep: 5 live / 1 dead against the 420-frame idle control truth/L0#idle420",
185
+ "replayed 5 certified route(s) from a suite reviewed by 'project_owner' on 2026-09-09",
186
+ "only 76% of registered O-card weight produced any reading (O1, O2, O3, O4, O5, O6, O7); coverage=0.88 describes those channels alone and must not be read as coverage of the card.",
187
+ "2 genre-exempt item(s) (weight 2.000) stay in the denominator with lo=0/hi=full; interval width records the exemption. See exempt_items."
188
+ ],
189
+ "ocard": {
190
+ "by_verdict": {
191
+ "exempt": 2.0,
192
+ "failed": 39.0,
193
+ "passed": 8.0,
194
+ "skipped": 2.0,
195
+ "unobservable": 3.0
196
+ },
197
+ "coverage": 0.881579,
198
+ "denominator": 0.684,
199
+ "hi": 0.690789,
200
+ "lo": 0.506579,
201
+ "low_coverage": false,
202
+ "width": 0.184211
203
+ },
204
+ "provenance": {
205
+ "bot_skip_reason": null,
206
+ "channel_items": {
207
+ "O1": [
208
+ {
209
+ "attribution": null,
210
+ "credit": 1.0,
211
+ "detail": "cold import clean (1 warnings)",
212
+ "id": "O1/cold_import",
213
+ "verdict": "passed",
214
+ "weight": 0.25
215
+ },
216
+ {
217
+ "attribution": null,
218
+ "credit": 1.0,
219
+ "detail": "res://scenes/main.tscn reached a playable state (the level was playable at load, no menu to get past)",
220
+ "id": "O1/boots",
221
+ "verdict": "passed",
222
+ "weight": 0.25
223
+ },
224
+ {
225
+ "attribution": null,
226
+ "credit": 1.0,
227
+ "detail": "1888 colours, 54% dominant, edge energy 7.8",
228
+ "id": "O1/draws_nontrivial",
229
+ "verdict": "passed",
230
+ "weight": 0.25
231
+ },
232
+ {
233
+ "attribution": null,
234
+ "credit": 1.0,
235
+ "detail": "5/6 declared actions move the state signature away from the matched idle control (gb_left, gb_right, gb_up, gb_jump, gb_action)",
236
+ "id": "O1/responds_to_input",
237
+ "verdict": "passed",
238
+ "weight": 0.25
239
+ }
240
+ ],
241
+ "O2": [
242
+ {
243
+ "attribution": null,
244
+ "credit": 1.0,
245
+ "detail": "fixed group vocabulary scanned; non-player categories may be empty",
246
+ "id": "O2/groups",
247
+ "verdict": "passed",
248
+ "weight": 0.2
249
+ },
250
+ {
251
+ "attribution": null,
252
+ "credit": 1.0,
253
+ "detail": "all eight fixed aliases have an InputMap event and appear in source",
254
+ "id": "O2/actions",
255
+ "verdict": "passed",
256
+ "weight": 0.25
257
+ },
258
+ {
259
+ "attribution": null,
260
+ "credit": 1.0,
261
+ "detail": "1 independently addressable level(s)",
262
+ "id": "O2/levels",
263
+ "verdict": "passed",
264
+ "weight": 0.2
265
+ },
266
+ {
267
+ "attribution": null,
268
+ "credit": 1.0,
269
+ "detail": "success ending vocabulary is declared and distinguishes success from failure",
270
+ "id": "O2/endings",
271
+ "verdict": "passed",
272
+ "weight": 0.2
273
+ },
274
+ {
275
+ "attribution": null,
276
+ "credit": 1.0,
277
+ "detail": "all declared optional fields are valid",
278
+ "id": "O2/optional_fields_valid",
279
+ "verdict": "passed",
280
+ "weight": 0.05
281
+ },
282
+ {
283
+ "attribution": null,
284
+ "credit": 1.0,
285
+ "detail": "no task-conditional observables are registered",
286
+ "id": "O2/task_required_observables",
287
+ "verdict": "passed",
288
+ "weight": 0.1
289
+ }
290
+ ],
291
+ "O3": [
292
+ {
293
+ "attribution": null,
294
+ "credit": 1.0,
295
+ "detail": "1 nodes tagged gb_player in res://scenes/main.tscn; public task contract permits player counts [1]",
296
+ "id": "U1/single_player[0]",
297
+ "verdict": "passed",
298
+ "weight": 1.0
299
+ },
300
+ {
301
+ "attribution": null,
302
+ "credit": 1.0,
303
+ "detail": "5/6 declared actions move the state signature away from the matched idle control (gb_left, gb_right, gb_up, gb_jump, gb_action)",
304
+ "id": "U2/actions_live",
305
+ "verdict": "passed",
306
+ "weight": 1.0
307
+ },
308
+ {
309
+ "attribution": null,
310
+ "credit": 0.0,
311
+ "detail": "genre_inapplicable (twin_holds): the frozen reference declares no gb_collectible in any level, so this is not one of this game's mechanics. measured: res://scenes/main.tscn declares no gb_collectible: there is nothing to pick up, which is this level not implementing collection rather than a reading the evaluator could not take",
312
+ "id": "U3/collect_removes_one[0]",
313
+ "verdict": "exempt",
314
+ "weight": 1.0
315
+ },
316
+ {
317
+ "attribution": null,
318
+ "credit": 0.0,
319
+ "detail": "genre_inapplicable (twin_holds): gb_goal marks the rival castle hex; the level ends on capture, not overlap (GOLD_TRIAGE #4). measured: res://scenes/main.tscn declares no gb_goal: there is no win condition to reach, which is this level not implementing progression rather than a reading the evaluator could not take",
320
+ "id": "U4/goal_changes_scene[0]",
321
+ "verdict": "exempt",
322
+ "weight": 1.0
323
+ },
324
+ {
325
+ "attribution": null,
326
+ "credit": 1.0,
327
+ "detail": "a zero-input control run stopped with `budget_frames`",
328
+ "id": "U5/no_input_no_win",
329
+ "verdict": "passed",
330
+ "weight": 1.0
331
+ },
332
+ {
333
+ "attribution": null,
334
+ "credit": 1.0,
335
+ "detail": "res://scenes/main.tscn was entered directly and the engine confirmed it was running it",
336
+ "id": "U6/levels_enterable[0]",
337
+ "verdict": "passed",
338
+ "weight": 1.0
339
+ },
340
+ {
341
+ "attribution": null,
342
+ "credit": 1.0,
343
+ "detail": "success-only ending scene(s): res://scenes/victory.tscn",
344
+ "id": "U7/distinct_endings",
345
+ "verdict": "passed",
346
+ "weight": 1.0
347
+ },
348
+ {
349
+ "attribution": null,
350
+ "credit": 0.0,
351
+ "detail": "failed on reached, used_required (stop_reason=ops_exhausted). segment_clean and the applicable required-device gate are pass/fail with no partial credit: they are anti-bypass gates, not a measure of progress.",
352
+ "id": "O3/H/L2/twin_holds/C1/score_route",
353
+ "verdict": "failed",
354
+ "weight": 0.3333333333333333
355
+ },
356
+ {
357
+ "attribution": null,
358
+ "credit": 0.0,
359
+ "detail": "failed on reached, segment_clean, used_required (stop_reason=ops_exhausted). segment_clean and the applicable required-device gate are pass/fail with no partial credit: they are anti-bypass gates, not a measure of progress.",
360
+ "id": "O3/H/L3/twin_holds/C2/castle_capture_route",
361
+ "verdict": "failed",
362
+ "weight": 0.3333333333333333
363
+ },
364
+ {
365
+ "attribution": null,
366
+ "credit": 0.0,
367
+ "detail": "failed on reached, segment_clean, used_required (stop_reason=ops_exhausted). segment_clean and the applicable required-device gate are pass/fail with no partial credit: they are anti-bypass gates, not a measure of progress.",
368
+ "id": "O3/H/L4/twin_holds/C3/advanced_score_route",
369
+ "verdict": "failed",
370
+ "weight": 0.3333333333333333
371
+ }
372
+ ],
373
+ "O4": [
374
+ {
375
+ "attribution": null,
376
+ "credit": 1.0,
377
+ "detail": "1 level(s) declared in gb_levels.json, 1 cold-loaded to a playable state on the declared scene",
378
+ "id": "E1/manifest_vs_built",
379
+ "verdict": "passed",
380
+ "weight": 1.0
381
+ },
382
+ {
383
+ "attribution": null,
384
+ "credit": 0.0,
385
+ "detail": "the authored GDD states no explicit level/zone/stage count to hold the manifest to; only manifest-vs-built is read",
386
+ "id": "E1/gdd_vs_manifest",
387
+ "verdict": "unobservable",
388
+ "weight": 1.0
389
+ },
390
+ {
391
+ "attribution": null,
392
+ "credit": 0.0,
393
+ "detail": "no replay of the submission's own tape was available, so traversal of the declared levels was not read",
394
+ "id": "E4/declared_progression",
395
+ "verdict": "unobservable",
396
+ "weight": 1.0
397
+ }
398
+ ],
399
+ "O5": [
400
+ {
401
+ "attribution": null,
402
+ "credit": 0.0,
403
+ "detail": "the reference has fewer than two levels, so there is no ordering between levels to reproduce",
404
+ "id": "E2/collectible_order",
405
+ "verdict": "unobservable",
406
+ "weight": 1.0
407
+ },
408
+ {
409
+ "attribution": null,
410
+ "credit": 0.0,
411
+ "detail": "no normalised spawn-to-goal distance could be read from this level: it has no gb_goal, no gb_player, or degenerate bounds",
412
+ "id": "E3/goal_distance[0]",
413
+ "verdict": "skipped",
414
+ "weight": 1.0
415
+ },
416
+ {
417
+ "attribution": null,
418
+ "credit": 0.0,
419
+ "detail": "no normalised gb_interactive positions were read from this level",
420
+ "id": "E5/dispersion[0/gb_interactive]",
421
+ "verdict": "skipped",
422
+ "weight": 1.0
423
+ }
424
+ ],
425
+ "O6": [
426
+ {
427
+ "attribution": null,
428
+ "credit": 0.0,
429
+ "detail": "supplied but never loaded at runtime",
430
+ "id": "O6/uses[res://assets/audio/ambience.ogg]",
431
+ "verdict": "failed",
432
+ "weight": 1.0
433
+ },
434
+ {
435
+ "attribution": null,
436
+ "credit": 0.0,
437
+ "detail": "supplied but never loaded at runtime",
438
+ "id": "O6/uses[res://assets/models/buildings/blue/building_barracks_blue.gltf]",
439
+ "verdict": "failed",
440
+ "weight": 1.0
441
+ },
442
+ {
443
+ "attribution": null,
444
+ "credit": 0.0,
445
+ "detail": "supplied but never loaded at runtime",
446
+ "id": "O6/uses[res://assets/models/buildings/blue/building_castle_blue.gltf]",
447
+ "verdict": "failed",
448
+ "weight": 1.0
449
+ },
450
+ {
451
+ "attribution": null,
452
+ "credit": 0.0,
453
+ "detail": "supplied but never loaded at runtime",
454
+ "id": "O6/uses[res://assets/models/buildings/blue/building_church_blue.gltf]",
455
+ "verdict": "failed",
456
+ "weight": 1.0
457
+ },
458
+ {
459
+ "attribution": null,
460
+ "credit": 0.0,
461
+ "detail": "supplied but never loaded at runtime",
462
+ "id": "O6/uses[res://assets/models/buildings/blue/building_home_A_blue.gltf]",
463
+ "verdict": "failed",
464
+ "weight": 1.0
465
+ },
466
+ {
467
+ "attribution": null,
468
+ "credit": 0.0,
469
+ "detail": "supplied but never loaded at runtime",
470
+ "id": "O6/uses[res://assets/models/buildings/blue/building_home_B_blue.gltf]",
471
+ "verdict": "failed",
472
+ "weight": 1.0
473
+ },
474
+ {
475
+ "attribution": null,
476
+ "credit": 0.0,
477
+ "detail": "supplied but never loaded at runtime",
478
+ "id": "O6/uses[res://assets/models/buildings/blue/building_lumbermill_blue.gltf]",
479
+ "verdict": "failed",
480
+ "weight": 1.0
481
+ },
482
+ {
483
+ "attribution": null,
484
+ "credit": 0.0,
485
+ "detail": "supplied but never loaded at runtime",
486
+ "id": "O6/uses[res://assets/models/buildings/blue/building_market_blue.gltf]",
487
+ "verdict": "failed",
488
+ "weight": 1.0
489
+ },
490
+ {
491
+ "attribution": null,
492
+ "credit": 0.0,
493
+ "detail": "supplied but never loaded at runtime",
494
+ "id": "O6/uses[res://assets/models/buildings/blue/building_mine_blue.gltf]",
495
+ "verdict": "failed",
496
+ "weight": 1.0
497
+ },
498
+ {
499
+ "attribution": null,
500
+ "credit": 0.0,
501
+ "detail": "supplied but never loaded at runtime",
502
+ "id": "O6/uses[res://assets/models/buildings/blue/building_tavern_blue.gltf]",
503
+ "verdict": "failed",
504
+ "weight": 1.0
505
+ },
506
+ {
507
+ "attribution": null,
508
+ "credit": 0.0,
509
+ "detail": "supplied but never loaded at runtime",
510
+ "id": "O6/uses[res://assets/models/buildings/blue/building_tower_base_blue.gltf]",
511
+ "verdict": "failed",
512
+ "weight": 1.0
513
+ },
514
+ {
515
+ "attribution": null,
516
+ "credit": 0.0,
517
+ "detail": "supplied but never loaded at runtime",
518
+ "id": "O6/uses[res://assets/models/buildings/blue/building_well_blue.gltf]",
519
+ "verdict": "failed",
520
+ "weight": 1.0
521
+ },
522
+ {
523
+ "attribution": null,
524
+ "credit": 0.0,
525
+ "detail": "supplied but never loaded at runtime",
526
+ "id": "O6/uses[res://assets/models/buildings/blue/building_windmill_blue.gltf]",
527
+ "verdict": "failed",
528
+ "weight": 1.0
529
+ },
530
+ {
531
+ "attribution": null,
532
+ "credit": 0.0,
533
+ "detail": "supplied but never loaded at runtime",
534
+ "id": "O6/uses[res://assets/models/buildings/blue/hexagons_medieval.png]",
535
+ "verdict": "failed",
536
+ "weight": 1.0
537
+ },
538
+ {
539
+ "attribution": null,
540
+ "credit": 0.0,
541
+ "detail": "supplied but never loaded at runtime",
542
+ "id": "O6/uses[res://assets/models/buildings/green/building_castle_green.gltf]",
543
+ "verdict": "failed",
544
+ "weight": 1.0
545
+ },
546
+ {
547
+ "attribution": null,
548
+ "credit": 0.0,
549
+ "detail": "supplied but never loaded at runtime",
550
+ "id": "O6/uses[res://assets/models/buildings/green/hexagons_medieval.png]",
551
+ "verdict": "failed",
552
+ "weight": 1.0
553
+ },
554
+ {
555
+ "attribution": null,
556
+ "credit": 0.0,
557
+ "detail": "supplied but never loaded at runtime",
558
+ "id": "O6/uses[res://assets/models/buildings/neutral/building_dirt.gltf]",
559
+ "verdict": "failed",
560
+ "weight": 1.0
561
+ },
562
+ {
563
+ "attribution": null,
564
+ "credit": 0.0,
565
+ "detail": "supplied but never loaded at runtime",
566
+ "id": "O6/uses[res://assets/models/buildings/neutral/hexagons_medieval.png]",
567
+ "verdict": "failed",
568
+ "weight": 1.0
569
+ },
570
+ {
571
+ "attribution": null,
572
+ "credit": 0.0,
573
+ "detail": "supplied but never loaded at runtime",
574
+ "id": "O6/uses[res://assets/models/nature/hexagons_medieval.png]",
575
+ "verdict": "failed",
576
+ "weight": 1.0
577
+ },
578
+ {
579
+ "attribution": null,
580
+ "credit": 0.0,
581
+ "detail": "supplied but never loaded at runtime",
582
+ "id": "O6/uses[res://assets/models/nature/hill_single_A.gltf]",
583
+ "verdict": "failed",
584
+ "weight": 1.0
585
+ },
586
+ {
587
+ "attribution": null,
588
+ "credit": 0.0,
589
+ "detail": "supplied but never loaded at runtime",
590
+ "id": "O6/uses[res://assets/models/nature/hills_A_trees.gltf]",
591
+ "verdict": "failed",
592
+ "weight": 1.0
593
+ },
594
+ {
595
+ "attribution": null,
596
+ "credit": 0.0,
597
+ "detail": "supplied but never loaded at runtime",
598
+ "id": "O6/uses[res://assets/models/nature/mountain_A_grass_trees.gltf]",
599
+ "verdict": "failed",
600
+ "weight": 1.0
601
+ },
602
+ {
603
+ "attribution": null,
604
+ "credit": 0.0,
605
+ "detail": "supplied but never loaded at runtime",
606
+ "id": "O6/uses[res://assets/models/nature/mountain_B_grass.gltf]",
607
+ "verdict": "failed",
608
+ "weight": 1.0
609
+ },
610
+ {
611
+ "attribution": null,
612
+ "credit": 0.0,
613
+ "detail": "supplied but never loaded at runtime",
614
+ "id": "O6/uses[res://assets/models/nature/rock_single_A.gltf]",
615
+ "verdict": "failed",
616
+ "weight": 1.0
617
+ },
618
+ {
619
+ "attribution": null,
620
+ "credit": 0.0,
621
+ "detail": "supplied but never loaded at runtime",
622
+ "id": "O6/uses[res://assets/models/nature/trees_A_medium.gltf]",
623
+ "verdict": "failed",
624
+ "weight": 1.0
625
+ },
626
+ {
627
+ "attribution": null,
628
+ "credit": 0.0,
629
+ "detail": "supplied but never loaded at runtime",
630
+ "id": "O6/uses[res://assets/models/nature/trees_B_small.gltf]",
631
+ "verdict": "failed",
632
+ "weight": 1.0
633
+ },
634
+ {
635
+ "attribution": null,
636
+ "credit": 0.0,
637
+ "detail": "supplied but never loaded at runtime",
638
+ "id": "O6/uses[res://assets/models/props/flag_blue.gltf]",
639
+ "verdict": "failed",
640
+ "weight": 1.0
641
+ },
642
+ {
643
+ "attribution": null,
644
+ "credit": 0.0,
645
+ "detail": "supplied but never loaded at runtime",
646
+ "id": "O6/uses[res://assets/models/props/flag_green.gltf]",
647
+ "verdict": "failed",
648
+ "weight": 1.0
649
+ },
650
+ {
651
+ "attribution": null,
652
+ "credit": 0.0,
653
+ "detail": "supplied but never loaded at runtime",
654
+ "id": "O6/uses[res://assets/models/props/flag_red.gltf]",
655
+ "verdict": "failed",
656
+ "weight": 1.0
657
+ },
658
+ {
659
+ "attribution": null,
660
+ "credit": 0.0,
661
+ "detail": "supplied but never loaded at runtime",
662
+ "id": "O6/uses[res://assets/models/props/hexagons_medieval.png]",
663
+ "verdict": "failed",
664
+ "weight": 1.0
665
+ },
666
+ {
667
+ "attribution": null,
668
+ "credit": 0.0,
669
+ "detail": "supplied but never loaded at runtime",
670
+ "id": "O6/uses[res://assets/models/tiles/hex_grass.gltf]",
671
+ "verdict": "failed",
672
+ "weight": 1.0
673
+ },
674
+ {
675
+ "attribution": null,
676
+ "credit": 0.0,
677
+ "detail": "supplied but never loaded at runtime",
678
+ "id": "O6/uses[res://assets/models/tiles/hex_water.gltf]",
679
+ "verdict": "failed",
680
+ "weight": 1.0
681
+ },
682
+ {
683
+ "attribution": null,
684
+ "credit": 0.0,
685
+ "detail": "supplied but never loaded at runtime",
686
+ "id": "O6/uses[res://assets/models/tiles/hexagons_medieval.png]",
687
+ "verdict": "failed",
688
+ "weight": 1.0
689
+ },
690
+ {
691
+ "attribution": null,
692
+ "credit": 0.0,
693
+ "detail": "supplied but never loaded at runtime",
694
+ "id": "O6/uses[res://assets/ui/button_focus.png]",
695
+ "verdict": "failed",
696
+ "weight": 1.0
697
+ },
698
+ {
699
+ "attribution": null,
700
+ "credit": 0.0,
701
+ "detail": "supplied but never loaded at runtime",
702
+ "id": "O6/uses[res://assets/ui/button_normal.png]",
703
+ "verdict": "failed",
704
+ "weight": 1.0
705
+ },
706
+ {
707
+ "attribution": null,
708
+ "credit": 0.0,
709
+ "detail": "supplied but never loaded at runtime",
710
+ "id": "O6/uses[res://assets/ui/button_pressed.png]",
711
+ "verdict": "failed",
712
+ "weight": 1.0
713
+ },
714
+ {
715
+ "attribution": null,
716
+ "credit": 0.0,
717
+ "detail": "supplied but never loaded at runtime",
718
+ "id": "O6/uses[res://assets/ui/panel_frame.png]",
719
+ "verdict": "failed",
720
+ "weight": 1.0
721
+ }
722
+ ],
723
+ "O7": [
724
+ {
725
+ "attribution": null,
726
+ "credit": 0.0,
727
+ "detail": "failed on reached, used_required (stop_reason=ops_exhausted). segment_clean and the applicable required-device gate are pass/fail with no partial credit: they are anti-bypass gates, not a measure of progress.",
728
+ "id": "O7/L5/twin_holds/L5/whole_game_clear",
729
+ "verdict": "failed",
730
+ "weight": 1.0
731
+ }
732
+ ],
733
+ "O8": [
734
+ {
735
+ "attribution": null,
736
+ "credit": 0.0,
737
+ "detail": "L0-L5 route pass rates from the route runner, with a per-game op cap derived from measured frame cost; not available here",
738
+ "id": "O8/not_implemented",
739
+ "verdict": "unobservable",
740
+ "weight": 1.0
741
+ }
742
+ ],
743
+ "O9": [
744
+ {
745
+ "attribution": null,
746
+ "credit": 0.0,
747
+ "detail": "this task has no frozen anchor composition expectation",
748
+ "id": "O9/anchor_composition",
749
+ "verdict": "unobservable",
750
+ "weight": 1.0
751
+ }
752
+ ]
753
+ },
754
+ "failed_axes": [
755
+ "O3",
756
+ "O6",
757
+ "O7"
758
+ ],
759
+ "harness": {
760
+ "contract_version": "1",
761
+ "gb_capture_probe.gd": "sha256:204e194e0071fa165070ba3af7b66553fa77122a973737bc293d25b4bc46d4df",
762
+ "gb_probe.gd": "sha256:39609c49a433ca5f7a05f2c3cc583693be12614dbe33b80cb5d115da290931c3",
763
+ "gb_route_driver.gd": "sha256:75645e1b23545ce6c18e3af0c519cd532956ac7cf4b9f50288da2403d39d6945",
764
+ "gb_truth_driver.gd": "sha256:7778e6190895bfeb10af8beffeec678ec3b03848b53a674477bcdf796a0c0742"
765
+ },
766
+ "interface": {
767
+ "extended_actions": [
768
+ {
769
+ "id": "confirm_build",
770
+ "why": "Places the currently selected building under the cursor and consumes the cursor selection state in one action; a verb the six canonical actions cannot express in one binding."
771
+ },
772
+ {
773
+ "id": "cycle_build",
774
+ "why": "Advances the build menu index without moving the cursor and updates the building preview; a separate verb the six canonical actions cannot express."
775
+ },
776
+ {
777
+ "id": "demolish",
778
+ "why": "Removes the building under the cursor and refunds half its cost; a verb the six canonical actions cannot express."
779
+ },
780
+ {
781
+ "id": "end_turn",
782
+ "why": "Commits the player's build actions, runs the rival script, and advances the round counter as one combined verb; the six canonical actions cannot express."
783
+ }
784
+ ],
785
+ "interface_version": 2,
786
+ "normalized_sha256": "16a3fb98937e30c36c7af21aa3d3283acc0271c6853615fbcf6edc2092cebaaa",
787
+ "source_sha256": "5b1fdbb523f094673e998cf77c09b0a801d4a0260c55befabdd4868fc9a163f0"
788
+ },
789
+ "interface_conformance": {
790
+ "checks": {
791
+ "actions": {
792
+ "bound": [
793
+ "gb_left",
794
+ "gb_right",
795
+ "gb_up",
796
+ "gb_down",
797
+ "gb_jump",
798
+ "gb_action",
799
+ "gb_pause",
800
+ "gb_reset"
801
+ ],
802
+ "detail": "all eight fixed aliases have an InputMap event and appear in source",
803
+ "missing": [],
804
+ "status": "pass",
805
+ "unread": []
806
+ },
807
+ "analog_axes": {
808
+ "declared": [],
809
+ "detail": "no analog axes declared",
810
+ "optional": true,
811
+ "status": "pass"
812
+ },
813
+ "anchor_camera": {
814
+ "address": null,
815
+ "detail": "optional anchor camera is a scene::NodePath address",
816
+ "optional": true,
817
+ "status": "pass"
818
+ },
819
+ "audio_buses": {
820
+ "buses": [],
821
+ "detail": "optional audio bus names are valid evaluator addresses",
822
+ "optional": true,
823
+ "status": "pass"
824
+ },
825
+ "device_ids": {
826
+ "declared": [],
827
+ "detail": "optional generic device ids map to submitted NodePaths",
828
+ "invalid": [],
829
+ "optional": true,
830
+ "status": "pass",
831
+ "vocabulary": [
832
+ "checkpoint",
833
+ "collectible",
834
+ "door",
835
+ "enemy",
836
+ "falling_platform",
837
+ "goal",
838
+ "hazard",
839
+ "interactive",
840
+ "movplat",
841
+ "pad",
842
+ "spring",
843
+ "tile"
844
+ ]
845
+ },
846
+ "endings": {
847
+ "declared": [
848
+ "defeat",
849
+ "victory"
850
+ ],
851
+ "detail": "success ending vocabulary is declared and distinguishes success from failure",
852
+ "discriminating_scenes": [
853
+ "res://scenes/victory.tscn"
854
+ ],
855
+ "failure": [
856
+ "defeat"
857
+ ],
858
+ "shared_scenes": [],
859
+ "status": "pass",
860
+ "success": [
861
+ "victory"
862
+ ]
863
+ },
864
+ "extended_actions": {
865
+ "declared": [
866
+ {
867
+ "id": "confirm_build",
868
+ "why": "Places the currently selected building under the cursor and consumes the cursor selection state in one action; a verb the six canonical actions cannot express in one binding."
869
+ },
870
+ {
871
+ "id": "cycle_build",
872
+ "why": "Advances the build menu index without moving the cursor and updates the building preview; a separate verb the six canonical actions cannot express."
873
+ },
874
+ {
875
+ "id": "demolish",
876
+ "why": "Removes the building under the cursor and refunds half its cost; a verb the six canonical actions cannot express."
877
+ },
878
+ {
879
+ "id": "end_turn",
880
+ "why": "Commits the player's build actions, runs the rival script, and advances the round counter as one combined verb; the six canonical actions cannot express."
881
+ }
882
+ ],
883
+ "detail": "4 declared extra action(s) on the load-bearing InputMap",
884
+ "optional": true,
885
+ "status": "pass"
886
+ },
887
+ "gb_levels": {
888
+ "accepted_form": "each levels entry must be a \"res://…\" scene-path string naming a shipped scene (no objects, no {id, name, scene} records)",
889
+ "detail": "1 independently addressable level(s)",
890
+ "levels": [
891
+ "res://scenes/main.tscn"
892
+ ],
893
+ "status": "pass",
894
+ "unresolved": []
895
+ },
896
+ "groups": {
897
+ "absent": [
898
+ "gb_collectible",
899
+ "gb_goal",
900
+ "gb_hazard",
901
+ "gb_enemy",
902
+ "gb_checkpoint",
903
+ "gb_door",
904
+ "gb_interactive"
905
+ ],
906
+ "detail": "fixed group vocabulary scanned; non-player categories may be empty",
907
+ "present": [
908
+ "gb_player"
909
+ ],
910
+ "required_player": "present",
911
+ "status": "pass"
912
+ },
913
+ "level_clear": {
914
+ "detail": "level_clear is optional; default is gb_goal transition",
915
+ "findings": [],
916
+ "optional": true,
917
+ "predicate": "",
918
+ "status": "pass"
919
+ },
920
+ "level_entry": {
921
+ "detail": "optional level-entry address is valid",
922
+ "optional": true,
923
+ "status": "pass"
924
+ },
925
+ "numeric": {
926
+ "accepted_form": "bare property name (^[A-Za-z_]\\w*$) of an int/float readable on an autoload, the current scene root, a gb_* node, or a run/state/run_state/game object held by one",
927
+ "detail": "generic numeric mapping is valid; every value is a bare property name the route driver reads with Object.get() on autoloads, the current scene root, gb_* nodes and their run/state/run_state/game holders",
928
+ "mapping": {
929
+ "health": "food",
930
+ "progress": "round",
931
+ "score": "gold"
932
+ },
933
+ "optional": true,
934
+ "status": "pass",
935
+ "values": {
936
+ "health": {
937
+ "declared_in_source": true,
938
+ "driver_resolves": true,
939
+ "form": "property_name",
940
+ "note": "read verbatim by Object.get() on autoloads / current scene root / gb_* nodes / run|state|run_state|game holders",
941
+ "property": "food",
942
+ "value": "food"
943
+ },
944
+ "progress": {
945
+ "declared_in_source": true,
946
+ "driver_resolves": true,
947
+ "form": "property_name",
948
+ "note": "read verbatim by Object.get() on autoloads / current scene root / gb_* nodes / run|state|run_state|game holders",
949
+ "property": "round",
950
+ "value": "round"
951
+ },
952
+ "score": {
953
+ "declared_in_source": true,
954
+ "driver_resolves": true,
955
+ "form": "property_name",
956
+ "note": "read verbatim by Object.get() on autoloads / current scene root / gb_* nodes / run|state|run_state|game holders",
957
+ "property": "gold",
958
+ "value": "gold"
959
+ }
960
+ }
961
+ },
962
+ "project_godot": {
963
+ "detail": "project.godot exists",
964
+ "status": "pass"
965
+ }
966
+ },
967
+ "missing": [],
968
+ "project": "/root/autodl-tmp/CodingBenchmark-server-results/fast_run_20260924_parallel/brief/twin_holds/cells/twin_holds__brief__claude__minimax-m3/submission/game",
969
+ "schema_version": 2,
970
+ "submission_obligation_excludes": [
971
+ "observe()",
972
+ "observe().kind",
973
+ "Agent Bridge"
974
+ ],
975
+ "verdict": "PASS"
976
+ },
977
+ "pass_a_seconds": 574.0,
978
+ "pass_b_seconds": 179.6,
979
+ "render_mode": "X_CPU",
980
+ "route_readings": [
981
+ {
982
+ "clean_clear": true,
983
+ "deaths": 0,
984
+ "detail": "",
985
+ "devices_required": [],
986
+ "devices_unresolved": [],
987
+ "devices_used": [],
988
+ "errors": [],
989
+ "frames": 420,
990
+ "frames_note": "frames is the trace row count; physics_frames_at_end keeps counting while the tree is paused for the agent and is not the game's clock; process_frames_at_end is Engine.get_process_frames() and can diverge from frames when --fixed-fps is off",
991
+ "goal_frame": -1,
992
+ "idle_baseline_id": "",
993
+ "injects": 0,
994
+ "interface": {
995
+ "extended_actions": [
996
+ {
997
+ "id": "confirm_build",
998
+ "why": "Places the currently selected building under the cursor and consumes the cursor selection state in one action; a verb the six canonical actions cannot express in one binding."
999
+ },
1000
+ {
1001
+ "id": "cycle_build",
1002
+ "why": "Advances the build menu index without moving the cursor and updates the building preview; a separate verb the six canonical actions cannot express."
1003
+ },
1004
+ {
1005
+ "id": "demolish",
1006
+ "why": "Removes the building under the cursor and refunds half its cost; a verb the six canonical actions cannot express."
1007
+ },
1008
+ {
1009
+ "id": "end_turn",
1010
+ "why": "Commits the player's build actions, runs the rival script, and advances the round counter as one combined verb; the six canonical actions cannot express."
1011
+ }
1012
+ ],
1013
+ "interface_version": 2,
1014
+ "normalized_sha256": "16a3fb98937e30c36c7af21aa3d3283acc0271c6853615fbcf6edc2092cebaaa",
1015
+ "source_sha256": "5b1fdbb523f094673e998cf77c09b0a801d4a0260c55befabdd4868fc9a163f0"
1016
+ },
1017
+ "invariants_failed": [],
1018
+ "milestone_frames": {},
1019
+ "milestones_reached": [],
1020
+ "missing_groups": [],
1021
+ "mode": "H",
1022
+ "numeric_resolution": {
1023
+ "health": "none",
1024
+ "progress": "none",
1025
+ "score": "none"
1026
+ },
1027
+ "observations_reached": [],
1028
+ "observations_triggered": [],
1029
+ "physics_frames_at_end": 427,
1030
+ "process_frames_at_end": 426,
1031
+ "reached": true,
1032
+ "refusals": [],
1033
+ "replans": 0,
1034
+ "route_id": "twin_holds/L0/no_input_no_clear",
1035
+ "segment_clean": true,
1036
+ "stall_frames": 420,
1037
+ "state_delta": 0.0,
1038
+ "steps": 1,
1039
+ "stop_reason": "budget_frames",
1040
+ "success_before_all_levels": false,
1041
+ "tier": 0,
1042
+ "used_required": true,
1043
+ "wall_ms": 4695.2
1044
+ },
1045
+ {
1046
+ "clean_clear": false,
1047
+ "deaths": 0,
1048
+ "detail": "",
1049
+ "devices_required": [
1050
+ "tile#25"
1051
+ ],
1052
+ "devices_unresolved": [
1053
+ "tile#25"
1054
+ ],
1055
+ "devices_used": [],
1056
+ "errors": [],
1057
+ "frames": 1299,
1058
+ "frames_note": "frames is the trace row count; physics_frames_at_end keeps counting while the tree is paused for the agent and is not the game's clock; process_frames_at_end is Engine.get_process_frames() and can diverge from frames when --fixed-fps is off",
1059
+ "goal_frame": -1,
1060
+ "idle_baseline_id": "",
1061
+ "injects": 0,
1062
+ "interface": {
1063
+ "extended_actions": [
1064
+ {
1065
+ "id": "confirm_build",
1066
+ "why": "Places the currently selected building under the cursor and consumes the cursor selection state in one action; a verb the six canonical actions cannot express in one binding."
1067
+ },
1068
+ {
1069
+ "id": "cycle_build",
1070
+ "why": "Advances the build menu index without moving the cursor and updates the building preview; a separate verb the six canonical actions cannot express."
1071
+ },
1072
+ {
1073
+ "id": "demolish",
1074
+ "why": "Removes the building under the cursor and refunds half its cost; a verb the six canonical actions cannot express."
1075
+ },
1076
+ {
1077
+ "id": "end_turn",
1078
+ "why": "Commits the player's build actions, runs the rival script, and advances the round counter as one combined verb; the six canonical actions cannot express."
1079
+ }
1080
+ ],
1081
+ "interface_version": 2,
1082
+ "normalized_sha256": "16a3fb98937e30c36c7af21aa3d3283acc0271c6853615fbcf6edc2092cebaaa",
1083
+ "source_sha256": "5b1fdbb523f094673e998cf77c09b0a801d4a0260c55befabdd4868fc9a163f0"
1084
+ },
1085
+ "invariants_failed": [],
1086
+ "milestone_frames": {},
1087
+ "milestones_reached": [],
1088
+ "missing_groups": [
1089
+ "numeric:score"
1090
+ ],
1091
+ "mode": "H",
1092
+ "numeric_resolution": {
1093
+ "health": "none",
1094
+ "progress": "none",
1095
+ "score": "none"
1096
+ },
1097
+ "observations_reached": [],
1098
+ "observations_triggered": [],
1099
+ "physics_frames_at_end": 1365,
1100
+ "process_frames_at_end": 1364,
1101
+ "reached": false,
1102
+ "refusals": [],
1103
+ "replans": 0,
1104
+ "route_id": "twin_holds/C1/score_route",
1105
+ "segment_clean": true,
1106
+ "stall_frames": 1299,
1107
+ "state_delta": 1.0,
1108
+ "steps": 197,
1109
+ "stop_reason": "ops_exhausted",
1110
+ "success_before_all_levels": false,
1111
+ "tier": 2,
1112
+ "used_required": false,
1113
+ "wall_ms": 7794.4
1114
+ },
1115
+ {
1116
+ "clean_clear": false,
1117
+ "deaths": 0,
1118
+ "detail": "",
1119
+ "devices_required": [
1120
+ "tile#39"
1121
+ ],
1122
+ "devices_unresolved": [
1123
+ "tile#39"
1124
+ ],
1125
+ "devices_used": [],
1126
+ "errors": [
1127
+ "inject.autoload_state could not be applied completely"
1128
+ ],
1129
+ "frames": 2717,
1130
+ "frames_note": "frames is the trace row count; physics_frames_at_end keeps counting while the tree is paused for the agent and is not the game's clock; process_frames_at_end is Engine.get_process_frames() and can diverge from frames when --fixed-fps is off",
1131
+ "goal_frame": -1,
1132
+ "idle_baseline_id": "",
1133
+ "injects": 0,
1134
+ "interface": {
1135
+ "extended_actions": [
1136
+ {
1137
+ "id": "confirm_build",
1138
+ "why": "Places the currently selected building under the cursor and consumes the cursor selection state in one action; a verb the six canonical actions cannot express in one binding."
1139
+ },
1140
+ {
1141
+ "id": "cycle_build",
1142
+ "why": "Advances the build menu index without moving the cursor and updates the building preview; a separate verb the six canonical actions cannot express."
1143
+ },
1144
+ {
1145
+ "id": "demolish",
1146
+ "why": "Removes the building under the cursor and refunds half its cost; a verb the six canonical actions cannot express."
1147
+ },
1148
+ {
1149
+ "id": "end_turn",
1150
+ "why": "Commits the player's build actions, runs the rival script, and advances the round counter as one combined verb; the six canonical actions cannot express."
1151
+ }
1152
+ ],
1153
+ "interface_version": 2,
1154
+ "normalized_sha256": "16a3fb98937e30c36c7af21aa3d3283acc0271c6853615fbcf6edc2092cebaaa",
1155
+ "source_sha256": "5b1fdbb523f094673e998cf77c09b0a801d4a0260c55befabdd4868fc9a163f0"
1156
+ },
1157
+ "invariants_failed": [],
1158
+ "milestone_frames": {},
1159
+ "milestones_reached": [],
1160
+ "missing_groups": [
1161
+ "numeric:score"
1162
+ ],
1163
+ "mode": "H",
1164
+ "numeric_resolution": {
1165
+ "health": "none",
1166
+ "progress": "none",
1167
+ "score": "none"
1168
+ },
1169
+ "observations_reached": [],
1170
+ "observations_triggered": [],
1171
+ "physics_frames_at_end": 2783,
1172
+ "process_frames_at_end": 2782,
1173
+ "reached": false,
1174
+ "refusals": [],
1175
+ "replans": 0,
1176
+ "route_id": "twin_holds/C2/castle_capture_route",
1177
+ "segment_clean": false,
1178
+ "stall_frames": 2717,
1179
+ "state_delta": 1.0,
1180
+ "steps": 745,
1181
+ "stop_reason": "ops_exhausted",
1182
+ "success_before_all_levels": false,
1183
+ "tier": 3,
1184
+ "used_required": false,
1185
+ "wall_ms": 11786.7
1186
+ },
1187
+ {
1188
+ "clean_clear": false,
1189
+ "deaths": 0,
1190
+ "detail": "",
1191
+ "devices_required": [
1192
+ "tile#56"
1193
+ ],
1194
+ "devices_unresolved": [
1195
+ "tile#56"
1196
+ ],
1197
+ "devices_used": [],
1198
+ "errors": [
1199
+ "inject.autoload_state could not be applied completely"
1200
+ ],
1201
+ "frames": 4775,
1202
+ "frames_note": "frames is the trace row count; physics_frames_at_end keeps counting while the tree is paused for the agent and is not the game's clock; process_frames_at_end is Engine.get_process_frames() and can diverge from frames when --fixed-fps is off",
1203
+ "goal_frame": -1,
1204
+ "idle_baseline_id": "",
1205
+ "injects": 0,
1206
+ "interface": {
1207
+ "extended_actions": [
1208
+ {
1209
+ "id": "confirm_build",
1210
+ "why": "Places the currently selected building under the cursor and consumes the cursor selection state in one action; a verb the six canonical actions cannot express in one binding."
1211
+ },
1212
+ {
1213
+ "id": "cycle_build",
1214
+ "why": "Advances the build menu index without moving the cursor and updates the building preview; a separate verb the six canonical actions cannot express."
1215
+ },
1216
+ {
1217
+ "id": "demolish",
1218
+ "why": "Removes the building under the cursor and refunds half its cost; a verb the six canonical actions cannot express."
1219
+ },
1220
+ {
1221
+ "id": "end_turn",
1222
+ "why": "Commits the player's build actions, runs the rival script, and advances the round counter as one combined verb; the six canonical actions cannot express."
1223
+ }
1224
+ ],
1225
+ "interface_version": 2,
1226
+ "normalized_sha256": "16a3fb98937e30c36c7af21aa3d3283acc0271c6853615fbcf6edc2092cebaaa",
1227
+ "source_sha256": "5b1fdbb523f094673e998cf77c09b0a801d4a0260c55befabdd4868fc9a163f0"
1228
+ },
1229
+ "invariants_failed": [],
1230
+ "milestone_frames": {},
1231
+ "milestones_reached": [],
1232
+ "missing_groups": [
1233
+ "numeric:score"
1234
+ ],
1235
+ "mode": "H",
1236
+ "numeric_resolution": {
1237
+ "health": "none",
1238
+ "progress": "none",
1239
+ "score": "none"
1240
+ },
1241
+ "observations_reached": [],
1242
+ "observations_triggered": [],
1243
+ "physics_frames_at_end": 4841,
1244
+ "process_frames_at_end": 4840,
1245
+ "reached": false,
1246
+ "refusals": [],
1247
+ "replans": 0,
1248
+ "route_id": "twin_holds/C3/advanced_score_route",
1249
+ "segment_clean": false,
1250
+ "stall_frames": 4775,
1251
+ "state_delta": 1.0,
1252
+ "steps": 1475,
1253
+ "stop_reason": "ops_exhausted",
1254
+ "success_before_all_levels": false,
1255
+ "tier": 4,
1256
+ "used_required": false,
1257
+ "wall_ms": 17106.8
1258
+ },
1259
+ {
1260
+ "clean_clear": false,
1261
+ "deaths": 0,
1262
+ "detail": "",
1263
+ "devices_required": [
1264
+ "L1/tile#25",
1265
+ "L2/tile#39",
1266
+ "L3/tile#56"
1267
+ ],
1268
+ "devices_unresolved": [
1269
+ "L1/tile#25",
1270
+ "L2/tile#39",
1271
+ "L3/tile#56"
1272
+ ],
1273
+ "devices_used": [],
1274
+ "errors": [],
1275
+ "frames": 8921,
1276
+ "frames_note": "frames is the trace row count; physics_frames_at_end keeps counting while the tree is paused for the agent and is not the game's clock; process_frames_at_end is Engine.get_process_frames() and can diverge from frames when --fixed-fps is off",
1277
+ "goal_frame": -1,
1278
+ "idle_baseline_id": "",
1279
+ "injects": 0,
1280
+ "interface": {
1281
+ "extended_actions": [
1282
+ {
1283
+ "id": "confirm_build",
1284
+ "why": "Places the currently selected building under the cursor and consumes the cursor selection state in one action; a verb the six canonical actions cannot express in one binding."
1285
+ },
1286
+ {
1287
+ "id": "cycle_build",
1288
+ "why": "Advances the build menu index without moving the cursor and updates the building preview; a separate verb the six canonical actions cannot express."
1289
+ },
1290
+ {
1291
+ "id": "demolish",
1292
+ "why": "Removes the building under the cursor and refunds half its cost; a verb the six canonical actions cannot express."
1293
+ },
1294
+ {
1295
+ "id": "end_turn",
1296
+ "why": "Commits the player's build actions, runs the rival script, and advances the round counter as one combined verb; the six canonical actions cannot express."
1297
+ }
1298
+ ],
1299
+ "interface_version": 2,
1300
+ "normalized_sha256": "16a3fb98937e30c36c7af21aa3d3283acc0271c6853615fbcf6edc2092cebaaa",
1301
+ "source_sha256": "5b1fdbb523f094673e998cf77c09b0a801d4a0260c55befabdd4868fc9a163f0"
1302
+ },
1303
+ "invariants_failed": [],
1304
+ "milestone_frames": {},
1305
+ "milestones_reached": [],
1306
+ "missing_groups": [],
1307
+ "mode": "H",
1308
+ "numeric_resolution": {
1309
+ "health": "none",
1310
+ "progress": "none",
1311
+ "score": "none"
1312
+ },
1313
+ "observations_reached": [],
1314
+ "observations_triggered": [],
1315
+ "physics_frames_at_end": 8928,
1316
+ "process_frames_at_end": 8927,
1317
+ "reached": false,
1318
+ "refusals": [],
1319
+ "replans": 0,
1320
+ "route_id": "twin_holds/L5/whole_game_clear",
1321
+ "segment_clean": true,
1322
+ "stall_frames": 8921,
1323
+ "state_delta": 1.0,
1324
+ "steps": 2423,
1325
+ "stop_reason": "ops_exhausted",
1326
+ "success_before_all_levels": false,
1327
+ "tier": 5,
1328
+ "used_required": false,
1329
+ "wall_ms": 17611.5
1330
+ }
1331
+ ]
1332
+ },
1333
+ "replay_reading": null,
1334
+ "scard": null,
1335
+ "scard_state": "absent",
1336
+ "score": {
1337
+ "combined_hi": 0.690789,
1338
+ "combined_lo": 0.506579,
1339
+ "coverage": 0.881579,
1340
+ "measured_weight_share": 0.76,
1341
+ "normalised_lo": 0.506579,
1342
+ "objective_lo": 0.506579
1343
+ },
1344
+ "separately_reported": {
1345
+ "exempt_count": 2,
1346
+ "exempt_items": [
1347
+ {
1348
+ "channel": "O3",
1349
+ "detail": "genre_inapplicable (twin_holds): the frozen reference declares no gb_collectible in any level, so this is not one of this game's mechanics. measured: res://scenes/main.tscn declares no gb_collectible: there is nothing to pick up, which is this level not implementing collection rather than a reading the evaluator could not take",
1350
+ "family": "U3",
1351
+ "id": "U3/collect_removes_one[0]",
1352
+ "weight": 1.0
1353
+ },
1354
+ {
1355
+ "channel": "O3",
1356
+ "detail": "genre_inapplicable (twin_holds): gb_goal marks the rival castle hex; the level ends on capture, not overlap (GOLD_TRIAGE #4). measured: res://scenes/main.tscn declares no gb_goal: there is no win condition to reach, which is this level not implementing progression rather than a reading the evaluator could not take",
1357
+ "family": "U4",
1358
+ "id": "U4/goal_changes_scene[0]",
1359
+ "weight": 1.0
1360
+ }
1361
+ ],
1362
+ "exempt_weight": 2.0,
1363
+ "inconclusive_rate": 0.0,
1364
+ "shortcut_detected": false,
1365
+ "shortcut_evidence": [],
1366
+ "unattributable_error_rate": 0.0,
1367
+ "unmeasurable_channels": [],
1368
+ "unobservable_hit_rate": null
1369
+ },
1370
+ "submission": "game",
1371
+ "task_id": "twin_holds",
1372
+ "tier": "D2",
1373
+ "weights_registry": "2026-09-04.0"
1374
+ }
minimax/mode1/twin_holds/evaluation/reproduction/env.json ADDED
@@ -0,0 +1,393 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "asset_observation": {
3
+ "detail": "observed 3 live resource path(s) in an isolated pass",
4
+ "loaded_asset_digests": {
5
+ "res://gb_asset_probe.gd": "0ee55cd7e3c94e0ddecb695220fde12b150e5c8515433f8a0f99ae7a5a502b6d",
6
+ "res://scripts/main.gd": "b93964020c98a61360ea181da7e81e5dd96ab67d84eaaac6af2371cc79ecde2f",
7
+ "res://scripts/main_controller.gd": "b5e0615aafbd7a9f6033c69ec222d8f66952986171d591c8f0d0bbb98197a3c6"
8
+ },
9
+ "loaded_assets": [
10
+ "res://scripts/main.gd",
11
+ "res://scripts/main_controller.gd",
12
+ "res://gb_asset_probe.gd"
13
+ ],
14
+ "report_produced": true
15
+ },
16
+ "capture": {
17
+ "anchor_frame": "",
18
+ "anchor_requested": false,
19
+ "extended_actions": [
20
+ {
21
+ "id": "confirm_build",
22
+ "why": "Places the currently selected building under the cursor and consumes the cursor selection state in one action; a verb the six canonical actions cannot express in one binding."
23
+ },
24
+ {
25
+ "id": "cycle_build",
26
+ "why": "Advances the build menu index without moving the cursor and updates the building preview; a separate verb the six canonical actions cannot express."
27
+ },
28
+ {
29
+ "id": "demolish",
30
+ "why": "Removes the building under the cursor and refunds half its cost; a verb the six canonical actions cannot express."
31
+ },
32
+ {
33
+ "id": "end_turn",
34
+ "why": "Commits the player's build actions, runs the rival script, and advances the round counter as one combined verb; the six canonical actions cannot express."
35
+ }
36
+ ],
37
+ "frame_paths": [
38
+ "/root/autodl-tmp/CodingBenchmark-server-results/fast_run_20260924_parallel/brief/twin_holds/cells/twin_holds__brief__claude__minimax-m3/evaluation/reproduction/captures/game__f00000042.png",
39
+ "/root/autodl-tmp/CodingBenchmark-server-results/fast_run_20260924_parallel/brief/twin_holds/cells/twin_holds__brief__claude__minimax-m3/evaluation/reproduction/captures/game__f00000072.png",
40
+ "/root/autodl-tmp/CodingBenchmark-server-results/fast_run_20260924_parallel/brief/twin_holds/cells/twin_holds__brief__claude__minimax-m3/evaluation/reproduction/captures/game__f00000108.png"
41
+ ],
42
+ "interface_version": 2,
43
+ "level_frame_paths": {},
44
+ "mode": "X_CPU",
45
+ "normalized_sha256": "16a3fb98937e30c36c7af21aa3d3283acc0271c6853615fbcf6edc2092cebaaa",
46
+ "notes": [],
47
+ "probe_reported": true,
48
+ "source_sha256": "5b1fdbb523f094673e998cf77c09b0a801d4a0260c55befabdd4868fc9a163f0",
49
+ "visual_evidence": {
50
+ "candidate_evaluator_capture": {
51
+ "capture_kind": "frame_sequence",
52
+ "frames": [
53
+ {
54
+ "frame_index": 42,
55
+ "path": "captures/game__f00000042.png",
56
+ "source_frame": "f00000042.png",
57
+ "timestamp_seconds": 1.4
58
+ },
59
+ {
60
+ "frame_index": 72,
61
+ "path": "captures/game__f00000072.png",
62
+ "source_frame": "f00000072.png",
63
+ "timestamp_seconds": 2.4
64
+ },
65
+ {
66
+ "frame_index": 108,
67
+ "path": "captures/game__f00000108.png",
68
+ "source_frame": "f00000108.png",
69
+ "timestamp_seconds": 3.6
70
+ }
71
+ ],
72
+ "is_reference_input": false,
73
+ "level": "res://scenes/main.tscn",
74
+ "mode": "X",
75
+ "owner": "evaluator",
76
+ "provenance": {
77
+ "argv": [
78
+ "xvfb-run",
79
+ "-a",
80
+ "-s",
81
+ "-screen 0 1280x720x24",
82
+ "/opt/godot451-bin/godot",
83
+ "--rendering-driver",
84
+ "opengl3",
85
+ "--path",
86
+ "/data2/gamebench/scratch/gb_ocard_scratch/game-frames-a39a3cda",
87
+ "res://scenes/main.tscn",
88
+ "--quit-after",
89
+ "120",
90
+ "--fixed-fps",
91
+ "30",
92
+ "--write-movie",
93
+ "/data2/gamebench/scratch/gb_ocard_scratch/frames-5629acae/f.png"
94
+ ],
95
+ "cwd": "/data2/gamebench/scratch/gb_ocard_scratch/game-frames-a39a3cda",
96
+ "extra_hashes": {},
97
+ "outcome": "reported",
98
+ "returncode": 0,
99
+ "seconds": 103.902,
100
+ "stderr_tail": "",
101
+ "tool": "godot",
102
+ "tool_path": "/opt/godot451-bin/godot",
103
+ "tool_sha256": "db07cae7de644278a1884d4552bdf2bca3f5d30131b18faf3a0c4d730080b199"
104
+ },
105
+ "role": "candidate_evaluator_capture",
106
+ "subject": "candidate_submission",
107
+ "timeline": {
108
+ "basis": "frame_index / fixed_fps from evaluator capture start",
109
+ "fixed_fps": 30.0,
110
+ "frames_generated": 120
111
+ },
112
+ "video_file": null,
113
+ "video_status": "not_recorded"
114
+ },
115
+ "reference_input": {
116
+ "artifact_status": "separate_task_material",
117
+ "is_candidate_evidence": false,
118
+ "note": "Reference gameplay belongs to the model-facing task package; it is not evidence captured from this candidate submission.",
119
+ "owner": "benchmark_task",
120
+ "role": "reference_input",
121
+ "subject": "reference_game"
122
+ },
123
+ "schema": "gamebench.candidate-visual-evidence.v1"
124
+ }
125
+ },
126
+ "conformance": {
127
+ "checks": {
128
+ "actions": {
129
+ "bound": [
130
+ "gb_left",
131
+ "gb_right",
132
+ "gb_up",
133
+ "gb_down",
134
+ "gb_jump",
135
+ "gb_action",
136
+ "gb_pause",
137
+ "gb_reset"
138
+ ],
139
+ "detail": "all eight fixed aliases have an InputMap event and appear in source",
140
+ "missing": [],
141
+ "status": "pass",
142
+ "unread": []
143
+ },
144
+ "analog_axes": {
145
+ "declared": [],
146
+ "detail": "no analog axes declared",
147
+ "optional": true,
148
+ "status": "pass"
149
+ },
150
+ "anchor_camera": {
151
+ "address": null,
152
+ "detail": "optional anchor camera is a scene::NodePath address",
153
+ "optional": true,
154
+ "status": "pass"
155
+ },
156
+ "audio_buses": {
157
+ "buses": [],
158
+ "detail": "optional audio bus names are valid evaluator addresses",
159
+ "optional": true,
160
+ "status": "pass"
161
+ },
162
+ "device_ids": {
163
+ "declared": [],
164
+ "detail": "optional generic device ids map to submitted NodePaths",
165
+ "invalid": [],
166
+ "optional": true,
167
+ "status": "pass",
168
+ "vocabulary": [
169
+ "checkpoint",
170
+ "collectible",
171
+ "door",
172
+ "enemy",
173
+ "falling_platform",
174
+ "goal",
175
+ "hazard",
176
+ "interactive",
177
+ "movplat",
178
+ "pad",
179
+ "spring",
180
+ "tile"
181
+ ]
182
+ },
183
+ "endings": {
184
+ "declared": [
185
+ "defeat",
186
+ "victory"
187
+ ],
188
+ "detail": "success ending vocabulary is declared and distinguishes success from failure",
189
+ "discriminating_scenes": [
190
+ "res://scenes/victory.tscn"
191
+ ],
192
+ "failure": [
193
+ "defeat"
194
+ ],
195
+ "shared_scenes": [],
196
+ "status": "pass",
197
+ "success": [
198
+ "victory"
199
+ ]
200
+ },
201
+ "extended_actions": {
202
+ "declared": [
203
+ {
204
+ "id": "confirm_build",
205
+ "why": "Places the currently selected building under the cursor and consumes the cursor selection state in one action; a verb the six canonical actions cannot express in one binding."
206
+ },
207
+ {
208
+ "id": "cycle_build",
209
+ "why": "Advances the build menu index without moving the cursor and updates the building preview; a separate verb the six canonical actions cannot express."
210
+ },
211
+ {
212
+ "id": "demolish",
213
+ "why": "Removes the building under the cursor and refunds half its cost; a verb the six canonical actions cannot express."
214
+ },
215
+ {
216
+ "id": "end_turn",
217
+ "why": "Commits the player's build actions, runs the rival script, and advances the round counter as one combined verb; the six canonical actions cannot express."
218
+ }
219
+ ],
220
+ "detail": "4 declared extra action(s) on the load-bearing InputMap",
221
+ "optional": true,
222
+ "status": "pass"
223
+ },
224
+ "gb_levels": {
225
+ "accepted_form": "each levels entry must be a \"res://…\" scene-path string naming a shipped scene (no objects, no {id, name, scene} records)",
226
+ "detail": "1 independently addressable level(s)",
227
+ "levels": [
228
+ "res://scenes/main.tscn"
229
+ ],
230
+ "status": "pass",
231
+ "unresolved": []
232
+ },
233
+ "groups": {
234
+ "absent": [
235
+ "gb_collectible",
236
+ "gb_goal",
237
+ "gb_hazard",
238
+ "gb_enemy",
239
+ "gb_checkpoint",
240
+ "gb_door",
241
+ "gb_interactive"
242
+ ],
243
+ "detail": "fixed group vocabulary scanned; non-player categories may be empty",
244
+ "present": [
245
+ "gb_player"
246
+ ],
247
+ "required_player": "present",
248
+ "status": "pass"
249
+ },
250
+ "level_clear": {
251
+ "detail": "level_clear is optional; default is gb_goal transition",
252
+ "findings": [],
253
+ "optional": true,
254
+ "predicate": "",
255
+ "status": "pass"
256
+ },
257
+ "level_entry": {
258
+ "detail": "optional level-entry address is valid",
259
+ "optional": true,
260
+ "status": "pass"
261
+ },
262
+ "numeric": {
263
+ "accepted_form": "bare property name (^[A-Za-z_]\\w*$) of an int/float readable on an autoload, the current scene root, a gb_* node, or a run/state/run_state/game object held by one",
264
+ "detail": "generic numeric mapping is valid; every value is a bare property name the route driver reads with Object.get() on autoloads, the current scene root, gb_* nodes and their run/state/run_state/game holders",
265
+ "mapping": {
266
+ "health": "food",
267
+ "progress": "round",
268
+ "score": "gold"
269
+ },
270
+ "optional": true,
271
+ "status": "pass",
272
+ "values": {
273
+ "health": {
274
+ "declared_in_source": true,
275
+ "driver_resolves": true,
276
+ "form": "property_name",
277
+ "note": "read verbatim by Object.get() on autoloads / current scene root / gb_* nodes / run|state|run_state|game holders",
278
+ "property": "food",
279
+ "value": "food"
280
+ },
281
+ "progress": {
282
+ "declared_in_source": true,
283
+ "driver_resolves": true,
284
+ "form": "property_name",
285
+ "note": "read verbatim by Object.get() on autoloads / current scene root / gb_* nodes / run|state|run_state|game holders",
286
+ "property": "round",
287
+ "value": "round"
288
+ },
289
+ "score": {
290
+ "declared_in_source": true,
291
+ "driver_resolves": true,
292
+ "form": "property_name",
293
+ "note": "read verbatim by Object.get() on autoloads / current scene root / gb_* nodes / run|state|run_state|game holders",
294
+ "property": "gold",
295
+ "value": "gold"
296
+ }
297
+ }
298
+ },
299
+ "project_godot": {
300
+ "detail": "project.godot exists",
301
+ "status": "pass"
302
+ }
303
+ },
304
+ "missing": [],
305
+ "project": "/root/autodl-tmp/CodingBenchmark-server-results/fast_run_20260924_parallel/brief/twin_holds/cells/twin_holds__brief__claude__minimax-m3/submission/game",
306
+ "schema_version": 2,
307
+ "submission_obligation_excludes": [
308
+ "observe()",
309
+ "observe().kind",
310
+ "Agent Bridge"
311
+ ],
312
+ "verdict": "PASS"
313
+ },
314
+ "evalsys_commit": "11e2848deb22940d3840325de462f4c256e2c74d",
315
+ "expectations_generated_at": "2026-08-23T10:43:04+00:00",
316
+ "expectations_version": "2",
317
+ "godot_version": "4.5.1",
318
+ "harness": {
319
+ "contract_version": "1",
320
+ "gb_capture_probe.gd": "sha256:204e194e0071fa165070ba3af7b66553fa77122a973737bc293d25b4bc46d4df",
321
+ "gb_probe.gd": "sha256:39609c49a433ca5f7a05f2c3cc583693be12614dbe33b80cb5d115da290931c3",
322
+ "gb_route_driver.gd": "sha256:75645e1b23545ce6c18e3af0c519cd532956ac7cf4b9f50288da2403d39d6945",
323
+ "gb_truth_driver.gd": "sha256:7778e6190895bfeb10af8beffeec678ec3b03848b53a674477bcdf796a0c0742"
324
+ },
325
+ "interface": {
326
+ "extended_actions": [
327
+ {
328
+ "id": "confirm_build",
329
+ "why": "Places the currently selected building under the cursor and consumes the cursor selection state in one action; a verb the six canonical actions cannot express in one binding."
330
+ },
331
+ {
332
+ "id": "cycle_build",
333
+ "why": "Advances the build menu index without moving the cursor and updates the building preview; a separate verb the six canonical actions cannot express."
334
+ },
335
+ {
336
+ "id": "demolish",
337
+ "why": "Removes the building under the cursor and refunds half its cost; a verb the six canonical actions cannot express."
338
+ },
339
+ {
340
+ "id": "end_turn",
341
+ "why": "Commits the player's build actions, runs the rival script, and advances the round counter as one combined verb; the six canonical actions cannot express."
342
+ }
343
+ ],
344
+ "interface_version": 2,
345
+ "normalized_sha256": "16a3fb98937e30c36c7af21aa3d3283acc0271c6853615fbcf6edc2092cebaaa",
346
+ "source_sha256": "5b1fdbb523f094673e998cf77c09b0a801d4a0260c55befabdd4868fc9a163f0"
347
+ },
348
+ "modality": "Mv",
349
+ "mode": "X_CPU",
350
+ "reference_runtime_assets": {
351
+ "res://assets/audio/ambience.ogg": "35697cbfde073f92df06e828fe2c8676a1f98c07404193e6477ca9202213f80a",
352
+ "res://assets/models/buildings/blue/building_barracks_blue.gltf": "a4f3aaa7ebb33cf0d86a139941b350e580e3e1376e3ead99a5aaecb5de2f3817",
353
+ "res://assets/models/buildings/blue/building_castle_blue.gltf": "f23ede8641122d2226f02a5fdb4957dfedec99accf27240f07ef7fb312696759",
354
+ "res://assets/models/buildings/blue/building_church_blue.gltf": "ac2d9dfbdcffd1604e1522ddb26fe27c1feae2bc01bf90664c8044b22926867b",
355
+ "res://assets/models/buildings/blue/building_home_A_blue.gltf": "60b3568e086d586b491eed8168c46acb61bb9670fb2c296faa64929b18dfcbea",
356
+ "res://assets/models/buildings/blue/building_home_B_blue.gltf": "bf503f4edcd3a744a021ccdd5b9215f6c8934ef87fa44d95632cb653422797eb",
357
+ "res://assets/models/buildings/blue/building_lumbermill_blue.gltf": "bf6ff5811c7e4aac10dbd32d0cb26b2dda6e31b894726bf9d567371a0fb1f1b4",
358
+ "res://assets/models/buildings/blue/building_market_blue.gltf": "24874a4651dfff0d1aea31e15a32b9c35122958764c6f968ca55f286285ffbe9",
359
+ "res://assets/models/buildings/blue/building_mine_blue.gltf": "fe21db192f3ee7d40bd5f64a1d3782c6301b92a6676ca8a4d43e8c3e85ab7695",
360
+ "res://assets/models/buildings/blue/building_tavern_blue.gltf": "58a3573cf468f9c5f1d03a6da74fbc884f5f662ccddbfef2a10860abfe50109b",
361
+ "res://assets/models/buildings/blue/building_tower_base_blue.gltf": "60c9ea992b4dd584f57183a6c9b89619ff36eda2c81be71cefdb8704bdf84f4a",
362
+ "res://assets/models/buildings/blue/building_well_blue.gltf": "66305823322b2e6a7f1cb8d8bf0d91ed9b94b8d96f61d0f7af77bd0d09f6463e",
363
+ "res://assets/models/buildings/blue/building_windmill_blue.gltf": "a98412d4bcd016ce63f66b5d7193adf664867c3649829707b04586fb73e31f38",
364
+ "res://assets/models/buildings/blue/hexagons_medieval.png": "5301a06866ba3be68dcc14cc429bd6d0f69004b72884283715d7e233f2e9782e",
365
+ "res://assets/models/buildings/green/building_castle_green.gltf": "6739f651daf33b406c0abb0b91af49315059a0e70012bd01b77b30695f4bd98c",
366
+ "res://assets/models/buildings/green/hexagons_medieval.png": "5301a06866ba3be68dcc14cc429bd6d0f69004b72884283715d7e233f2e9782e",
367
+ "res://assets/models/buildings/neutral/building_dirt.gltf": "dd7d0f3e4740b0465615d69024a553f87314385998431c8555788bef354aed16",
368
+ "res://assets/models/buildings/neutral/hexagons_medieval.png": "5301a06866ba3be68dcc14cc429bd6d0f69004b72884283715d7e233f2e9782e",
369
+ "res://assets/models/nature/hexagons_medieval.png": "5301a06866ba3be68dcc14cc429bd6d0f69004b72884283715d7e233f2e9782e",
370
+ "res://assets/models/nature/hill_single_A.gltf": "00eb206cb0239257d05c107568bcf1fd6548d2f3da2cfb6ec8ecd41c377bbf06",
371
+ "res://assets/models/nature/hills_A_trees.gltf": "6e7e71bd37856c442dc7cf562a1cc1e9eb172050dc002d2d65c3fb5b90ae1d28",
372
+ "res://assets/models/nature/mountain_A_grass_trees.gltf": "defb29e0132afd4ec5cb33281efb890c9ed9603b5181471b31ff4f21d71c143a",
373
+ "res://assets/models/nature/mountain_B_grass.gltf": "4df9f7e2479b581061f3369e9da18de672e89dd896d7cb116d6078c823150afc",
374
+ "res://assets/models/nature/rock_single_A.gltf": "ddf307987fb18aa8e7594bb399de3943e497b50bc01aae0e7292a38418944915",
375
+ "res://assets/models/nature/trees_A_medium.gltf": "c330d7c775c50b7ccbc6ce7799e699fbdbbeb14a390315e85419dc0dfe5178a6",
376
+ "res://assets/models/nature/trees_B_small.gltf": "f9a491097a116f98a11022b1b1adb563946ba28751f9184d689a8019ef4d7e41",
377
+ "res://assets/models/props/flag_blue.gltf": "de33035f0e9945f8d4e6ca3242e18f4822227cc8cc3a1afd9f0d193419573f08",
378
+ "res://assets/models/props/flag_green.gltf": "3d3192dc48ae58179391adc15d38faadcc1680e2d6b8bab582da054cf01c82bd",
379
+ "res://assets/models/props/flag_red.gltf": "c1f76b1ca3d47a30a868500ecbe2844e89b75b4bebc7283f41bd37561aa58c1f",
380
+ "res://assets/models/props/hexagons_medieval.png": "5301a06866ba3be68dcc14cc429bd6d0f69004b72884283715d7e233f2e9782e",
381
+ "res://assets/models/tiles/hex_grass.gltf": "9197814431b5becf69b22bb7a20e340d63155c4aeddfb3a678c3f041ca585e41",
382
+ "res://assets/models/tiles/hex_water.gltf": "ccc5b423abcd43dfb562ef0fda1f518e24e0696364d6beb2f2da704da9d2acfa",
383
+ "res://assets/models/tiles/hexagons_medieval.png": "5301a06866ba3be68dcc14cc429bd6d0f69004b72884283715d7e233f2e9782e",
384
+ "res://assets/ui/button_focus.png": "f8d084a5caaae0599d0c5fbfd52385ce2932af2d1375180c5e771b0a2aa41e0a",
385
+ "res://assets/ui/button_normal.png": "3fc1d9bedf07da0f1a49bed143311e6edf3bebd9a937e95a6ab4b812c8448ec0",
386
+ "res://assets/ui/button_pressed.png": "424f7743b51666915429a32b76732aeea7079c053cabbe7874d826fed210dacc",
387
+ "res://assets/ui/panel_frame.png": "4239da5e604c18d0410847df936040dd821e80d85ad89efe02635d93286f5574"
388
+ },
389
+ "route_sha256": "f47e2bcb8a54c0f3e0de97b33fe68a540677c529b27e4afd3bf275bd97d29952",
390
+ "task_id": "twin_holds",
391
+ "tier": "D2",
392
+ "weights_registry_version": "2026-09-04.0"
393
+ }
minimax/mode1/twin_holds/evaluation/reproduction/report.md ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # game — twin_holds @ D2/Mv
2
+
3
+ Weight registry `2026-09-04.0`.
4
+
5
+ ## Score
6
+
7
+ | | value |
8
+ |---|---|
9
+ | ranked score (`score_lo`) | **0.507** |
10
+ | interval | [0.507, 0.691] |
11
+ | Objective Behavioral Evaluation (objective only) | 0.507 |
12
+ | normalised (`/ restricted ceiling, over the channels that reported = 1.000`) | 0.507 |
13
+ | coverage | 0.88 |
14
+ | share of registered weight actually measured | 0.76 |
15
+ | flags | partial-card(0.76 of registered weight), exempt:2(w=2.000), zero:O5, zero:O6, zero:O7, failed:O3, failed:O6, failed:O7 |
16
+
17
+ > **Not eligible for a cross-model table.** partial-card: only 76% of the registered Objective Behavioral Evaluation weight produced a reading ( reported nothing). Its normalised score has a different denominator from a complete card and the two must not share a column.
18
+
19
+ The interval is 0.184 wide. That width is the part of the submission we did not manage to measure, and it is counted against the score rather than around it: ranking uses the low end, so a check that was skipped costs exactly as much as a check that failed.
20
+
21
+ ## Objective Behavioral Evaluation
22
+
23
+ | channel | what it reads | w | score | coverage | mode | note |
24
+ |---|---|---:|---|---:|:---:|---|
25
+ | O1 | runnable | 0.063 | 1.000 | 1.00 | X_CPU | cold_import=passed; boots=passed; draws_nontrivial=passed; responds_to_input=passed |
26
+ | O2 | interface_conformance | 0.072 | 1.000 | 1.00 | H | groups=passed; actions=passed; levels=passed; endings=passed; optional_fields_valid=passed; task_required_observables=passed |
27
+ | O3 | mechanic_fidelity | 0.180 | 0.625 [0.625, 0.875] | 1.00 | H | universal assertions U1, U2, U3, U4, U5, U6, U7 over 1 levels; H-class 3 item(s) for task_id='twin_holds' 2 item(s) genre-exempt (weight 2.000); see by_verdict. |
28
+ | O4 | level_topology | 0.099 | 1.000 | 1.00 | H | declared-vs-built consistency (brief mode): 1 declared, 1 built, gdd states no count |
29
+ | O5 | spatial_ordinal | 0.081 | 0.000 [0.000, 1.000] | 0.00 ! | H | collectible ordering, normalised goal distance and entity dispersion over 1 levels against expectations frozen 2026-08-23T10:43:04+00:00 |
30
+ | O6 | asset_use | 0.063 | 0.000 | 1.00 | H | 0/37 supplied assets observed in the engine |
31
+ | O7 | authored_clear | 0.126 | 0.000 | 1.00 | H | L5 authored clear over 1 RT-1-passed route(s) |
32
+ | O8 | gui_agent_routes | 0.126 | not measured | - | X_CPU | excluded from the main card; independent external-agent routes consume the same levels/actions SubmissionInterface |
33
+ | O9 | anchor_composition | 0.090 | not measured | - | X_CPU | task has no O9 expectation |
34
+
35
+ ## Reported separately, never folded into the score
36
+
37
+ | reading | value | why it is not in the score |
38
+ |---|---|---|
39
+ | `shortcut_detected` | False | A categorical fact, not a magnitude. Any number of points docked for it would be the wrong number. |
40
+ | `unmeasurable_channels` | none | Distinguishes 'did not do it' from 'we could not read it'. |
41
+ | `inconclusive_rate` | 0.000 | Our failures, not the submission's. Out of the denominator, but public. |
42
+ | `unattributable_error_rate` | 0.000 | Errors we could not blame on either side. Flagged for human review. |
43
+ | `unobservable_hit_rate` | n/a | Pass rate on items this tier cannot convey. Measures the design prior — how much it guessed right with no information — which separates reproducing from pattern-matching. |
44
+ | `exempt_count` / `exempt_weight` | 2 / 2.000 | Genre exemptions that stay in the denominator (lo=0, hi=full). Interval width records them; they must not vanish. |
45
+
46
+ ## Genre exemptions
47
+
48
+ - `U3/collect_removes_one[0]` (O3, w=1.000): genre_inapplicable (twin_holds): the frozen reference declares no gb_collectible in any level, so this is not one of this game's mechanics. measured: res://scen
49
+ - `U4/goal_changes_scene[0]` (O3, w=1.000): genre_inapplicable (twin_holds): gb_goal marks the rival castle hex; the level ends on capture, not overlap (GOLD_TRIAGE #4). measured: res://scenes/main.tscn d
50
+
51
+ ## Perceptual Quality Assessment
52
+
53
+ Assessment state: `absent`.
54
+
55
+ The Perceptual Quality Assessment is `absent` and contributes nothing to the total. An uncalibrated judge in a score is a number with no shown relationship to anything it claims to measure.
56
+
57
+ ## Notes
58
+
59
+ - liveness deadline derived from this project's own structural pass: 57.8 ms/frame median, 57.8 ms/frame worst
60
+ - liveness sweep: 5 live / 1 dead against the 420-frame idle control truth/L0#idle420
61
+ - replayed 5 certified route(s) from a suite reviewed by 'project_owner' on 2026-09-09
62
+ - only 76% of registered Objective Behavioral Evaluation weight produced any reading (O1, O2, O3, O4, O5, O6, O7); coverage=0.88 describes those channels alone and must not be read as coverage of the card.
63
+ - 2 genre-exempt item(s) (weight 2.000) stay in the denominator with lo=0/hi=full; interval width records the exemption. See exempt_items.
minimax/mode1/twin_holds/evaluation/reproduction/routes/readings.json ADDED
@@ -0,0 +1,352 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "clean_clear": true,
4
+ "deaths": 0,
5
+ "detail": "",
6
+ "devices_required": [],
7
+ "devices_unresolved": [],
8
+ "devices_used": [],
9
+ "errors": [],
10
+ "frames": 420,
11
+ "frames_note": "frames is the trace row count; physics_frames_at_end keeps counting while the tree is paused for the agent and is not the game's clock; process_frames_at_end is Engine.get_process_frames() and can diverge from frames when --fixed-fps is off",
12
+ "goal_frame": -1,
13
+ "idle_baseline_id": "",
14
+ "injects": 0,
15
+ "interface": {
16
+ "extended_actions": [
17
+ {
18
+ "id": "confirm_build",
19
+ "why": "Places the currently selected building under the cursor and consumes the cursor selection state in one action; a verb the six canonical actions cannot express in one binding."
20
+ },
21
+ {
22
+ "id": "cycle_build",
23
+ "why": "Advances the build menu index without moving the cursor and updates the building preview; a separate verb the six canonical actions cannot express."
24
+ },
25
+ {
26
+ "id": "demolish",
27
+ "why": "Removes the building under the cursor and refunds half its cost; a verb the six canonical actions cannot express."
28
+ },
29
+ {
30
+ "id": "end_turn",
31
+ "why": "Commits the player's build actions, runs the rival script, and advances the round counter as one combined verb; the six canonical actions cannot express."
32
+ }
33
+ ],
34
+ "interface_version": 2,
35
+ "normalized_sha256": "16a3fb98937e30c36c7af21aa3d3283acc0271c6853615fbcf6edc2092cebaaa",
36
+ "source_sha256": "5b1fdbb523f094673e998cf77c09b0a801d4a0260c55befabdd4868fc9a163f0"
37
+ },
38
+ "invariants_failed": [],
39
+ "milestone_frames": {},
40
+ "milestones_reached": [],
41
+ "missing_groups": [],
42
+ "mode": "H",
43
+ "numeric_resolution": {
44
+ "health": "none",
45
+ "progress": "none",
46
+ "score": "none"
47
+ },
48
+ "observations_reached": [],
49
+ "observations_triggered": [],
50
+ "physics_frames_at_end": 427,
51
+ "process_frames_at_end": 426,
52
+ "reached": true,
53
+ "refusals": [],
54
+ "replans": 0,
55
+ "route_id": "twin_holds/L0/no_input_no_clear",
56
+ "segment_clean": true,
57
+ "stall_frames": 420,
58
+ "state_delta": 0.0,
59
+ "steps": 1,
60
+ "stop_reason": "budget_frames",
61
+ "success_before_all_levels": false,
62
+ "tier": 0,
63
+ "used_required": true,
64
+ "wall_ms": 4695.2
65
+ },
66
+ {
67
+ "clean_clear": false,
68
+ "deaths": 0,
69
+ "detail": "",
70
+ "devices_required": [
71
+ "tile#25"
72
+ ],
73
+ "devices_unresolved": [
74
+ "tile#25"
75
+ ],
76
+ "devices_used": [],
77
+ "errors": [],
78
+ "frames": 1299,
79
+ "frames_note": "frames is the trace row count; physics_frames_at_end keeps counting while the tree is paused for the agent and is not the game's clock; process_frames_at_end is Engine.get_process_frames() and can diverge from frames when --fixed-fps is off",
80
+ "goal_frame": -1,
81
+ "idle_baseline_id": "",
82
+ "injects": 0,
83
+ "interface": {
84
+ "extended_actions": [
85
+ {
86
+ "id": "confirm_build",
87
+ "why": "Places the currently selected building under the cursor and consumes the cursor selection state in one action; a verb the six canonical actions cannot express in one binding."
88
+ },
89
+ {
90
+ "id": "cycle_build",
91
+ "why": "Advances the build menu index without moving the cursor and updates the building preview; a separate verb the six canonical actions cannot express."
92
+ },
93
+ {
94
+ "id": "demolish",
95
+ "why": "Removes the building under the cursor and refunds half its cost; a verb the six canonical actions cannot express."
96
+ },
97
+ {
98
+ "id": "end_turn",
99
+ "why": "Commits the player's build actions, runs the rival script, and advances the round counter as one combined verb; the six canonical actions cannot express."
100
+ }
101
+ ],
102
+ "interface_version": 2,
103
+ "normalized_sha256": "16a3fb98937e30c36c7af21aa3d3283acc0271c6853615fbcf6edc2092cebaaa",
104
+ "source_sha256": "5b1fdbb523f094673e998cf77c09b0a801d4a0260c55befabdd4868fc9a163f0"
105
+ },
106
+ "invariants_failed": [],
107
+ "milestone_frames": {},
108
+ "milestones_reached": [],
109
+ "missing_groups": [
110
+ "numeric:score"
111
+ ],
112
+ "mode": "H",
113
+ "numeric_resolution": {
114
+ "health": "none",
115
+ "progress": "none",
116
+ "score": "none"
117
+ },
118
+ "observations_reached": [],
119
+ "observations_triggered": [],
120
+ "physics_frames_at_end": 1365,
121
+ "process_frames_at_end": 1364,
122
+ "reached": false,
123
+ "refusals": [],
124
+ "replans": 0,
125
+ "route_id": "twin_holds/C1/score_route",
126
+ "segment_clean": true,
127
+ "stall_frames": 1299,
128
+ "state_delta": 1.0,
129
+ "steps": 197,
130
+ "stop_reason": "ops_exhausted",
131
+ "success_before_all_levels": false,
132
+ "tier": 2,
133
+ "used_required": false,
134
+ "wall_ms": 7794.4
135
+ },
136
+ {
137
+ "clean_clear": false,
138
+ "deaths": 0,
139
+ "detail": "",
140
+ "devices_required": [
141
+ "tile#39"
142
+ ],
143
+ "devices_unresolved": [
144
+ "tile#39"
145
+ ],
146
+ "devices_used": [],
147
+ "errors": [
148
+ "inject.autoload_state could not be applied completely"
149
+ ],
150
+ "frames": 2717,
151
+ "frames_note": "frames is the trace row count; physics_frames_at_end keeps counting while the tree is paused for the agent and is not the game's clock; process_frames_at_end is Engine.get_process_frames() and can diverge from frames when --fixed-fps is off",
152
+ "goal_frame": -1,
153
+ "idle_baseline_id": "",
154
+ "injects": 0,
155
+ "interface": {
156
+ "extended_actions": [
157
+ {
158
+ "id": "confirm_build",
159
+ "why": "Places the currently selected building under the cursor and consumes the cursor selection state in one action; a verb the six canonical actions cannot express in one binding."
160
+ },
161
+ {
162
+ "id": "cycle_build",
163
+ "why": "Advances the build menu index without moving the cursor and updates the building preview; a separate verb the six canonical actions cannot express."
164
+ },
165
+ {
166
+ "id": "demolish",
167
+ "why": "Removes the building under the cursor and refunds half its cost; a verb the six canonical actions cannot express."
168
+ },
169
+ {
170
+ "id": "end_turn",
171
+ "why": "Commits the player's build actions, runs the rival script, and advances the round counter as one combined verb; the six canonical actions cannot express."
172
+ }
173
+ ],
174
+ "interface_version": 2,
175
+ "normalized_sha256": "16a3fb98937e30c36c7af21aa3d3283acc0271c6853615fbcf6edc2092cebaaa",
176
+ "source_sha256": "5b1fdbb523f094673e998cf77c09b0a801d4a0260c55befabdd4868fc9a163f0"
177
+ },
178
+ "invariants_failed": [],
179
+ "milestone_frames": {},
180
+ "milestones_reached": [],
181
+ "missing_groups": [
182
+ "numeric:score"
183
+ ],
184
+ "mode": "H",
185
+ "numeric_resolution": {
186
+ "health": "none",
187
+ "progress": "none",
188
+ "score": "none"
189
+ },
190
+ "observations_reached": [],
191
+ "observations_triggered": [],
192
+ "physics_frames_at_end": 2783,
193
+ "process_frames_at_end": 2782,
194
+ "reached": false,
195
+ "refusals": [],
196
+ "replans": 0,
197
+ "route_id": "twin_holds/C2/castle_capture_route",
198
+ "segment_clean": false,
199
+ "stall_frames": 2717,
200
+ "state_delta": 1.0,
201
+ "steps": 745,
202
+ "stop_reason": "ops_exhausted",
203
+ "success_before_all_levels": false,
204
+ "tier": 3,
205
+ "used_required": false,
206
+ "wall_ms": 11786.7
207
+ },
208
+ {
209
+ "clean_clear": false,
210
+ "deaths": 0,
211
+ "detail": "",
212
+ "devices_required": [
213
+ "tile#56"
214
+ ],
215
+ "devices_unresolved": [
216
+ "tile#56"
217
+ ],
218
+ "devices_used": [],
219
+ "errors": [
220
+ "inject.autoload_state could not be applied completely"
221
+ ],
222
+ "frames": 4775,
223
+ "frames_note": "frames is the trace row count; physics_frames_at_end keeps counting while the tree is paused for the agent and is not the game's clock; process_frames_at_end is Engine.get_process_frames() and can diverge from frames when --fixed-fps is off",
224
+ "goal_frame": -1,
225
+ "idle_baseline_id": "",
226
+ "injects": 0,
227
+ "interface": {
228
+ "extended_actions": [
229
+ {
230
+ "id": "confirm_build",
231
+ "why": "Places the currently selected building under the cursor and consumes the cursor selection state in one action; a verb the six canonical actions cannot express in one binding."
232
+ },
233
+ {
234
+ "id": "cycle_build",
235
+ "why": "Advances the build menu index without moving the cursor and updates the building preview; a separate verb the six canonical actions cannot express."
236
+ },
237
+ {
238
+ "id": "demolish",
239
+ "why": "Removes the building under the cursor and refunds half its cost; a verb the six canonical actions cannot express."
240
+ },
241
+ {
242
+ "id": "end_turn",
243
+ "why": "Commits the player's build actions, runs the rival script, and advances the round counter as one combined verb; the six canonical actions cannot express."
244
+ }
245
+ ],
246
+ "interface_version": 2,
247
+ "normalized_sha256": "16a3fb98937e30c36c7af21aa3d3283acc0271c6853615fbcf6edc2092cebaaa",
248
+ "source_sha256": "5b1fdbb523f094673e998cf77c09b0a801d4a0260c55befabdd4868fc9a163f0"
249
+ },
250
+ "invariants_failed": [],
251
+ "milestone_frames": {},
252
+ "milestones_reached": [],
253
+ "missing_groups": [
254
+ "numeric:score"
255
+ ],
256
+ "mode": "H",
257
+ "numeric_resolution": {
258
+ "health": "none",
259
+ "progress": "none",
260
+ "score": "none"
261
+ },
262
+ "observations_reached": [],
263
+ "observations_triggered": [],
264
+ "physics_frames_at_end": 4841,
265
+ "process_frames_at_end": 4840,
266
+ "reached": false,
267
+ "refusals": [],
268
+ "replans": 0,
269
+ "route_id": "twin_holds/C3/advanced_score_route",
270
+ "segment_clean": false,
271
+ "stall_frames": 4775,
272
+ "state_delta": 1.0,
273
+ "steps": 1475,
274
+ "stop_reason": "ops_exhausted",
275
+ "success_before_all_levels": false,
276
+ "tier": 4,
277
+ "used_required": false,
278
+ "wall_ms": 17106.8
279
+ },
280
+ {
281
+ "clean_clear": false,
282
+ "deaths": 0,
283
+ "detail": "",
284
+ "devices_required": [
285
+ "L1/tile#25",
286
+ "L2/tile#39",
287
+ "L3/tile#56"
288
+ ],
289
+ "devices_unresolved": [
290
+ "L1/tile#25",
291
+ "L2/tile#39",
292
+ "L3/tile#56"
293
+ ],
294
+ "devices_used": [],
295
+ "errors": [],
296
+ "frames": 8921,
297
+ "frames_note": "frames is the trace row count; physics_frames_at_end keeps counting while the tree is paused for the agent and is not the game's clock; process_frames_at_end is Engine.get_process_frames() and can diverge from frames when --fixed-fps is off",
298
+ "goal_frame": -1,
299
+ "idle_baseline_id": "",
300
+ "injects": 0,
301
+ "interface": {
302
+ "extended_actions": [
303
+ {
304
+ "id": "confirm_build",
305
+ "why": "Places the currently selected building under the cursor and consumes the cursor selection state in one action; a verb the six canonical actions cannot express in one binding."
306
+ },
307
+ {
308
+ "id": "cycle_build",
309
+ "why": "Advances the build menu index without moving the cursor and updates the building preview; a separate verb the six canonical actions cannot express."
310
+ },
311
+ {
312
+ "id": "demolish",
313
+ "why": "Removes the building under the cursor and refunds half its cost; a verb the six canonical actions cannot express."
314
+ },
315
+ {
316
+ "id": "end_turn",
317
+ "why": "Commits the player's build actions, runs the rival script, and advances the round counter as one combined verb; the six canonical actions cannot express."
318
+ }
319
+ ],
320
+ "interface_version": 2,
321
+ "normalized_sha256": "16a3fb98937e30c36c7af21aa3d3283acc0271c6853615fbcf6edc2092cebaaa",
322
+ "source_sha256": "5b1fdbb523f094673e998cf77c09b0a801d4a0260c55befabdd4868fc9a163f0"
323
+ },
324
+ "invariants_failed": [],
325
+ "milestone_frames": {},
326
+ "milestones_reached": [],
327
+ "missing_groups": [],
328
+ "mode": "H",
329
+ "numeric_resolution": {
330
+ "health": "none",
331
+ "progress": "none",
332
+ "score": "none"
333
+ },
334
+ "observations_reached": [],
335
+ "observations_triggered": [],
336
+ "physics_frames_at_end": 8928,
337
+ "process_frames_at_end": 8927,
338
+ "reached": false,
339
+ "refusals": [],
340
+ "replans": 0,
341
+ "route_id": "twin_holds/L5/whole_game_clear",
342
+ "segment_clean": true,
343
+ "stall_frames": 8921,
344
+ "state_delta": 1.0,
345
+ "steps": 2423,
346
+ "stop_reason": "ops_exhausted",
347
+ "success_before_all_levels": false,
348
+ "tier": 5,
349
+ "used_required": false,
350
+ "wall_ms": 17611.5
351
+ }
352
+ ]
minimax/mode1/twin_holds/evaluation/reproduction/stderr.log ADDED
File without changes
minimax/mode1/twin_holds/evaluation/reproduction/stdout.log ADDED
File without changes
minimax/mode1/twin_holds/evaluation/reproduction/summary.txt ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ submission=game
2
+ task_id=twin_holds
3
+ tier=D2
4
+ mode=X_CPU
5
+ modality=Mv
6
+ score_lo=0.506579
7
+ score_hi=0.690789
8
+ measured_weight_share=0.760000
9
+ coverage=0.881579
10
+ route_sha256=f47e2bcb8a54c0f3e0de97b33fe68a540677c529b27e4afd3bf275bd97d29952
minimax/mode1/twin_holds/evaluation/reproduction/truth_snapshot.json ADDED
@@ -0,0 +1,281 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "declared_actions": [
3
+ "gb_left",
4
+ "gb_right",
5
+ "gb_up",
6
+ "gb_down",
7
+ "gb_jump",
8
+ "gb_action",
9
+ "gb_pause",
10
+ "gb_reset"
11
+ ],
12
+ "driver_sha256": "7778e6190895bfeb10af8beffeec678ec3b03848b53a674477bcdf796a0c0742",
13
+ "endings": {
14
+ "defeat": "res://scenes/defeat.tscn",
15
+ "victory": "res://scenes/victory.tscn"
16
+ },
17
+ "engine": "4.5.1",
18
+ "harness": {
19
+ "contract_version": "1",
20
+ "gb_capture_probe.gd": "sha256:204e194e0071fa165070ba3af7b66553fa77122a973737bc293d25b4bc46d4df",
21
+ "gb_probe.gd": "sha256:39609c49a433ca5f7a05f2c3cc583693be12614dbe33b80cb5d115da290931c3",
22
+ "gb_route_driver.gd": "sha256:75645e1b23545ce6c18e3af0c519cd532956ac7cf4b9f50288da2403d39d6945",
23
+ "gb_truth_driver.gd": "sha256:7778e6190895bfeb10af8beffeec678ec3b03848b53a674477bcdf796a0c0742"
24
+ },
25
+ "interface": {
26
+ "extended_actions": [
27
+ {
28
+ "id": "confirm_build",
29
+ "why": "Places the currently selected building under the cursor and consumes the cursor selection state in one action; a verb the six canonical actions cannot express in one binding."
30
+ },
31
+ {
32
+ "id": "cycle_build",
33
+ "why": "Advances the build menu index without moving the cursor and updates the building preview; a separate verb the six canonical actions cannot express."
34
+ },
35
+ {
36
+ "id": "demolish",
37
+ "why": "Removes the building under the cursor and refunds half its cost; a verb the six canonical actions cannot express."
38
+ },
39
+ {
40
+ "id": "end_turn",
41
+ "why": "Commits the player's build actions, runs the rival script, and advances the round counter as one combined verb; the six canonical actions cannot express."
42
+ }
43
+ ],
44
+ "interface_version": 2,
45
+ "normalized_sha256": "16a3fb98937e30c36c7af21aa3d3283acc0271c6853615fbcf6edc2092cebaaa",
46
+ "source_sha256": "5b1fdbb523f094673e998cf77c09b0a801d4a0260c55befabdd4868fc9a163f0"
47
+ },
48
+ "levels": [
49
+ {
50
+ "bound_actions": [
51
+ "gb_left",
52
+ "gb_right",
53
+ "gb_up",
54
+ "gb_down",
55
+ "gb_jump",
56
+ "gb_action",
57
+ "gb_pause",
58
+ "gb_reset"
59
+ ],
60
+ "bounds": {
61
+ "max3": [
62
+ 0.0,
63
+ 0.0,
64
+ 0.0
65
+ ],
66
+ "min3": [
67
+ 0.0,
68
+ 0.0,
69
+ 0.0
70
+ ],
71
+ "plane": "xy",
72
+ "valid": true
73
+ },
74
+ "collect": {
75
+ "alive_after": 0,
76
+ "alive_before": 0,
77
+ "attempted": false,
78
+ "delta": 0,
79
+ "detail": "this level declares no gb_collectible, so there is nothing to pick up",
80
+ "effect": {},
81
+ "target": ""
82
+ },
83
+ "cycles": [],
84
+ "cycles_capped": false,
85
+ "declared_scene": "res://scenes/main.tscn",
86
+ "entry_method": "none",
87
+ "errors": [],
88
+ "goal": {
89
+ "attempted": false,
90
+ "changed": false,
91
+ "detail": "this level declares no gb_goal, so there is no transition to observe",
92
+ "effect": {
93
+ "complete_trigger": false,
94
+ "kind": "observable_progress",
95
+ "observation_missing": false,
96
+ "progress_before": null
97
+ },
98
+ "frames_to_change": -1,
99
+ "scene_after": "res://scenes/main.tscn",
100
+ "scene_before": "res://scenes/main.tscn",
101
+ "target": ""
102
+ },
103
+ "groups": {
104
+ "gb_checkpoint": {
105
+ "alive": 0,
106
+ "normalised": [],
107
+ "total": 0,
108
+ "world": []
109
+ },
110
+ "gb_collectible": {
111
+ "alive": 0,
112
+ "normalised": [],
113
+ "total": 0,
114
+ "world": []
115
+ },
116
+ "gb_door": {
117
+ "alive": 0,
118
+ "normalised": [],
119
+ "total": 0,
120
+ "world": []
121
+ },
122
+ "gb_enemy": {
123
+ "alive": 0,
124
+ "normalised": [],
125
+ "total": 0,
126
+ "world": []
127
+ },
128
+ "gb_goal": {
129
+ "alive": 0,
130
+ "normalised": [],
131
+ "total": 0,
132
+ "world": []
133
+ },
134
+ "gb_hazard": {
135
+ "alive": 0,
136
+ "normalised": [],
137
+ "total": 0,
138
+ "world": []
139
+ },
140
+ "gb_interactive": {
141
+ "alive": 0,
142
+ "normalised": [],
143
+ "total": 0,
144
+ "world": []
145
+ },
146
+ "gb_player": {
147
+ "alive": 1,
148
+ "normalised": [
149
+ {
150
+ "valid": false,
151
+ "x": 0.0,
152
+ "y": 0.0
153
+ }
154
+ ],
155
+ "total": 1,
156
+ "world": [
157
+ [
158
+ 0.0,
159
+ 0.0,
160
+ 0.0
161
+ ]
162
+ ]
163
+ }
164
+ },
165
+ "numeric": {},
166
+ "numeric_source": {},
167
+ "reached": true,
168
+ "scene": "res://scenes/main.tscn",
169
+ "series": [
170
+ {
171
+ "alive": {
172
+ "gb_checkpoint": 0,
173
+ "gb_collectible": 0,
174
+ "gb_door": 0,
175
+ "gb_enemy": 0,
176
+ "gb_goal": 0,
177
+ "gb_hazard": 0,
178
+ "gb_interactive": 0,
179
+ "gb_player": 1
180
+ },
181
+ "frame": 90,
182
+ "numeric": {},
183
+ "phase": "settle",
184
+ "player": [
185
+ 0.0,
186
+ 0.0,
187
+ 0.0
188
+ ],
189
+ "scene_path": "res://scenes/main.tscn"
190
+ },
191
+ {
192
+ "alive": {
193
+ "gb_checkpoint": 0,
194
+ "gb_collectible": 0,
195
+ "gb_door": 0,
196
+ "gb_enemy": 0,
197
+ "gb_goal": 0,
198
+ "gb_hazard": 0,
199
+ "gb_interactive": 0,
200
+ "gb_player": 1
201
+ },
202
+ "frame": 90,
203
+ "numeric": {},
204
+ "phase": "settle",
205
+ "player": [
206
+ 0.0,
207
+ 0.0,
208
+ 0.0
209
+ ],
210
+ "scene_path": "res://scenes/main.tscn"
211
+ }
212
+ ],
213
+ "spawn": [
214
+ 0.0,
215
+ 0.0,
216
+ 0.0
217
+ ],
218
+ "spawn_norm": {
219
+ "valid": false,
220
+ "x": 0.0,
221
+ "y": 0.0
222
+ },
223
+ "stop_reason": "no_goal"
224
+ }
225
+ ],
226
+ "liveness": [
227
+ {
228
+ "action": "gb_left",
229
+ "detail": "gb_left differs from the idle control on text (delta 1.0 > 0.5)",
230
+ "idle_baseline_id": "truth/L0#idle420",
231
+ "live": true,
232
+ "via": "text"
233
+ },
234
+ {
235
+ "action": "gb_right",
236
+ "detail": "gb_right differs from the idle control on text (delta 1.0 > 0.5)",
237
+ "idle_baseline_id": "truth/L0#idle420",
238
+ "live": true,
239
+ "via": "text"
240
+ },
241
+ {
242
+ "action": "gb_up",
243
+ "detail": "gb_up differs from the idle control on text (delta 1.0 > 0.5)",
244
+ "idle_baseline_id": "truth/L0#idle420",
245
+ "live": true,
246
+ "via": "text"
247
+ },
248
+ {
249
+ "action": "gb_down",
250
+ "detail": "gb_down is indistinguishable from the idle control on every signature component; whatever the world did, it did without being asked; also no effect under repeated taps (1 frame on, 5 off)",
251
+ "idle_baseline_id": "truth/L0#idle420",
252
+ "live": false,
253
+ "via": "none"
254
+ },
255
+ {
256
+ "action": "gb_jump",
257
+ "detail": "gb_jump differs from the idle control on text (delta 1.0 > 0.5)",
258
+ "idle_baseline_id": "truth/L0#idle420",
259
+ "live": true,
260
+ "via": "text"
261
+ },
262
+ {
263
+ "action": "gb_action",
264
+ "detail": "gb_action differs from the idle control on text (delta 1.0 > 0.5)",
265
+ "idle_baseline_id": "truth/L0#idle420",
266
+ "live": true,
267
+ "via": "text"
268
+ }
269
+ ],
270
+ "no_input_no_win": true,
271
+ "no_input_stop_reason": "budget_frames",
272
+ "notes": [
273
+ "liveness deadline derived from this project's own structural pass: 57.8 ms/frame median, 57.8 ms/frame worst",
274
+ "liveness sweep: 5 live / 1 dead against the 420-frame idle control truth/L0#idle420"
275
+ ],
276
+ "probe_sha256": "39609c49a433ca5f7a05f2c3cc583693be12614dbe33b80cb5d115da290931c3",
277
+ "project": "game",
278
+ "read_failure": "",
279
+ "taken_at": "2026-09-24T05:54:21+00:00",
280
+ "version": "1"
281
+ }
minimax/mode1/twin_holds/metadata.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "game": "twin_holds",
3
+ "mode": "brief",
4
+ "case_id": "",
5
+ "status": "completed",
6
+ "phase": "completed",
7
+ "agent_exit_code": 0,
8
+ "source_result": "remote_sync",
9
+ "source_cell": "remote_sync/twin_holds__brief",
10
+ "reference_video_requested": true,
11
+ "reference_video_copied_into_package": true,
12
+ "materialization": "remote_evaluation_import"
13
+ }