30.0 / 30
What changed in the harness
Selection accuracy 96→100, token cost up 8%, 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.4 / 30
03Economics
20.0 / 20
04Discoverability
15.0 / 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.
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 |
|---|---|---|
transita_match_visas |
params_unexplained |
Score a user's profile against every visa pathway Transita supports and return the top matches ranked by eligibility, with timeline, cost, and links to official sources. EU citizens automatically surface freedom-of-movement options first. Inputs: citizenship (user's primary nationality, required); current_country (country of current residence); education (highest level completed: high_school, associate, bachelor, master, phd, or professional); work_years (years of full-time professional experience, 0-60); work_field (industry or occupation, e.g. 'software engineering'); income_usd (annual income in USD); goal (primary objective: work_tech, start_company, study_work, relocate_family, or digital_nomad); target_countries (preferred destination country codes, optional); timeline (how soon relocation is needed: asap, 6months, 1year, or 2plus); age (current age, 15-80). |
Selection evidence
Confusable tool pairs.
6 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
transita_match_visas |
transita_compare_visas |
medium | A task like 'compare which visa I qualify for' is ambiguous: eligibility scoring (match) and side-by-side pathway comparison (compare) both fit 'compare my visa options', and match requires profile fields while compare requires visa_ids that must first be discovered. |
transita_match_visas |
transita_visa_details |
medium | 'Tell me about the best visa for me and what it involves' could route to match_visas (which already returns timeline, cost, and source links) or to visa_details (which gives full per-visa eligibility, fees, and checklist) — the agent must decide between scoring a profile versus fetching one pathway's details. |
transita_visa_details |
transita_compare_visas |
medium | 'Tell me the differences between the O-1A and H-1B' could trigger visa_details (one call per visa, manually comparing output) or compare_visas (explicit side-by-side delta); the 'details vs comparison' boundary is blurry when a user asks about costs and validity of multiple visas. |
transita_compare_visas |
transita_country_overview |
medium | 'Compare the US and Portugal as places to move' contains 'compare' but takes country_code input; an agent may call compare_visas (which needs visa_ids) when country_overview (country summaries, cities, PR timelines) is the better fit for a country-level comparison. |
transita_country_overview |
transita_search_by_nationality |
medium | 'Where should I move?' is explicitly claimed by search_by_nationality, but country_overview (destination summary data for a country_code) is also plausible when the user asks which countries are good; the input parameter mismatch (nationality vs country_code) makes misrouting easy without one of them being obvious. |
transita_match_visas |
transita_country_overview |
medium | 'Which countries can I move to?' could be answered by match_visas (scoring against target_countries with eligibility) or country_overview (per-country pathway counts, scores, and drawbacks); a profile-less country-level question might wrongly trigger match_visas which requires a citizenship. |
Compare the field