0.0 / 30
What changed in the harness
Selection accuracy 100→100, token cost up 3%, unconfirmed writes 0%→0%.
Category breakdown
Where the score comes from.
Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.
01Safety
02Legibility
29.0 / 30
03Economics
17.3 / 20
04Discoverability
12.4 / 20
Highest-impact fix
Estimated gain +30 pointsAdd explicit identity and permission preflight tools
Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.
Description evidence
Defects and rewrites.
3 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 |
|---|---|---|
help |
no_return_description |
Full documentation for a tool. Returns the complete documentation for the named tool as structured content, including all supported actions, parameter descriptions, defaults, and usage notes. Use when the compressed description is insufficient. |
input_map |
params_unexplained |
Input action management. Actions (required params -> optional): - list (-> project_path): list all input actions - add_action (action_name -> deadzone=0.5, project_path): create a named input action - remove_action (action_name -> project_path): delete an input action - add_event (action_name, event_type, event_value -> project_path): bind a key/mouse/joypad event to an input action event_type: key | mouse | joypad. event_value: e.g., KEY_SPACE. action_name is the name that identifies the action (e.g., "jump"); actions are referenced by this name in GDScript via Input.is_action_pressed("jump"). |
signals |
params_unexplained |
Signal connection management. Actions (required params -> optional): - list (scene_path -> project_path): list all signal connections in a scene - connect (scene_path, signal, from, to, method -> flags, project_path): connect a signal emitted by the node at the from path to the method at the to path - disconnect (scene_path, signal, from, to, method -> project_path): remove a signal connection signal is the signal name emitted by the source node (e.g., "pressed" on a Button); the emitted signal triggers the target method (e.g., "_on_button_pressed") on the to node. flags are optional connection flags passed to the connection. |
Selection evidence
Confusable tool pairs.
1 pair where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
scenes |
scripts |
medium | Both are file-CRUD tools over the same Godot project with overlapping actions (create/list/delete), so tasks that don't name a file extension are ambiguous. E.g., 'create a new player character', 'make an enemy', or 'list project files' could resolve to either: scenes requires a .tscn, scripts a .gd, but the descriptions only clarify the distinction when reading closely, and a natural-language task often omits the extension. |
Compare the field