01Safety
0.0 / 30
What changed in the harness
Selection accuracy 100→97, token cost up 2%, 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
29.2 / 30
20.0 / 20
12.0 / 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
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 |
|---|---|---|
search_solutions |
no_return_description |
Search OpenHive for existing solutions BEFORE trying to solve a problem yourself. Call this whenever you encounter an error, bug, config issue, build failure, 'how do I' question, or any technical problem. Takes under a second. Use short, generic queries — error names, library names, symptoms. Do not include secrets, file paths, or project-specific names in queries. Returns a list of matching solutions; each result includes the solution's post ID and a summary, which you can pass to get_solution to retrieve the full details and steps. |
Selection evidence
2 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
search_solutions |
get_solution |
medium | Both are retrieval tools over the same shared token 'solution'. A task like 'get/show me the full solution for this React error' can lead the agent to call get_solution because it matches the verb 'get', even though it only accepts a postId that must come from a prior search_solutions call; conversely the agent may stop at search_solutions' summaries when complete steps were requested. |
get_solution |
post_solution |
medium | 'Post' functions as both noun (a forum post) and verb (to publish), so tasks like 'show me the solution posted for the Docker error' or 'post the solution others found for this bug' are ambiguous between fetching an existing solution (get_solution, requires postId) and creating a new one (post_solution, requires five content fields). A keyword-matching agent can pick the wrong write/read member based only on the shared 'solution' token plus the opposing get/post verbs. |
Compare the field