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
28.3 / 30
9.7 / 20
14.3 / 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
7 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
get_roles |
get_role_pricing |
medium | Both handle role questions and share get/role tokens. A task like 'what kinds of event staff do you have and what do they cost' could route to get_roles, which returns no rates, instead of get_role_pricing; only the DO-NOT hint separates them. |
plan_staffing |
save_staffing_plan |
high | Names are near-identical and 'save my staffing plan for N staff in [city]' maps literally to save_staffing_plan, but plan_staffing is the required entry point and already persists plans; an agent could call save_staffing_plan standalone on a fresh request, violating the sequencing and 'never when plan_id returned' rules. |
plan_staffing |
get_plan |
medium | A returning buyer says 'pull up my staffing plan again'; get_plan is correct but requires a user-supplied plan_id it must never guess, so an agent without the ID may call plan_staffing to regenerate. Phrasing like 'get my plan' fits both tool names. |
get_compliance_by_state |
get_policies |
medium | 'Compliance' and 'policies' are near-synonyms; a task like 'what are the compliance policies for hiring event staff in Texas?' is ambiguous between state-law rules (get_compliance_by_state) and TempGuru's published booking/procurement policies (get_policies). |
get_role_pricing |
get_rate_benchmark |
medium | Both return hourly rate data by role and share many tokens. A city-less question like 'what do event staff cost in 2026 / industry rate for ushers' could be routed to get_role_pricing, which requires a city, instead of the national benchmark; conversely a city-specific question could get the national index. |
request_quote |
get_quote_status |
low | Both are quote-centric. 'Follow up on the quote I requested' might cause an agent to resubmit via request_quote (duplicate lead) rather than check get_quote_status, which needs a TG-reference the conversation may lack; 'status' in the name mostly disambiguates. |
get_plan |
get_roles |
low | 'What roles did we include in my saved staffing plan?' involves both 'plan' and 'roles'; get_roles returns the generic catalog while get_plan restores the event's actual plan. The restore-vs-catalog distinction is clear in descriptions, making this only mildly plausible. |
Compare the field