01Safety
0.0 / 30
What changed in the harness
Selection accuracy 100→100, token cost up 6%, 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.8 / 30
20.0 / 20
12.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
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 |
|---|---|---|
fixgraph_get_fixes |
no_return_description |
Get all verified fixes for a specific FixGraph issue by its ID or slug. Returns an array of fix objects (title, root cause, ordered steps, validation notes, and risk level) associated with the issue. |
fixgraph_submit_fix |
name_restates_behavior no_return_description |
Create a new fix entry attached to an existing FixGraph issue, including title, root cause, ordered remediation steps, optional validation instructions, and risk level. Requires the FIXGRAPH_API_KEY env var to be set. Returns the created fix record, including its assigned ID and submission status. |
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 |
|---|---|---|---|
fixgraph_search |
fixgraph_get_fixes |
medium | A task like 'find fixes for this database timeout error' could plausibly be routed to either tool since fixgraph_search returns issues with fix counts while fixgraph_get_fixes returns actual fixes for a known issue; an agent lacking an issue_id might mistakenly call get_fixes with a query string instead of first searching. |
fixgraph_search |
fixgraph_submit_fix |
low | Both relate to fixes but have clearly distinct verbs (search vs submit) and different required inputs (query vs issue_id/title/root_cause/steps), making confusion unlikely for a natural-language task. |
fixgraph_get_fixes |
fixgraph_submit_fix |
low | get_fixes retrieves existing fixes while submit_fix creates a new one; a task like 'add this fix to the issue' vs 'show me the fixes' are distinguishable, so confusion is unlikely though both operate on the same issue_id. |
Compare the field