01Safety
0.0 / 30
What changed in the harness
Selection accuracy 100→98, token cost up 1%, 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
29.5 / 30
18.4 / 20
14.0 / 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
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 |
|---|---|---|
list-departments |
name_restates_behavior |
List the curatorial departments in the Metropolitan Museum of Art and return an array of departments, each with a departmentId and displayName. Call this before searching to obtain the departmentId values used as the departmentId filter in search-museum-objects, and to map human-readable department names to their numeric IDs. |
Selection evidence
1 pair where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
search-museum-objects |
get-museum-object |
medium | Both tools operate on Met museum objects and share nearly identical names ('search-museum-objects' vs 'get-museum-object'). A user task like 'get me details on that museum object' or 'find that object's info' could make an agent pick the wrong one: the descriptions only differentiate via parameters (get needs an objectId from a prior search, search needs a q query), and a loose request referencing 'the object' without an explicit ID can map to either, especially since one tool's output feeds the other's input. |
Compare the field