0.0 / 30
What changed in the harness
Selection accuracy 98%, 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.8 / 30
03Economics
8.1 / 20
04Discoverability
19.2 / 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.
7 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
score_citation_worthiness |
score_test_citation |
high | Near-identical names and overlapping purpose (both score a page/text for AI citation and both accept url/text). A task like 'will ChatGPT cite this page for this query?' or 'score how likely this content gets cited' could plausibly route an agent to either, since worthiness returns a 0-100 score and test_citation returns a cite/no-cite verdict — the distinction only becomes clear if the user explicitly asks for a verdict vs a score. |
rewrite_aeo |
rewrite_geo |
medium | Both rewrite a content block for AI-engine optimization with the same input schema (url/text, target_query, max_words). A vague task like 'rewrite this text to rank better in AI search results' or 'optimize this content for ChatGPT' is genuinely ambiguous — the AEO (BLUF/FAQ, direct answers) vs GEO (entity-rich/comparison synthesis) split only matters if the user specifies the answer surface. |
audit_site |
audit_sitemap |
medium | Both are domain-level audits taking the same 'domain' input, and a task like 'run a site audit on example.com' or 'how does my site's content score overall?' could route to either. audit_site is a homepage-only composite grade while audit_sitemap samples N URLs across the site — the agent must infer intent from terms like 'overall grade' vs 'content health' to pick correctly. |
llms_txt_generate |
llms_txt_validate |
medium | Both target the llms.txt spec and share tokens like 'optionally' and 'spec'. A user task phrased as 'help me with my llms.txt' or 'make sure my llms.txt is in order' is ambiguous — generate creates one from the sitemap while validate checks an existing file; only explicit verbs like 'create' vs 'check' settle it, and the shared domain/url fetching makes either defensible. |
score_ai_overview_eligibility |
score_citation_worthiness |
medium | Both score a URL/text for appearing in AI search results and share 'score' + 'page' + AI/Google tokens. A task like 'score this page's chances of showing up in AI answers' or 'how likely will Google cite this page in AI Overviews?' could plausibly invoke either; one measures URL ranking probability for AI Overviews while the other measures the inherent citability of a text passage. |
audit_page |
audit_schema |
low | audit_page runs the schema sub-audit and is described as the default entry point, so a task like 'check the structured data/JSON-LD on this URL' could route to the heavier full audit instead of the focused audit_schema. The descriptions do disambiguate (schema-only vs full audit), so confusion is possible but unlikely once read. |
audit_page |
audit_site |
low | A user pasting a URL and saying 'audit this page/site' could land on either: audit_page is the single-URL deep dive while audit_site is a homepage-only domain sweep. The domain-vs-URL input schema usually resolves it, but a task like 'audit this site's homepage: https://example.com' is defensible for both, so some ambiguity exists. |
Compare the field