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.3 / 30
20.0 / 20
13.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
1 defect 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 |
|---|---|---|
list_kavel_models |
name_restates_behavior no_return_description |
List the AI models Kavel runs (image and video), each model's strengths and typical use cases, and which models offer a free tier. Returns a list of models with their type, purpose, and free-tier availability so the user can pick the right one for their task. |
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 |
|---|---|---|---|
list_kavel_tools |
list_kavel_models |
medium | Names differ by a single token ('tools' vs 'models'). A task like 'what does Kavel offer for images and videos' doesn't specify whether the user wants generators or underlying models, so an agent leaning on the near-identical names could list the wrong set. |
build_kavel_prompt |
open_in_kavel |
medium | Both deliver a tuned prompt for a Kavel tool: one as text to paste, the other pre-set into a direct generator URL. A task like 'give me the prompt for a figurine' or 'help me make a wedding photo' plausibly maps to either, and both take the same tool-slug input. |
list_kavel_tools |
open_in_kavel |
medium | Both return the direct URL to a Kavel generator page. A task like 'find/open the link for the dancing-video generator' is ambiguous: list_kavel_tools needs a goal query, open_in_kavel needs a slug from that list, yet either result could satisfy the user. |
Compare the field