01Safety
0.0 / 30
What changed in the harness
Selection accuracy 97→97, 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
27.6 / 30
20.0 / 20
12.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
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 |
|---|---|---|
openclaw_status |
no_return_description |
Get OpenClaw gateway status and health information. Returns the gateway's status and health details for the target instance (defaults to the default instance). |
openclaw_task_list |
no_return_description |
List all OpenClaw tasks, optionally filtered by status, session, or instance. Returns a list of tasks matching the given filters. |
openclaw_task_cancel |
no_return_description |
Cancel a pending OpenClaw task. Only works for tasks that haven't started yet. Returns confirmation of the cancellation result. |
openclaw_instances |
no_return_description |
List all configured OpenClaw instances. Returns the instance names, URLs, and which is the default. Use instance names in other tools to target a specific OpenClaw gateway. |
Selection evidence
4 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
openclaw_chat |
openclaw_chat_async |
high | A task like 'send a message to OpenClaw' matches both definitions (both send a message), with the only difference being synchronous vs. async and task_id polling, which a natural-language request rarely specifies. |
openclaw_status |
openclaw_task_status |
medium | A request like 'check the status of OpenClaw' is ambiguous between gateway health (openclaw_status) and the status of an async task (openclaw_task_status); both descriptions contain 'status' and neither requires a task_id upfront. |
openclaw_task_status |
openclaw_task_list |
low | A request such as 'what's the status of my tasks' could map to either listing tasks (with a status filter) or checking one task's status, though the required task_id in openclaw_task_status usually disambiguates. |
openclaw_task_list |
openclaw_instances |
low | A vague 'list everything' or 'show all' request could lead to listing tasks instead of instances, but the descriptions name different entities, making confusion unlikely. |
Compare the field