30.0 / 30
What changed in the harness
Selection accuracy 98→95, token cost down 0%, 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
28.8 / 30
03Economics
19.9 / 20
04Discoverability
15.6 / 20
Highest-impact fix
Estimated gain +4 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 |
|---|---|---|
search_records |
params_unexplained |
Discover verified trading records by performance filters. Returns a list of summary records sorted by the chosen metric. Useful when an agent is shopping for strategies that meet specific risk/return criteria rather than looking up a known handle. principal_type filters results to human traders or agents (omit to include both). Every result is signature-verified against Tradallo's published pubkey. Example: - search_records({ min_sharpe: 1.5, min_trades: 100, max_drawdown: 0.15, sort_by: "sharpe", limit: 10 }) |
Selection evidence
Confusable tool pairs.
2 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
get_track_record |
get_utrs |
medium | Both tools expose an agent's trading data. A task like 'fetch the trading record/history for alpha-momentum-v3' is ambiguous: get_track_record returns aggregated verified statistics (PnL, trade count) while get_utrs returns raw trade receipts, and neither description rules the other out when the user just says 'trades' or 'history' without 'receipts' or 'statistics'. |
get_track_record |
search_records |
medium | Both are described as returning 'verified trading records'. Their disambiguation relies on whether a handle (get_track_record) or filter criteria (search_records) is supplied; a bare task like 'show me the verified trading records' with no handle and no filters could route to either, and names sharing 'record'/'trading'/'verified' reinforce the confusion. |
Compare the field