0.0 / 30
What changed in the harness
Selection accuracy 95→95, token cost up 24%, unconfirmed writes 0%→0%.
Category breakdown
Where the score comes from.
Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.
01Safety
02Legibility
24.1 / 30
03Economics
20.0 / 20
04Discoverability
12.1 / 20
Highest-impact fix
Estimated gain +30 pointsAdd explicit identity and permission preflight tools
Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.
Description evidence
Defects and rewrites.
8 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 |
|---|---|---|
gist_list |
name_restates_behavior params_unexplained no_return_description |
Fetch a paginated list of Gists owned by the authenticated user, sorted by most recently updated. 'page' selects which page of results to retrieve (starting at 1); 'perPage' controls how many gists are returned per page. Returns an array of gist summaries including id, description, public/private status, and file names. |
gist_get |
name_restates_behavior params_unexplained no_return_description |
Retrieve full details of a single Gist, including the contents of every file it contains. 'gistId' is the unique identifier of the Gist to fetch. Returns the gist's metadata (description, visibility, owner, timestamps) plus each file's name and content. |
gist_create |
name_restates_behavior no_return_description |
Create a new Gist owned by the authenticated user from the given files. 'files' maps filenames to their content and is required; 'description' sets an optional summary shown on the gist; 'public' controls whether the gist is publicly listed (defaults to false, i.e. secret). Returns the newly created gist's id, URL, and file listing. |
gist_update |
name_restates_behavior no_return_description |
Modify an existing Gist's description and/or file contents. 'gistId' identifies the gist to update; 'description' replaces its current description if provided; 'files' maps filenames to new content, where setting a filename's value to null deletes that file. Returns the updated gist's metadata and current file listing. |
gist_delete |
name_restates_behavior no_return_description |
Permanently delete a Gist owned by the authenticated user. 'gistId' identifies the gist to delete. Returns confirmation that the gist was deleted; this action cannot be undone. |
gist_starred |
params_unexplained no_return_description |
List Gists the authenticated user has starred, paginated. 'page' selects which page of results to retrieve (starting at 1); 'perPage' controls how many gists are returned per page. Returns an array of starred gist summaries including id, description, owner, and file names. |
gist_star |
name_restates_behavior no_return_description |
Add a star to a Gist on behalf of the authenticated user, marking it as favorited. 'gistId' identifies the gist to star. Returns confirmation that the gist was starred. |
gist_unstar |
name_restates_behavior no_return_description |
Remove the authenticated user's star from a Gist. 'gistId' identifies the gist to unstar. Returns confirmation that the gist was unstarred. |
Selection evidence
Confusable tool pairs.
2 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
gist_list |
gist_starred |
medium | A vague request like 'show me my gists' or 'list my favorite gists' could be routed to either the general gist list or the starred-only list if the agent doesn't parse whether the user means all gists or specifically starred ones. |
gist_delete |
gist_unstar |
medium | A task phrased as 'remove this gist' or 'get rid of gist X' is ambiguous between permanently deleting the gist and merely unstarring/removing it from a starred list, since both are 'removal' actions on a gistId. |
Compare the field