01Safety
0.0 / 30
What changed in the harness
Selection accuracy 98→100, 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
20.0 / 20
10.2 / 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 |
|---|---|---|
forage_install |
no_return_description |
Install an MCP server package and start it as a proxied subprocess whose tools become available immediately via Forage, with no restart needed. Returns the installed tool details (package name, server status, and the tools it provides) once it is running. Set confirm=true to proceed — the user will be prompted to approve the tool call. |
forage_learn |
no_return_description |
Write usage instructions for an installed tool to agent rule files (CLAUDE.md, AGENTS.md, or .cursor/rules/), persisting knowledge across sessions so the agent remembers how to use the tool next time. Returns the path of the rule file written and confirmation of the update. |
forage_uninstall |
no_return_description |
Remove a previously installed tool: stops its server, removes it from the manifest, and cleans up its agent rules. Set confirm=true to proceed. Returns confirmation that the tool was removed, including the tool name and affected rule files. |
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 |
|---|---|---|---|
forage_search |
forage_status |
medium | A user asking 'what tools are available to me?' is ambiguous: status lists only installed/proxied tools while search finds tools across registries. An agent could pick search to discover tools when the user wanted a list of what's already installed, or vice versa. |
forage_learn |
forage_status |
medium | Both target installed tools: a request like 'make sure the agent knows how to use the tools I have installed' or 'help me with my installed tools' could send the agent to learn (writing usage rules to remember) instead of status (reading what tools are installed and what they do), since learn's description is framed around 'an installed tool'. |
forage_evaluate |
forage_install |
low | A task like 'get this MCP server set up and tell me if it's good' could lead an agent to evaluate (its description explicitly says 'use this before installing to verify quality') when the user wanted the server actually installed; evaluate's mention of 'install command' adds to the overlap. |
Compare the field