01Safety
0.0 / 30
What changed in the harness
Selection accuracy 95→98, token cost up 12%, 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
20.0 / 20
15.1 / 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
3 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 |
|---|---|---|
fetch_url |
no_return_description |
Retrieve the content of a web page from the given URL (include http:// or https://, preferring https). Returns the page's content as Markdown by default, or as raw HTML when returnHtml is true, with the length capped by maxLength when set. Use waitUntil to control when navigation is considered complete and waitForNavigation for sites requiring extra navigation (e.g., anti-bot verification) before content is ready. |
fetch_urls |
no_return_description |
Retrieve the content of web pages from multiple URLs in a single call. Returns the content of each fetched page as Markdown by default, or as raw HTML when returnHtml is true, with the length capped by maxLength when set. Use waitUntil to control load completion and enable waitForNavigation for sites that need additional navigation (e.g., anti-bot checks) before content is available. |
browser_install |
no_return_description |
Install the Playwright Chromium browser binary so browsing tools can run. Returns the outcome of the installation, including whether it succeeded. Call this when you get an error that the browser is not installed; set withDeps to also install required system dependencies and force to reinstall even if Chromium is already present. |
Selection evidence
1 pair where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
fetch_url |
fetch_urls |
low | The definitions explicitly distinguish singular vs multiple URLs and the schemas differ (url string vs urls array), so a definition-reading agent should normally select correctly; real confusion is only plausible when natural-language wording uses plural/loosely ('fetch the URLs') when only one page is meant, or a task lists several targets but the agent picks the singular tool. Lexical similarity alone is not enough, so this is a boundary case with low real-selection-confusion probability. |
Compare the field