30.0 / 30
What changed in the harness
Selection accuracy 100→100, token cost up 2%, unconfirmed writes 100%→100%.
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.5 / 30
03Economics
20.0 / 20
04Discoverability
13.9 / 20
Highest-impact fix
Estimated gain +6 pointsMake target tools discoverable on the first call
Clarify tool names, decision boundaries, and required argument schemas so an agent can choose and construct the target call without exploratory steps.
Description evidence
Defects and rewrites.
1 defect 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 |
|---|---|---|
lookup_object |
no_return_description |
Resolve a celestial object by Messier number (e.g. M31), NGC/IC designation (e.g. NGC7000), or common name (e.g. Andromeda Galaxy). When latitude, longitude, or date are supplied, also compute the object's visibility from that location and time. Returns the object's identity and properties, plus visibility conditions when an observing location is provided. |
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 |
|---|---|---|---|
lookup_object |
search_objects |
medium | Both tools act on celestial objects, so tasks phrased as 'search for the Andromeda Galaxy' or 'look up galaxies in Orion' could route to the wrong member: lookup_object takes a name but no type/constellation filters, while search_objects filters by attributes but has no name parameter. A task asking to find a specific object by name yet using the verb 'search' plausibly triggers search_objects, which cannot resolve names. |
Compare the field