30.0 / 30
What changed in the harness
Selection accuracy 98→98, token cost up 6%, 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.1 / 30
03Economics
19.2 / 20
04Discoverability
14.7 / 20
Highest-impact fix
Estimated gain +5 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.
6 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 |
|---|---|---|
rescuedogs_get_dog_details |
name_restates_behavior no_return_description |
Retrieve the complete profile of a single rescue dog by its unique slug, including an AI-generated personality profile, care requirements, and adoption info. Use this after a search to review a specific dog before applying or contacting the organization. Returns the full profile in markdown or JSON format, optionally including the dog's photo. |
rescuedogs_list_breeds |
no_return_description |
Return the dog breeds that currently have available rescue dogs, each with the number of adoptable dogs and associated breed statistics. Optionally filter by FCI breed group or require a minimum available-dog count. Returns the breed list in markdown or JSON format. |
rescuedogs_get_statistics |
no_return_description |
Return overall statistics about the rescue dogs currently available on the platform, such as total counts and summary figures across available dogs. Useful for giving users a high-level overview before they start searching. Returns the statistics in markdown or JSON format. |
rescuedogs_list_organizations |
no_return_description |
Return the rescue organizations on the platform, each with its statistics and number of available dogs, optionally filtered by ISO country code or limited to active organizations only. Useful for browsing shelters before searching their dogs. Returns the organization list in markdown or JSON format. |
rescuedogs_match_preferences |
no_return_description |
Recommend rescue dogs that fit your lifestyle by translating your living situation, activity level, and dog-ownership experience into the appropriate home type, energy level, and experience filters. Returns up to the requested number of matching dogs with basic info, optionally including photos, in markdown or JSON format. |
rescuedogs_get_adoption_guide |
no_return_description |
Return guidance about the rescue dog adoption process, covering transport, fees, requirements, and timeline. Narrow the guide with a specific topic, and provide a country to get country-specific information. Returns the adoption guide text for the requested topic and country. |
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 |
|---|---|---|---|
rescuedogs_get_statistics |
rescuedogs_get_filter_counts |
medium | Both tools return counts and statistics about available rescue dogs; a task like 'what are the stats/counts for available dogs' could plausibly lead an agent to the overall statistics tool instead of filter counts (or vice versa), because neither description clearly distinguishes overall aggregates from per-filter option counts. |
rescuedogs_search_dogs |
rescuedogs_match_preferences |
medium | Both tools find dogs matching a user's needs; a task mixing concrete filters with lifestyle language (e.g., 'find a small apartment-friendly dog for a first-time owner') could plausibly route to either the filter-based search or the preference-matching tool, since the descriptions overlap on finding suitable dogs. |
rescuedogs_list_breeds |
rescuedogs_get_filter_counts |
low | Both list available options with counts ('available' + 'count'); a generic task like 'show me what's available with counts for adoption' is ambiguous, though naming the entity (breed vs. filter options) disambiguates. |
rescuedogs_get_dog_details |
rescuedogs_get_adoption_guide |
low | Both descriptions share the vocabulary 'requirements' and 'adoption info'; a task like 'what are the adoption requirements for this dog' could be misrouted from the process guide to the dog profile tool, though the required slug argument usually resolves the ambiguity. |
Compare the field