01Safety
0.0 / 30
What changed in the harness
Selection accuracy 100→100, token cost up 11%, unconfirmed writes 0%→0%.
Category breakdown
Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.
0.0 / 30
23.9 / 30
19.8 / 20
13.7 / 20
Highest-impact fix
Estimated gain +30 pointsExpose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.
Description evidence
13 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.
| Tool | Defect types | Suggested rewrite |
|---|---|---|
launch_editor |
name_restates_behavior no_return_description |
Opens the Godot editor GUI as a separate process for the project at projectPath. Returns whether the editor process launched successfully. |
get_debug_output |
name_restates_behavior |
Returns the stdout/stderr output and error messages captured from the most recent run_project execution. |
stop_project |
name_restates_behavior no_return_description |
Terminates the Godot process previously started by run_project. Returns whether a running process was found and stopped. |
get_godot_version |
name_restates_behavior no_return_description |
Runs the local Godot executable with a version flag and returns the installed Godot version string. |
list_projects |
name_restates_behavior no_return_description |
Scans directory, optionally recursively, for folders containing a project.godot file. Returns a list of discovered Godot project paths. |
get_project_info |
no_return_description |
Reads project.godot at projectPath and returns metadata such as the project name, Godot engine version, and configured main scene. |
create_scene |
name_restates_behavior no_return_description |
Creates a new .tscn scene file at scenePath within the project, with a root node of type rootNodeType (default Node2D). Returns the path of the created scene file. |
add_node |
name_restates_behavior no_return_description |
Inserts a node of nodeType named nodeName under parentNodePath (default 'root') in the given scene, optionally applying initial properties. Returns confirmation that the node was added and the scene saved. |
load_sprite |
name_restates_behavior no_return_description |
Sets the texture of the Sprite2D node at nodePath in the given scene to the image file at texturePath. Returns confirmation that the texture was assigned and the scene saved. |
export_mesh_library |
name_restates_behavior no_return_description |
Converts meshes in the scene at scenePath (optionally limited to meshItemNames) into a Godot MeshLibrary resource saved to outputPath. Returns the path of the generated .res file. |
save_scene |
name_restates_behavior no_return_description |
Writes in-memory changes to the scene at scenePath back to disk, or to newPath if given to save a separate variant. Returns the path the scene was saved to. |
get_uid |
no_return_description |
Looks up the UID assigned to filePath for Godot 4.4+ resource references and returns the UID string. |
update_project_uids |
no_return_description |
Resaves project resources so their UID references stay in sync with project.godot (Godot 4.4+). Returns confirmation of completion, including which files were resaved. |
Selection evidence
4 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
create_scene |
save_scene |
medium | A task like 'create a variant of this scene at a new path' or ambiguous phrasing like 'make a scene file at X' could lead an agent to pick create_scene when save_scene (with newPath) was intended for variants, or vice versa for a truly new empty scene. |
run_project |
stop_project |
low | These are opposite actions (start vs stop) with clearly distinct verbs, so confusion is unlikely except in a vague 'toggle running' instruction, but their required params differ enough (projectPath vs none) to disambiguate easily. |
get_project_info |
get_uid |
low | A request like 'get info about this file in the project' could momentarily be confused with get_project_info, but get_uid is clearly scoped to a specific file's UID while get_project_info is project-level metadata, keeping confusion low. |
list_projects |
update_project_uids |
low | Both mention 'project' and 'uid'-adjacent Godot 4.4 context, but their purposes (listing directories vs resaving resources) are distinct enough that only a very vague prompt would cause mixing. |
Compare the field