01Safety
0.0 / 30
What changed in the harness
Selection accuracy 95%, destructive-action safety rate 0% (baseline only -- no rewrite pass applied).
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.4 / 30
19.2 / 20
8.7 / 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
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
6 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
verity_search |
verity_research |
high | A task like 'research X' or 'search for X and summarize it' fits both: both take a query and return web results, but verity_research bundles search+scrape+summarize into one result while verity_search only returns snippets, so an agent often picks the cheaper/partial tool. |
l402_balance |
l402_spending_report |
medium | A user asking 'how much have I spent' or 'show me my spending' is ambiguous: l402_balance returns only remaining sats, while l402_spending_report gives the per-domain/transaction breakdown; from the names and shared 'balance/spending' semantics either seems like a valid status query. |
l402_balance |
l402_set_budget |
medium | A request like 'what's my budget?' fits both: l402_balance reports remaining sats while l402_set_budget (misleadingly named) only echoes the startup cap and can't change it, so a task to 'set' or 'check the budget limit' can route to the wrong read-only tool. |
verity_research |
verity_alpha |
medium | Both accept a free-form query and return analysis; a crypto task like 'research the current narrative/market' could pick generic verity_research when timing-aware verity_alpha was intended, since only alpha's long description distinguishes strategic actionable intelligence from plain research. |
verity_summarize |
verity_sentiment |
medium | Both consume raw text and return an analysis; a vague instruction like 'analyze this text' or 'give me insight on this text' leaves the agent choosing between summarization and sentiment, and both descriptions fit a plain-text single-argument input. |
verity_search |
verity_scrape |
medium | Both answer web-information requests: a user saying 'look up this article/URL' or 'find information from this page' is ambiguous because verity_search returns snippets for a query while verity_scrape extracts full content from a URL, and neither description clearly disambiguates 'search' vs 'extract content'. |
Compare the field