30.0 / 30
What changed in the harness
Selection accuracy 100%, destructive-action safety rate 100% (baseline only -- no rewrite pass applied).
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.9 / 30
03Economics
20.0 / 20
04Discoverability
12.6 / 20
Highest-impact fix
Estimated gain +7 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.
0 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 |
|---|---|---|
| No description defects were flagged in this assessment. | ||
Selection evidence
Confusable tool pairs.
4 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
list_top_models |
recommend_model |
high | A request like 'what's the best model for coding' or 'recommend a good vision model' could be satisfied by either a category ranking (list_top_models) or a personalized recommendation (recommend_model); both take a similar coding/vision/general-style category and neither requires a specific model list, so the agent must infer whether the user wants a ranked table or reasoned picks. |
list_top_models |
compare_models |
medium | A task like 'show me how the top coding models stack up' could trigger list_top_models (ranked table for a category) or compare_models (side-by-side table), since the user hasn't necessarily named specific models and both return tabular comparisons of multiple models. |
get_model_info |
compare_models |
medium | A request naming two or more specific models, like 'tell me about claude-sonnet-4.6 and gpt-5.2 pricing and benchmarks,' could be handled by repeated get_model_info calls or a single compare_models call, since both return pricing/benchmark/capability data and the boundary between 'info on models' and 'compare models' is not sharply cued by phrasing. |
compare_models |
recommend_model |
low | A vague task like 'which is better for coding, claude or gpt-5' names specific models (favoring compare_models) but also implies a recommendation goal (favoring recommend_model), though the required inputs (explicit model list vs. use_case) are distinct enough to usually disambiguate correctly. |
Compare the field