0.0 / 30
What changed in the harness
Selection accuracy 96%, destructive-action safety rate 0% (baseline only -- no rewrite pass applied).
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
27.0 / 30
03Economics
16.6 / 20
04Discoverability
12.4 / 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.
0 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 |
|---|---|---|
| No description defects were flagged in this assessment. | ||
Selection evidence
Confusable tool pairs.
10 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
mindmap_forget |
mindmap_persona_forget |
medium | Both forget something the system knows (a memory thread vs a persona fact) and both take an id + hard flag; a user saying 'forget X about me' could target either, and the definitions don't make it clear how to tell a memory from a persona fact without the id source. |
mindmap_passport_import |
mindmap_import |
medium | Both are 'bring context in' tools; 'import my sessions/conversations' could mean scanning local AI-tool history (mindmap_import) or pulling from an exported/passport file (mindmap_passport_import), and only mention of a specific file disambiguates. |
mindmap_resume |
mindmap_resume_options |
medium | The pair splits one intent — resuming an ambiguously described topic: resume guesses the best match while resume_options lists candidates to ask the user, so a natural-language resume request can make an agent pick the wrong member (guessing instead of asking, or asking when unambiguous). |
mindmap_resume |
mindmap_search |
medium | Both take a natural-language query to relocate a past discussion; 'find/pull up the X discussion' could be served by read-only search or by resume's full-topic reassembly+promotion, and the definitions differ only by freshness side effects. |
mindmap_search |
mindmap_transcript |
medium | For 'show me the full conversation about X', search returns summaries (insufficient) while transcript returns full turns but requires an id; an agent can pick search and under-deliver, or call transcript without first locating the id. |
mindmap_health |
mindmap_tidy |
medium | Both are the gamified curation surface that surfaces stale/cold candidates; 'review/clean up my memory' plausibly maps to the health score+stale list or to tidy's keep/trim/forget batch. |
mindmap_prune |
mindmap_tidy |
medium | Both handle stale-memory curation; 'tidy/clean up stale memories' is ambiguous between prune's automated consolidation pass and tidy's manual review suggestions. |
mindmap_persona_learn |
mindmap_persona_sync |
low | An 'update/sync my persona' request could mean deriving new persona facts from memories (learn) or projecting the persona into tool instruction files (sync); the verbs overlap and only the target differs. |
mindmap_resume_options |
mindmap_search |
low | Both take a plain-language query and return a candidate list; 'find which of my discussions about X exists' is plausibly answered by either, though search is general while resume_options is framed around the resume flow. |
mindmap_persona_set |
mindmap_persona_learn |
low | 'Save/refresh my preferences' is ambiguous between explicitly persisting stated preferences (set) and deriving facts from existing memories (learn); the definitions don't always make the intended source clear. |
Compare the field