01Safety
0.0 / 30
What changed in the harness
Selection accuracy 98→96, token cost up 4%, 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.1 / 30
20.0 / 20
14.0 / 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
4 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 |
|---|---|---|
memory_read |
no_return_description |
Load the agent memory index (MEMORY.md) and return its contents; when called with no arguments the lightweight index is returned cheaply. Pass `topics` only when you need the full content of a specific topic file, and those contents are returned alongside the index. |
memory_append_session |
no_return_description |
Append a session summary to the sessions directory and return confirmation that the append succeeded. Call this at the end of meaningful exchanges; the daemon later extracts durable memories from it. Keep summaries focused on durable findings and decisions (target 300-800 tokens), not play-by-play. |
memory_search |
name_restates_behavior no_return_description |
When you need to recall a specific fact without loading everything, search all memory files for a case-insensitive substring and return the matching content. Use this instead of loading full topic files when you only need targeted matches. |
memory_daemon_status |
no_return_description |
Return the current status of the memory consolidation daemon, reporting whether it is running, not installed, or not available on this platform. |
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 |
|---|---|---|---|
memory_read |
memory_search |
medium | Both serve recall tasks ('what do I know about X', 'recall my preferences/projects'). An agent asked to recall specific facts could plausibly choose memory_read (loading the index or named topic files) or memory_search (substring query) since neither description clearly prescribes when one beats the other; only file-centric vs substring-centric framing disambiguates. |
Compare the field