30.0 / 30
What changed in the harness
Selection accuracy 94→89, token cost up 21%, 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
27.7 / 30
03Economics
20.0 / 20
04Discoverability
17.2 / 20
Highest-impact fix
Estimated gain +3 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.
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 |
|---|---|---|
bitcoin_price |
no_return_description |
Fetch the current real-time Bitcoin price. Takes no parameters. Returns the current Bitcoin price (typically in USD) along with related market data such as timestamp. |
get_crypto_price |
name_restates_behavior no_return_description |
Fetch the current real-time price for a specified cryptocurrency. Takes 'name', the name or symbol of the crypto coin to look up (e.g. 'bitcoin', 'ethereum'). Returns the current price of the specified coin along with related market data such as timestamp. |
list_assets |
no_return_description |
Retrieve the full list of crypto assets available on the platform. Takes no parameters. Returns an array of asset entries, each including identifying details such as name, symbol, and id. |
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 |
|---|---|---|---|
bitcoin_price |
get_crypto_price |
medium | A request like 'get me the current bitcoin price' could plausibly be routed to either the dedicated bitcoin_price tool or get_crypto_price with name='bitcoin', since both fetch realtime crypto prices and share overlapping wording ('realtime', 'price', 'crypto/coin'). |
Compare the field