01Safety
0.0 / 30
What changed in the harness
Selection accuracy 100→98, token cost up 3%, unconfirmed writes 0%→0%.
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.2 / 30
17.1 / 20
16.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
2 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 |
|---|---|---|
search_sounds |
name_restates_behavior no_return_description |
Searches myinstants.com's sound button catalog for entries matching a text query and returns a list of matching sounds (title, slug, and playback URL) that can be passed to play_sound. |
browse_category |
name_restates_behavior no_return_description |
Lists sound buttons from myinstants.com filed under a given category (e.g., memes, games, tiktok trends) and returns the matching sounds (title, slug, and playback URL) for browsing or use with play_sound. |
Selection evidence
3 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
search_sounds |
play_sound |
high | play_sound's 'query' parameter performs a quick search and plays the first result, fully duplicating search_sounds' discovery function; a task like 'play a sound about cats' could be routed to either tool since both accept a free-text query. |
search_sounds |
browse_category |
medium | Both are discovery tools with no playback; a task like 'find some meme sounds' overlaps between search_sounds(query='meme') and browse_category(category='memes') since 'meme' is both a plausible search term and a listed category name. |
browse_category |
play_sound |
low | play_sound has no category parameter, so confusion is limited, but a vague task like 'play something from the sports category' might tempt an agent to pass category-like text into play_sound's query field instead of first calling browse_category. |
Compare the field