01Safety
0.0 / 30
What changed in the harness
Selection accuracy 100%, destructive-action safety rate 0% (baseline only -- no rewrite pass applied).
Category breakdown
Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.
0.0 / 30
26.5 / 30
6.1 / 20
12.9 / 20
Highest-impact fix
Estimated gain +30 pointsExpose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.
Description evidence
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
13 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
skill_gap |
skill_impact |
high | Both descriptions literally claim the example query 'what should I learn next?' — skill_gap audits current skills vs target-role requirements, while skill_impact simulates adding skills the user lacks; the audit-vs-simulation distinction is subtle enough to route a learning-advice query to the wrong tool. |
search_companies |
find_companies |
medium | A plain query like 'which fintech companies are hiring?' fits both — search_companies by industry substring and find_companies by industry filter — and the simple-lookup vs multi-axis-segmentation line is blurry when the user doesn't add a second filter axis. |
find_emerging_skills |
find_emerging_roles |
medium | A task like 'what's emerging in the market right now?' never states whether the user wants skills or roles; both tools surface emerging/trending entities and only differ when the entity type is explicit. |
skill_gap |
find_emerging_skills |
medium | 'What should I learn next?' is claimed by skill_gap (personal gap against target roles), but a user asking that may mean surfacing early-stage market skills, which is find_emerging_skills; the personal-vs-market marker is absent from the phrasing. |
skill_impact |
find_emerging_skills |
medium | 'Which skills should I pick up?' maps to skill_impact (simulate adding missing skills) or find_emerging_skills (quietly trending skills); both are framed as 'what to learn' guides without a clear personal-vs-market distinction. |
get_company_profile |
get_company_history |
medium | Both take a company domain and expose a hiring trend (profile: % MoM; history: trendPct series), so 'how is Stripe's hiring trending?' can be routed to either; only time-series intent is explicitly flagged for history. |
get_market_pulse |
get_market_history |
medium | 'How is the market trending?' overlaps: pulse returns the current snapshot including trending skills and top companies, while history is the time-series; the snapshot-vs-history boundary is easy to miss without reading carefully. |
get_company_history |
get_market_history |
medium | A 'hiring trend over time' ask is ambiguous about scope — per-company (requires a domain) vs market-wide (no domain) — so wording like 'how has hiring trended?' doesn't disambiguate and either tool could be selected. |
get_company_history |
get_skill_history |
medium | 'Show me the history/trend' for a named entity is ambiguous: a company domain vs a skill name, since both tools share the hiring history concept, time-series output, and similar month-based parameters. |
get_skill_history |
get_market_history |
medium | 'Is demand for X growing?' could mean a single skill's adoption series or the market-wide series that includes skill distributions; vaguer asks like 'how is skill demand trending?' are genuinely ambiguous. |
find_companies |
find_breakout_companies |
medium | 'Which companies are growing/scaling up right now?' matches find_companies (trend='up' filter and its 'scaling up' example) as well as find_breakout_companies (extreme-growth ranking); only growth-intensity thresholds separate them. |
match_job |
company_fit |
medium | Both score the user's fit with shared score/fit vocabulary: 'how well do I fit this role at Stripe?' needs match_job while 'how well do I fit Stripe?' needs company_fit — whether a specific posting or just the company entity is referenced is easily ambiguous. |
watchlist_intelligence |
list_watchlist |
low | 'What companies am I watching?' clearly maps to list_watchlist and 'status of my watched companies' to watchlist_intelligence, but a vague 'give me an update on my watchlist' could be misrouted to the plain list when the user wants stats. |
Compare the field