idea_world_labDEV JOURNAL
Sunday, June 28, 2026

Qwen Godot Code JSONL Evidence Matching Test Checklist

Date created: June 28, 2026

Purpose

Generate 50 Godot 3 code chunks with Qwen and verify that the yes/no judgments are correctly separated using the same method as the JSONL evidence matching test conducted yesterday.

This test is not about whether the model knows Godot knowledge. It is a test to determine whether, when SOURCE_CODE and JSONL are provided together, there is a string/API/pattern evidence in the JSONL that directly matches the actual code chunk.

In other words, relevant JSONL should be marked as yes, and irrelevant JSONL should be discarded as no.

Test Method

For each code chunk, attach at least two types of JSONL for testing. However, because there may be common syntax that is the same in Godot 3 and Godot 4, not every feature is treated as Godot‑3‑only syntax.

JSONL Type Expected Response Meaning
Correct JSONL yes At least one of source_api, source_pattern, match_terms, required_when_seen_in_code, before_code in the JSONL directly matches the code chunk
Incorrect JSONL no The JSONL provides evidence that shares only a different API, node, system, or a broad term
JSONL
Qwen direct-evidence validator prompt
SOURCE_CODE chunk

The actual verification request is to check whether Qwen returns only yes or no when JSONL + prompt + chunk are submitted together.

For common syntax, the test is based on a single code chunk. In this case, the correct JSONL contains a description or pattern of the relevant code/function, while the incorrect JSONL contains a description of a completely different function or system. Cases where the expected response is yes and cases where it is no are not distinguished by different code, but by whether there is direct evidence within the JSONL.

Repetitive Generation Loop

The overall goal is to test all 50 features. However, today we will manually verify only up to 5, and thereafter reduce the process by first analyzing the yes/no response pattern from the accumulated results.

Today's goal: 5  
Overall goal: 50/50

After filling five items, do not forcefully increase the number of new entries; first examine the common syntax/version differences and the patterns of false positives and false negatives for each table.

The test creates data by repeatedly following the flow below.

1. Give Qwen one Godot feature to test.  
2. First indicate whether the feature is common syntax for Godot 3/4, specific to Godot 3, or specific to Godot 4.  
3. If it is common syntax, create a single code chunk.  
4. If it is common syntax, create one correct JSONL for that code/function and one incorrect JSONL for a completely different function.  
5. If it is not common syntax, create separate JSONLs for Godot 4‑only and Godot 3‑only and test them.  
6. All JSONLs should be formatted according to the target table columns.  
7. Insert the JSONL + SOURCE_CODE chunk into the validation prompt and check “yes”/“no”.  
8. Record whether the expected response matches the actual response.

The core is not the quality of code generation, but whether the JSONL evidence matching judgment is stable. Therefore, the correct JSONL should yield yes, and the incorrect JSONL should yield no.

Common Syntax Guidelines

Syntax that remains the same in Godot 3 and Godot 4 should not be treated as a version‑specific test. For example, there may be code used on both sides such as _ready(), _process(delta), default variable assignments, print().

In such cases, view it as follows.

Code Nature Test Method Expectation
Godot 3/4 common syntax Test the same code chunk against the function’s JSONL and a completely different function’s JSONL in one go The yes/no decision should be based solely on whether the JSONL directly supports the evidence
Godot 3‑specific syntax Using the Godot 3 chunk as a basis, compare Godot 3‑only JSONL with Godot 4‑only JSONL yes if the actual Godot 3 string/pattern appears in the JSONL
Godot 4‑specific syntax Using the Godot 4 chunk as a basis, compare Godot 4‑only JSONL with Godot 3‑only JSONL yes if the actual Godot 4 string/pattern appears in the JSONL
Feature description independent of version differences The code must have direct evidence in the JSONL content/code_blocks regardless of version no unless there is a broad‑sense similarity

Therefore, the record table must always indicate whether the syntax is common. This allows us later to distinguish whether a common syntax was forcedly judged as migration evidence, or whether a version‑specific syntax was treated as common.

Redefinition Memo

Testing items 4 and 5 showed that it is difficult to make a definitive judgment. In particular, the response for the same code chunk changed depending on whether the JSONL was created based on Godot 3 or Godot 4, and that difference itself became a subject of pattern analysis.

Thus, for now we do not finalize “good/bad”, but first record the raw responses as shown below.

Category JSONL Creation Basis Test Code Current Expected Flow
Common syntax Based on Godot 3 Common code or semantically equivalent Godot 3/4 code yes, no, yes, no, yes, no
Common syntax Based on Godot 4 Common code or semantically equivalent Godot 3/4 code yes, no, yes, no, yes, no
Version difference Based on Godot 3 Godot 3 code yes, no, yes, no, yes, no
Version difference Based on Godot 3 Godot 4 code Mostly no. However, if api_mapping or a prototype explicitly contains evidence for a Godot 3 → 4 conversion, some yes may appear, so we examine the raw response separately
Version difference Based on Godot 4 Godot 3 code Mostly no. However, if the JSONL contains both source and target strings simultaneously, some yes may appear, so we examine the raw response separately
Version difference Based on Godot 4 Godot 4 code yes, no, yes, no, yes, no

The response order is generally considered as docs_chunks related, docs_chunks unrelated, api_mapping related, api_mapping unrelated, label_prototypes related, label_prototypes unrelated.

Item 4 was previously recorded as a structured entry, but because the Godot 3 test produced a flow like no, no, yes, no, yes, no, it is excluded from definitive judgments. From now on, this document serves as an observational record focusing on “which responses fluctuate under which criteria” rather than “how many were correct”.

Generation Request Example

Below is a request example for testing the first feature, the _ready() function initialization and viewport size setting.

The JSONL format and the purpose of each JSONL are separated into a different document.

Initialize the _ready() function and provide one Godot 3 chunk and one Godot 4 chunk that match the viewport size settings.

First, indicate whether this functionality uses a common syntax for both Godot 3 and Godot 4.  
If it is a common syntax, note that the same code can be used for testing.

Also, provide a correct JSONL entry that conforms to the `docs_chunks` format, as well as an incorrect JSONL entry.

This example is based on docs_chunks. For api_mapping and label_prototypes, create correct JSONL and incorrect JSONL that match each JSONL format and purpose in the same way, and verify “yes”/“no” using the same validation prompt.

The validation input will look like this.

JSONL:
<answer or incorrect JSONL one line>

PROMPT:
<direct‑evidence validator prompt>

SOURCE_CODE:
<Godot 3 code chunk, Godot 4 code chunk, or common‑syntax code chunk>

The prompt is sent as if to judge the direct explanatory basis or transformation basis between SOURCE_CODE and JSONL as shown below.

You are a JSONL evidence matching judge.

Determine whether the JSONL below directly contains explanatory evidence or transformation evidence for the SOURCE_CODE below.

Judgment criteria:
- It is a “yes” only if one of the JSONL schemas matches exactly with an actual string or API call inside the SOURCE_CODE.
- Simply sharing broad words like Godot, Godot3, Godot4, migration, 2D, physics does not count as related.
- If the JSONL concerns a different API, node, or system, the answer is “no.”
- Do not use any Godot knowledge you have; rely solely on the string evidence written in the JSONL.
- The response must be exactly one word: either “yes” or “no.”

Judgment Matrix

Expected Response Actual Response Interim Interpretation Content to Record
Yes Yes Matches expectation Recognize proper JSONL as direct evidence
No No Matches expectation Discard incorrect JSONL
Yes No Needs re‑examination Missed despite direct evidence. Candidate false negative
No Yes Needs re‑examination Accepted without direct evidence. Candidate false positive
Yes or No Other answer Needs re‑examination Violation of response format. Includes explanations, JSON, empty response, ambiguous answer

Observation Checklist

After completing 50 sample tests per table, verify the following items.

Check Criterion Result
Response format Every response outputs only a single Yes or No
Relevant JSONL response In relevant JSONL tests, Yes responses appear sufficiently reliably
Irrelevant JSONL response In irrelevant JSONL tests, No responses appear sufficiently reliably
False positive record Cases where No is correct but Yes was given are recorded separately
False negative record Cases where Yes is correct but No was given are recorded separately
Broad word filter Words such as Godot, migration, 2D, physics alone do not yield Yes
Direct string evidence A Yes judgment includes a JSONL field that matches the actual code string/API/pattern
Common syntax distinction Samples that are common syntax for Godot 3/4 were tested with the same code chunk for expected Yes/expected No JSONL
Table‑wise differences Discrepancies among docs_chunks, api_mapping, label_prototypes are recorded showing how they differ
Reproducibility Re‑entering the same input does not cause the judgment to fluctuate greatly
Next decision Decide whether this prompt and judgment method can be passed on to the next PoC

Test Record Template

Copy the table below and fill in the test results.

ID Feature Common Syntax? Table JSONL Type Expected Response Actual Response Judgment Directly Matching Field Notes
G03-001-A _ready() function initialization and viewport size setting Proper JSONL Yes
G03-001-B _ready() function initialization and viewport size setting Incorrect JSONL No

Table‑wise Records

docs_chunks

Verify whether the official documentation explanatory evidence matches the code chunk directly.

No. Feature Common Syntax Related JSONL Result Irrelevant JSONL Result Note
1 _ready() function initialization and viewport size setting Common syntax Related JSONL yes observed Irrelevant JSONL no observed Docs_chunks justification containing Node._ready, get_viewport().get_visible_rect().size, DisplayServer.window_set_size is yes; _process(delta) explanation JSONL is judged no
2 _process(delta) per‑frame update loop Common syntax Related JSONL yes observed Irrelevant JSONL no observed Docs_chunks justification containing _process(delta), position.x +=, speed * delta is yes; Vector2.lerp explanation JSONL is judged no
3 Player movement input handling (WASD or arrow keys) Common syntax Related JSONL yes observed Irrelevant JSONL no observed Docs_chunks justification containing Input.is_action_pressed, Vector2.ZERO, direction.normalized(), velocity, move_and_slide() is yes; TileMapLayer.set_cell() explanation JSONL is judged no
4 Apply player movement speed and acceleration Version difference Existing bidirectional yes records are excluded from final judgment A flow in Godot 3 docs gave no/no, so it is re‑examined Needs redefinition of criteria because of raw responses no, no, yes, no, yes, no
5 Limit the player’s maximum speed Version difference First observation based on Godot 3. Reverse‑direction raw response for Godot 4: Godot 4 code yes/yes, Godot 3 code yes/yes In reverse direction for Godot 4, all docs candidates were marked yes CharacterBody2D, max_speed, velocity = input_vector * max_speed, move_and_slide(), Input.is_action_pressed appear as overlapping strings; need pattern analysis to narrow functional scope
6 Spawn and fire projectile on mouse click Version difference Godot 3/4 explanations match code basis and are included in the overall 24/24 pass flow Other code explanations in JSONL are discarded as expected Differences in PackedScene.instance() vs. instantiate() and mouse input handling separate docs candidates by code basis
7 Manage projectile movement and time‑to‑live (TTL) Version difference Docs_chunks justification is checked against projectile movement/TTL code Irrelevant docs candidates are discarded as expected Mismatch among 22/24 occurs where the Godot 3 conversion evidence in api_mapping/label_prototypes is also attached as yes to Godot 4 code
8 Enemy AI logic for tracking the player Version difference Godot 4 docs candidate falsely attached as yes to Godot 3 code (false positive) Other code candidates also show yes for both Godot 3/4, requiring re‑examination Overall 21/24; docs_chunks sometimes broadly treat the same tracking/movement topic or similar API clues as justification
9 Enemy movement speed and rotation logic Version difference Docs justification for speed and rotation matches code expectations for each version Irrelevant docs candidates are discarded as expected 24/24 pass. The purpose and final behavior of movement/rotation are relatively clear, so docs candidates are stable
10 Hide the player when it leaves the screen Common syntax Explanations for off‑screen detection, global_position, get_viewport_rect().size, hide() are organized as yes Other code explanations are organized as no Common syntax 6/6 pass. Docs justification and migration‑type candidates are well separated
11 Collision detection (Area2D or PhysicsBody) Version difference Docs candidates that explain collision events, detection targets, collision callbacks/physics body relations are compared with code chunks Distinguish from candidates that describe post‑collision logic such as damage calculation or health handling In sample-11, verify that evidence for “detecting” a collision does not get mixed with evidence for “handling” after the collision
12 Damage calculation and application on collision Common syntax Docs justification that calculates damage values from a collision result and applies them to the target’s health is compared with code chunks Distinguish from candidates that only describe simple collision detection, score updates, or game‑over logic sample-12 checks whether the core of the docs justification is the damage formula/application flow rather than the collision itself
13 Player health reduction logic Common syntax Docs justification that reduces the player’s health variable, processes hits, and handles lower‑bound limits is compared with code chunks Distinguish from candidates about enemy health reduction or score increase sample-13 must determine whether the shared health string refers to the player or the enemy for justification purposes
14 Game‑over handling when player health reaches 0 Common syntax Docs justification that checks health <= 0, switches to a game‑over state, and handles scene transition/pausing is compared with code chunks Distinguish from simple health reduction or enemy removal candidates sample-14 verifies that the docs justification matches the post‑zero state rather than just the health decrement
15 Enemy health reduction logic Common syntax Docs justification that reduces the enemy’s health variable and processes hits is compared with code chunks Distinguish from player health reduction or game‑over candidates sample-15 focuses on whether the justification correctly identifies the target object as enemy versus player
16 Remove enemy and add score when its health reaches 0 Common syntax Docs justification that handles enemy removal (queue_free()/deactivation) and score increment flow is compared with code chunks Distinguish from simple health reduction or score‑display candidates sample-16 checks that the justification covers the combined final actions of removal and scoring
17 Score variable update Common syntax Docs justification that updates the score variable (increase/decrease, cumulative value) is compared with code chunks Distinguish from candidates that only update a label display or UI rendering sample-17 separates data‑value updating from screen‑display updating
18 Score text (Label) update function Common syntax Docs justification that reflects the score on screen via Label.text/string formatting is compared with code chunks Distinguish from candidates that only modify the score variable sample-18 verifies that the justification is about UI text reflection rather than the score value itself
19 Background music (BGM) playback and volume control Common syntax Docs justification that covers BGM playback node, bus volume, looping/volume adjustment is compared with code chunks Distinguish from single‑shot SFX playback candidates sample-19 separates continuous BGM from short SFX calls for verification
20 Sound effect (SFX) playback function Common syntax Docs justification that covers creating/calling an audio player for one‑off SFX playback is compared with code chunks Distinguish from BGM looping/volume‑control candidates sample-20 ensures that generic audio terms alone do not incorrectly attach BGM justification

| 21 | Screen Shake effect implementation | Version differences | Compare code chunk with explanations of camera offset, shake intensity/duration, Tween or random offset rationale | Distinguish from enemy movement, camera tracking, UI animation candidates | sample-21 checks whether it directly explains the screen shake result even though the word “camera” appears | | 22 | Particle system creation and position matching | Version differences | Compare code chunk with explanations of particle node creation, position synchronization, emission start rationale | Distinguish from generic node creation, projectile creation, animation candidates | sample-22 verifies whether the creation target is a particle and whether position matching and emission flow are included | | 23 | Scene Change function | Version differences | Compare code chunk with explanations of scene change request, SceneTree call, target scene path rationale | Distinguish from candidates like menu display, pause, resource loading that are not actual scene changes | sample-23 separates whether it actually calls a screen/scene change or merely explains simple loading or UI display | | 24 | Main menu scene loading and display | Version differences | Compare code chunk with explanations of loading the main menu scene and displaying it on screen | Distinguish from simple scene switches, pause, resource preload candidates | sample-24 checks whether the flow actually displays the menu scene or describes handling of another scene | | 25 | Game pause toggle | Common syntax | Compare code chunk with explanations of toggling pause state, get_tree().paused, pause/resume based on input | Distinguish from candidates like opening a menu, scene change, game over | sample-25 verifies whether it changes the pause state itself or just shows a UI | | 26 | Keyboard input state check (Input.is_key_pressed) | Version differences | Compare code chunk with explanations of Input.is_key_pressed and key constant/code verification | Distinguish from action‑map input, mouse input, movement handling candidates | sample-26 separates the keyboard state query itself from the overall movement logic | | 27 | Get mouse (cursor) coordinates | Common syntax | Compare code chunk with explanations of querying viewport/global mouse position | Distinguish from mouse‑click firing, touch input, cursor display candidates | sample-27 checks whether the code reads coordinates rather than handling a click event | | 28 | Random number generation function | Version differences | Compare code chunk with explanations of RNG initialization, random number generation, range specification | Distinguish from random position distribution, enemy spawn timer candidates | sample-28 separates the number‑generation function itself from gameplay logic that uses the number | | 29 | Enemy spawn at specific intervals | Version differences | Compare code chunk with explanations of periodic enemy creation based on Timer/timeout/accumulated time | Distinguish from candidates like random position calculation or enemy movement AI | sample-29 verifies whether the time interval and spawn call are directly evidenced | | 30 | Random distribution of spawned enemy positions | Common syntax | Compare code chunk with explanations of random coordinate range, spawn area, position distribution | Distinguish from timer candidates that spawn at specific times | sample-30 checks whether it explains where enemies are placed rather than when they are created | | 31 | Player animation state transition (Idle, Run, Jump) | Version differences | Compare code chunk with explanations of changing animation names based on input/speed/state | Distinguish from candidates controlling animation playback speed or timing | sample-31 separates state transitions from playback‑time control | | 32 | Animation playback time control | Common syntax | Compare code chunk with explanations of controlling animation speed, seek, advance, playback position | Distinguish from Idle/Run/Jump state‑transition candidates | sample-32 checks whether it adjusts playback time/speed rather than selecting which animation to play | | 33 | Collision shape size adjustment | Version differences | Compare code chunk with explanations of CollisionShape2D/Shape2D size properties, RectangleShape2D size/extents series | Distinguish from collision detection, damage handling, Area2D signal candidates | sample-33 verifies whether the code adjusts the shape/size of the collision area rather than detecting a collision | | 34 | Apply physics gravity | Version differences | Compare code chunk with explanations of accumulating gravity and delta into velocity and applying it via move function | Distinguish from jump force, landing detection, Area gravity setting candidates | sample-34 separates gravity accumulation flow from jump/landing judgment verification | | 35 | Apply jump force and detect landing | Version differences | Compare code chunk with explanations of is_on_floor(), jump velocity, input conditions, landing state | Distinguish from candidates that only apply gravity or handle animation state transitions | sample-35 checks whether jump input and floor check are explained within the same movement flow | | 36 | Slide handling when colliding with walls | | | | | | 37 | Player direction flip (Facing Left/Right) | | | | | | 38 | Ammo count decrement | | | | | | 39 | Reload state transition when magazine is empty | | | | | | 40 | UI button click event binding | | | | | | 41 | Settings menu open/close toggle | | | | | | 42 | Text update when language changes | | | | | | 43 | Save game JSON serialization | | | | | | 44 | Load game JSON deserialization | | | | | | 45 | File read/write error handling | | | | | | 46 | Network connection status check | | | | | | 47 | Synchronization via remote function (RPC) call | | | | | | 48 | Dynamic scene resource loading | | | | | | 49 | Memory deallocation and resource unload | | | | | | 50 | Debug log output (print or print_debug) | | | | |

api_mapping

Verify that the evidence of how names, classes, functions, and symbols change from Godot 3 to Godot 4 directly matches the code chunks.

No. Feature Common Syntax? Related JSONL Result Irrelevant JSONL Result Note
1 _ready() function initialization and viewport size setting Common syntax Related JSONL yes observed Irrelevant JSONL no observed Mapping that includes DisplayServer.window_set_size, Vector2i is judged yes; mapping with AudioServer.get_bus_volume_db is judged no
2 _process(delta) per‑frame update loop Common syntax Related JSONL yes observed Irrelevant JSONL no observed Stable mapping with position.x, delta, _process is yes; mapping with get_node("Sprite2D") is judged no
3 Player movement input handling (WASD or arrow keys) Common syntax Related JSONL yes observed Irrelevant JSONL no observed Mapping with CharacterBody2D.move_and_slide, velocity, Vector2 is yes; mapping with Node.connect/signal connect is judged no
4 Apply player movement speed and acceleration Version difference Existing bidirectional yes records are excluded from final judgment In Godot 3 inspection, the api_mapping side splits into yes/no Need to re‑examine how mappings such as move_and_slide, CharacterBody3D, move_toward, velocity.x, velocity.z, target_velocity react depending on code version
5 Limit the player’s maximum speed Version difference First observation based on Godot 3. Reverse‑direction raw response for Godot 4: Godot 4 code yes/yes, Godot 3 code no/no In Godot 4 code both mapping candidates are yes; in Godot 3 code both are no Based on differences in move_and_slide, velocity, limit_speed, collision normal return; need pattern analysis to decide how to split expected values between Godot 4 and Godot 3 syntax
6 Create and fire a projectile on mouse click Version difference Projectile‑creation API differences between Godot 3/4 and input handling mapping match as expected Irrelevant mapping candidates are also discarded Source/target forms such as PackedScene.instance() vs. instantiate() are separated and included in the 24/24 pass flow
7 Manage projectile movement and lifespan (time‑to‑live) Version difference Conversion mapping for Godot 3 is captured as yes in the Godot 3 code The same mapping is also marked yes in the Godot 4 code, showing inconsistency Overall 22/24; if it is already Godot 4 code, conversion is not applicable, so the verification prompt must more clearly check source‑side status
8 Enemy AI logic that tracks the player Version difference The api_mapping side was not the direct cause of the mismatch at #8 Irrelevant mapping candidates are discarded as expected The overall mismatch originates from docs_chunks. Mapping records whether the tracking AI code changes across versions as an auxiliary axis
9 Enemy movement speed and rotation logic Version difference Rotation/movement related mapping matches the code base correctly Irrelevant mapping candidates are also discarded as expected 24/24 pass. Differences in movement speed and rotation APIs are relatively well separated
10 Player disappears when moving off‑screen Common syntax Since it is common code, no conversion is needed for api_mapping‑related JSONL Irrelevant conversion candidates are no flow 6/6 pass. In common syntax the migration table is not attached unnecessarily
11 Collision detection (Area2D or PhysicsBody) Version difference Check whether the Area2D/PhysicsBody collision API or signal‑connection changes are needed for the current code Distinguish from damage‑application or health‑handling mappings sample-11 separates the detection API itself from subsequent processing logic for mapping assessment
12 Damage calculation and application on collision Common syntax Verify whether version‑specific API changes in damage application actually exist in the code Distinguish from mappings that only describe the collision‑detection signal sample-12 determines whether a mapping is required for the change or if it is merely a game‑logic description
13 Player health‑decrease logic Common syntax Verify whether version‑specific API changes for player health reduction are truly needed Distinguish from enemy health/score/game‑over mapping candidates sample-13 observes that most of this is pure game logic, so migration justification may be overly attached
14 Game‑over handling when player health reaches 0 Common syntax Check whether scene switching, pause, tree API changes for game over are directly present in the code Distinguish from simple health‑decrease mapping candidates sample-14 confirms whether the result‑state transition API is a mapping justification
15 Enemy health‑decrease logic Common syntax Verify whether actual Godot 3→4 API change evidence is needed for enemy health reduction Distinguish from player health or score handling mappings sample-15 should fall to no when the target object differs, even if a mapping candidate is found
16 Remove enemy and add score when enemy health reaches 0 Common syntax Check whether removal API, score‑update API, scene‑tree manipulation differences exist in the current code Distinguish from simple damage mapping or Label update mapping sample-16 separates which part of removal vs. score addition provides the mapping justification
17 Update score variable Common syntax Verify whether actual API change evidence is needed for updating the score variable Distinguish from UI text update or save/load mappings sample-17 ensures that plain variable arithmetic is not over‑rated as migration evidence
18 Score text (Label) update function Common syntax Check whether changes in Label text access or node reference style are required in the current code Distinguish from score‑value calculation mappings sample-18 checks whether Label.text style is common or has version‑specific changes
19 Background music (BGM) playback and volume control Common syntax Verify whether AudioServer, AudioStreamPlayer, bus‑volume changes are directly needed in the code Distinguish from one‑off SFX playback mappings sample-19 ensures that broad audio terms alone do not trigger a mapping
20 Sound effect (SFX) playback function Common syntax Verify whether changes in SFX playback API or node creation style are directly present in the code Distinguish from BGM loop/volume‑control mappings sample-20 separates conversion justification even though SFX and BGM share the same audio subsystem
21 Screen‑shake effect implementation Version difference Check whether version‑specific API changes exist in Tween, Camera2D, offset/random shake implementation Distinguish from camera‑tracking or general movement mappings sample-21 validates whether camera‑related candidates constitute a screen‑shake conversion basis

| 22 | Particle system creation and position matching | Version differences | Verify whether the changes related to Particles2D/GPUParticles2D, emitting, position/global_position are directly present in the code | Distinguish from projectile creation or generic node creation mapping | sample-22 separates the API changes specific to particle systems from the general creation logic | | 23 | Scene change function | Version differences | Verify whether the changes for the change_scene, change_scene_to_file, change_scene_to_packed family are directly present in the current code | Distinguish from simple load()/preload() or main‑menu display mapping | sample-23 checks that the scene‑change calls from Godot 3 and their replacements in Godot 4 are applied according to the actual code version | | 24 | Main‑menu scene loading and display | Version differences | Verify whether the changes for scene loading, instancing, and menu‑scene display are required in the current code | Distinguish from generic scene changes or resource preload mapping | sample-24 ensures that the purpose of showing the main menu and the scene‑API changes do not get mixed | | 25 | Game pause toggle | Common syntax | Verify whether the changes for pause mode/process mode and tree pause are actually needed in the current code | Distinguish from menu UI or game‑over mapping | sample-25 checks that migration mapping is not overly attached to the common pause‑toggle code | | 26 | Keyboard input state check (Input.is_key_pressed) | Version differences | Verify whether the changes for key constants, scancode/keycode, and Input.is_key_pressed directly match the code | Distinguish from action‑map movement handling or mouse‑input mapping | sample-26 separates the API changes for key‑state queries from gameplay logic that uses input | | 27 | Getting mouse (cursor) coordinates | Common syntax | Verify whether the mouse‑position query API requires version‑specific change justification | Distinguish from click‑projectile creation or touch‑input mapping | sample-27 ensures that unnecessary conversion justifications are not attached to coordinate‑reading code | | 28 | Random number generation function | Version differences | Verify whether the changes for randomize, RandomNumberGenerator, and range functions are directly present in the code | Distinguish from random spawn locations or spawn‑timer mapping | sample-28 separates the changes to the random‑number API itself from the purposes for which randomness is used | | 29 | Periodic enemy spawn | Version differences | Verify whether the Timer signal, timeout connection, and yield/await family changes are directly present in the current code | Distinguish from random enemy placement or enemy‑AI movement mapping | sample-29 checks both the periodic execution structure and the spawn‑target logic together | | 30 | Random distribution of spawned enemy positions | Common syntax | Verify whether actual API changes are needed for random range, viewport size, and spawn‑area calculations | Distinguish from timer‑based periodic spawn mapping | sample-30 ensures that spawn‑period mapping is not attached to code that only performs position calculations | | 31 | Player animation state transition (Idle, Run, Jump) | Version differences | Verify whether the changes for AnimatedSprite/AnimatedSprite2D and AnimationPlayer state transitions directly match the code | Distinguish from playback speed/seek/time‑control mapping | sample-31 separates animation‑node name changes from state‑transition patterns | | 32 | Animation playback time control | Common syntax | Verify whether the changes for playback speed, seek, and current position are actually needed in the current code | Distinguish from Idle/Run/Jump state‑selection mapping | sample-32 separates the playback‑time‑control API from the state‑transition API | | 33 | Collision shape size adjustment | Version differences | Verify whether the changes for CollisionShape2D, RectangleShape2D, and shape size/extents are directly required in the current code | Distinguish from collision signal, physics layer, damage mapping | sample-33 checks that the shape‑size‑adjustment API changes, not the collision‑detection API, match the actual code | | 34 | Applying gravity | Version differences | Verify whether the changes for CharacterBody2D/KinematicBody2D, velocity, and move_and_slide family are directly required in the current code | Distinguish from jump impulse, floor check, Area2D gravity mapping | sample-34 checks whether gravity is accumulated in the physics frame and reflected in movement as intended | | 35 | Applying jump force and detecting landing | Version differences | Verify whether the changes for is_on_floor(), jump velocity, Input action, and move_and_slide directly match the code | Distinguish from gravity‑only movement, animation state, wall‑collision mapping | sample-35 checks whether the mapping requires both jump‑start conditions and landing detection | | 36 | Sliding when colliding with walls | | | | | | 37 | Player direction flip (Facing Left/Right) | | | | | | 38 | Ammo count decrement | | | | | | 39 | Reload state transition when ammo is empty | | | | | | 40 | UI button click event connection | | | | | | 41 | Settings menu open/close toggle | | | | | | 42 | Text update when language changes | | | | | | 43 | Save game JSON serialization | | | | | | 44 | Load game JSON deserialization | | | | | | 45 | File read/write error handling | | | | | | 46 | Network connection status check | | | | | | 47 | Synchronization via remote function (RPC) calls | | | | | | 48 | Dynamic loading of scene resources | | | | | | 49 | Memory deallocation and resource unload | | | | | | 50 | Debug log output (print or print_debug) | | | | |

label_prototypes

Verify that the example, which changes not only the name but also the function usage, argument composition, and call pattern entirely, directly matches the code chunk.

No. Feature Common Syntax? Related JSONL Result Irrelevant JSONL Result Note
1 _ready() function initialization and viewport size setting Common syntax Related JSONL yes observed Irrelevant JSONL no observed DisplayServer.window_set_size(Vector2i(1920, 1080)) prototype is judged yes; AudioStreamPlayer3D prototype is judged no
2 _process(delta) per‑frame update loop Common syntax Related JSONL yes observed Irrelevant JSONL no observed func _process(delta) and position.x += move_speed * delta prototype is yes; _input(event)/event.is_action_pressed prototype is judged no
3 Player movement input handling (WASD or arrow keys) Common syntax Related JSONL yes observed Irrelevant JSONL no observed Input.is_action_pressed, velocity = direction * move_speed, move_and_slide() prototype is yes; @onready/node path access prototype is judged no
4 Applying player movement speed and acceleration Version difference Existing bidirectional yes records are excluded from final judgment In Godot 3 inspection the label_prototypes side splits into yes/no Need to re‑examine whether axis‑wise move_toward(velocity.x/velocity.z), move_and_slide(), CharacterBody3D prototype is version‑specific evidence or common string evidence
5 Limiting the player’s maximum speed Version difference First observation based on Godot 3. Reverse‑direction raw response for Godot 4: Godot 4 code yes/no, Godot 3 code yes/no Tween prototype is discarded as no for both sides CharacterBody2D, move_and_slide(), velocity appear in both code bases, so the related prototype is marked yes for both. Version‑specific evidence and common string evidence must be separated
6 Creating and firing a projectile on mouse click Version difference Projectile creation/firing call‑pattern prototype matches the code base Irrelevant prototype candidates are also discarded Included in the 24/24 passing flow. Input handling and projectile creation patterns are well separated
7 Managing projectile movement and time‑to‑live Version difference Conversion prototype for Godot 3 is marked yes in the Godot 3 code The same prototype is also marked yes in the Godot 4 code, showing a mismatch Overall 22/24; cases where a “conversion needed” prototype should not be attached to already converted Godot 4 code
8 Enemy (Enemy) player‑tracking (AI) logic Version difference The label_prototypes side was not the direct cause of mismatch #8 Irrelevant prototype candidates are discarded as expected The overall mismatch originates in docs_chunks. The prototype records the auxiliary axis of whether the tracking AI usage changed
9 Enemy movement speed and rotation logic Version difference Movement/rotation call‑pattern prototype matches the code base Irrelevant prototype candidates are discarded as expected 24/24 passing. Movement‑speed calculation and rotation‑application patterns are relatively clearly separated
10 Player disappears when moving off‑screen Common syntax Because it is common code, label_prototypes‑related JSONL does not appear to need conversion Irrelevant conversion candidates are no flow 6/6 passing. In common syntax the prototype is not attached, confirming the flow
11 Collision detection (Area2D or PhysicsBody) Version difference Verify whether the collision‑detection signal/callback usage pattern matches the pre‑change code pattern Distinguish from post‑collision damage‑application prototype sample-11 separates the detection‑event pattern from the subsequent gameplay‑handling pattern
12 Damage calculation and application on collision Common syntax Verify whether the call pattern that applies damage as a result of a collision exists directly in the current code Distinguish from simple collision detection or health‑zero handling prototype sample-12 checks whether argument composition, target object, and damage‑application order are based on prototype evidence
13 Player health reduction logic Common syntax Verify whether the player‑hit/health‑reduction pattern exists directly in the current code Distinguish from enemy health‑reduction prototype sample-13 validates false positives when the same health series is used for both player and enemy
14 Game‑over handling when player health reaches zero Common syntax Verify whether the game‑over call pattern after health reaches zero exists directly in the current code Distinguish from simple health reduction or enemy removal prototype sample-14 checks whether the prototype describes the condition check followed by state transition/scene handling
15 Enemy health reduction logic Common syntax Verify whether the enemy damage/health‑reduction pattern exists directly in the current code Distinguish from player damage prototype sample-15 looks for false positives when object and variable names overlap broadly
16 Remove enemy and add score when enemy health reaches zero Common syntax Verify whether the combined call pattern of enemy removal and score increase exists directly in the current code Distinguish from simple score update or simple removal prototype sample-16 checks whether a prototype that bundles multiple actions matches the actual order in SOURCE_CODE
17 Score variable update Common syntax Verify whether the score‑variable update pattern exists directly in the current code Distinguish from label‑text‑reflection prototype sample-17 separates internal data update from UI display update
18 Score text (Label) update function Common syntax Verify whether the label‑text update pattern exists directly in the current code Distinguish from prototype that only changes the score variable sample-18 checks whether the prototype concerns screen display rather than value change
19 Background music (BGM) playback and volume control Common syntax Verify whether the BGM playback/volume‑control pattern exists directly in the current code Distinguish from one‑off SFX playback prototype sample-19 requires looking at sustained playback/volume‑control purpose rather than generic audio terms
20 Sound effect (SFX) playback function Common syntax Verify whether the SFX call/playback pattern exists directly in the current code Distinguish from BGM loop or bus‑volume prototype sample-20 separates short‑effect playback from background‑music management flow
21 Screen shake effect implementation Version difference Verify whether the pattern of applying shake intensity/time/offset exists directly in the current code Distinguish from camera tracking or generic Tween prototype sample-21 confirms that even if Camera2D/Tween exists, the final effect must be a shake
22 Particle system creation and position matching Version difference Verify whether the particle creation, position matching, and emitting‑start pattern exists directly in the current code Distinguish from projectile creation or generic node‑creation prototype sample-22 checks whether the prototype explains synchronization of position and start of emission

| 23 | Scene Change Function | Version Difference | Verify whether the call pattern that receives a scene path and switches via SceneTree is directly present in the current code | Distinguish from simple resource loading, opening menus, pause prototype | sample-23 checks if the prototype describes the input path, call target, and result of the scene change | | 24 | Main Menu Scene Loading and Display | Version Difference | Verify whether the call pattern that loads and displays the menu scene is directly present in the current code | Distinguish from simple resource loading, scene transition, pause menu prototype | sample-24 checks if the prototype explains the result “the main menu is displayed” | | 25 | Game Pause Toggle | Common Syntax | Verify whether the pattern that flips the pause state and bundles related UI/input handling is directly present in the current code | Distinguish from opening the settings menu or game‑over prototype | sample-25 checks whether changing the pause flag and showing the screen should be considered a single flow | | 26 | Keyboard Input State Check (Input.is_key_pressed) | Version Difference | Verify whether the pattern that directly polls key input state is present in the current code | Distinguish from action strength, movement vector, mouse input prototype | sample-26 records input querying separately from the actions performed with that input | | 27 | Mouse Position (Cursor) Retrieval | Common Syntax | Verify whether the pattern that reads cursor coordinates and uses them for variables or position calculations is directly present in the current code | Distinguish from mouse click events or projectile‑spawn prototype | sample-27 checks whether the mouse‑position query itself is the core | | 28 | Random Number Generation Function | Version Difference | Verify whether the pattern that calls random generation / range specification is directly present in the current code | Distinguish from spawn‑position distribution, drop tables, timer‑spawn prototype | sample-28 separates the random API call from the places where the random result is used | | 29 | Enemy Spawn at Specific Intervals | Version Difference | Verify whether the pattern that calls a spawn function at regular intervals is directly present in the current code | Distinguish from random‑position calculation or enemy‑tracking AI prototype | sample-29 checks whether the time condition, timer, and spawn call order are correct | | 30 | Random Distribution of Spawned Enemy Positions | Common Syntax | Verify whether the pattern that places generated enemies within a random range is directly present in the current code | Distinguish from a spawn loop prototype that creates enemies at fixed intervals | sample-30 separates distribution/coordinate calculation from the generation cycle | | 31 | Player Animation State Transition (Idle, Run, Jump) | Version Difference | Verify whether the pattern that changes the animation name based on state values or speed is directly present in the current code | Distinguish from playback speed, seek, frame/time‑control prototype | sample-31 checks whether the specific state transition is the key point | | 32 | Animation Playback Time Control | Common Syntax | Verify whether the pattern that controls playback speed, seek, and current playback position is directly present in the current code | Distinguish from Idle/Run/Jump state‑transition prototype | sample-32 checks whether controlling playback time, not selecting the animation, is the core | | 33 | Collision Shape Size Adjustment | Version Difference | Verify whether the pattern that reads or modifies the size value of a collision shape is directly present in the current code | Distinguish from collision‑event handling or damage‑application prototype | sample-33 records separately whether shape size change is the core or the collision result processing | | 34 | Physics Gravity Application | Version Difference | Verify whether the pattern that accumulates gravity into velocity based on delta and reflects it via movement calls is directly present in the current code | Distinguish from jump input, landing check, spawn/timer prototype | sample-34 checks whether gravity accumulation inside the physics movement loop is the key | | 35 | Jump Force Application and Landing Detection | Version Difference | Verify whether the pattern that applies jump force when on the ground and then checks for landing is directly present in the current code | Distinguish from a movement prototype that only accumulates gravity or an animation‑state‑transition prototype | sample-35 checks whether jump condition, vertical velocity change, and floor detection are bundled in one flow | | 36 | Slide Handling on Wall Collision | | | | | | 37 | Player Facing Direction Switch (Facing Left/Right) | | | | | | 38 | Ammo Count Decrease | | | | | | 39 | Reload State Transition When Ammo Is Empty | | | | | | 40 | UI Button Click Event Connection | | | | | | 41 | Settings Menu Open/Close Toggle | | | | | | 42 | Text Update on Language Change | | | | | | 43 | Save Game JSON Serialization | | | | | | 44 | Load Game JSON Deserialization | | | | | | 45 | File Read/Write Error Handling | | | | | | 46 | Network Connection Status Check | | | | | | 47 | Synchronization via Remote Procedure Call (RPC) | | | | | | 48 | Dynamic Scene Resource Loading | | | | | | 49 | Memory Deallocation and Resource Unloading | | | | | | 50 | Debug Log Output (print or print_debug) | | | | |

Additional Records on July 6, 2026

Items 6 through 10 were already incorporated into the improvement flow on July 3, 2026, and detailed observations were left for those sections. Therefore, in this document we do not leave items 6–10 blank; we have written the existing observations to match the docs_chunks, api_mapping, and label_prototypes tables respectively.

On July 6, 2026, based on http://localhost:8520/#item=sample-22, additional records were added for items 11 through 22. This section explains for each item which evidence candidate corresponds to the relevant JSONL and which candidate should fall into a different code/different transformation/different pattern.

Additional Records on July 8, 2026

On July 8, 2026, based on http://localhost:8520/#item=sample-32, additional records were added from item 23 through item 32. This section is viewed more as an observation table showing how docs_chunks, api_mapping, and label_prototypes each should explain or reject the same code chunk from their respective perspectives, rather than a definitive judgment table.

Additional Records on July 13, 2026

On July 13, 2026, based on http://localhost:8520/#item=sample-35, records were added from item 33 through item 35. This segment deals with items where collision area size, gravity, and jump/landing involve physical movement and collision shapes influencing each other, so the purpose and application location of the code need to be considered together rather than just simple string overlap.

Reverse Observation for Item 5

Item 5 was included in today’s target quantity, but when inspected in reverse as a JSONL based on Godot 4, the result did not fall cleanly into a “yes/no” pair. Therefore, we do not make a definitive judgment and will treat it as a pattern‑analysis target in the next step.

The response order is docs_chunks #1, docs_chunks #2, api_mapping #1, api_mapping #2, label_prototypes #1, label_prototypes #2.

Test Code Response Order Observation
Godot 4 code yes, yes, yes, yes, yes, no Because there are many strings that directly overlap with the code such as limit_speed, velocity, move_and_slide(), Input.is_action_pressed, the docs/api candidates are broadly marked as yes.
Godot 3 code yes, yes, no, no, yes, no Docs candidates and the CharacterBody2D prototype are marked as yes, but the api_mapping candidates based on Godot 4 are marked as no.

This result is seen less as a simple model error and more as a signal that the match_terms, required_when_seen_in_code, and content fields inside the JSONL may be too broad. In particular, strings that appear commonly such as move_and_slide() and Input.is_action_pressed can serve as direct evidence, but they may be too broad to serve as evidence for maximum speed limits or version‑difference reasons.

Mismatch Case Records

False Positive

Cases where the correct answer is no but yes was returned.

ID Feature Common‑syntax? Table Incorrect JSONL Summary Qwen Response Reason for Re‑review

False Negative

Cases where the correct answer is yes but no was returned.

ID Feature Common‑syntax? Table Correct JSONL Summary Qwen Response Reason for Re‑review

Response Format Violation

Cases where the answer was not yes or no but a description, JSON, empty response, or multiple sentences.

ID Feature Common‑syntax? Table Expected Response Actual Response Note

Observation Summary

While testing, fill in the numbers and raw responses below. Here we do not make final judgments; we only note how the responses fluctuate based on criteria.

Item docs_chunks api_mapping label_prototypes Total
Observations today Additional records 23–32 Additional records 23–32 Additional records 23–32 Additional records 23–32 as of 2026‑07‑08
Total observations 32/50 test records 32/50 test records 32/50 test records 32/50 test records
Tested code chunks 32/50 32/50 32/50 32/50
Common‑syntax sample count Accumulation pending Accumulation pending Accumulation pending Separate tally needed after labeling up to item 32
Version‑difference sample count Accumulation pending Accumulation pending Accumulation pending Separate tally needed after labeling up to item 32
First‑pass expected response matches 5 5 5 15
First‑pass expected response mismatches 0 0 0 0
Reverse raw responses for item 5 (Godot 4 basis) Godot 4 yes/yes, Godot 3 yes/yes Godot 4 yes/yes, Godot 3 no/no Godot 4 yes/no, Godot 3 yes/no Pattern analysis needed
Response format violations 0 0 0 0
Needs re‑review 2 2 2 Re‑definition needed for items 4/5
Current judgment Definitive judgment pending Definitive judgment pending Definitive judgment pending Follow‑up pattern analysis needed including additional records 23–32