01Safety
30.0 / 30
Public assessment
What changed in the harness
Selection accuracy 98%, destructive-action safety rate 100% (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.
30.0 / 30
26.6 / 30
9.2 / 20
13.4 / 20
Highest-impact fix
Estimated gain +11 pointsConsolidate overlapping tools and trim repetitive schema text while preserving behavior, parameter, and return semantics.
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
14 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
icd11_search |
cid10_search |
high | The same disease term (e.g. diabetes) is valid input to both; a task like 'find the code for diabetes' is ambiguous between the international ICD-11 search and the Brazilian CID-10 search. cid10_search's own description warns readers to use icd11_search for the international revision, showing this confusion is real and expected. |
cid10_chapters |
cid10_chapter |
medium | The names differ only by singular vs plural and both describe chapter navigation; a task like 'show me the CID-10 chapter information' is ambiguous between listing all 22 chapters and drilling into one chapter's constituent groups. |
icd11_chapters |
cid10_chapters |
medium | A task like 'list the disease-classification chapters' does not specify ICD-11 vs Brazilian CID-10, and both tools return top-level chapter lists, so the agent can pick the wrong revision's chapter list. |
mesh_descriptor |
mesh_tree |
medium | mesh_descriptor explicitly advertises 'view tree numbers showing hierarchy location', so a task like 'what is the tree number for D015242' can be routed to the descriptor tool instead of the dedicated mesh_tree tool, even though tree is the precise match. |
atc_lookup |
atc_members |
medium | Both accept the same 1-5 character atc_code; a task like 'what is A10BA' is genuinely ambiguous between resolving the class name and level (lookup) and enumerating the member substances (members). |
icd11_search |
icd11_lookup |
medium | A task like 'look up type 2 diabetes in ICD-11' supplies a disease name that only icd11_search can handle, but the verb 'look up' and the lookup tool's unpatterned code parameter can steer the agent to icd11_lookup; conversely 'get info on code BA00' may pull search. |
terminology_versions |
terminology_diff |
medium | Tasks like 'what version information do you have for LOINC' do not clarify whether the user wants the current version and release metadata (versions) or the available version-to-version diff data (diff); the shared version theme makes either pick plausible. |
loinc_search |
mesh_search |
medium | A bare query such as 'search for glucose' carries no system cue; both accept a free-text query, but mesh_search returns literature subject headings while loinc_search returns lab-test codes, so the wrong pick returns results from the wrong domain. |
icd11_lookup |
icd11_hierarchy |
low | Both accept an ICD-11 code; a vague task like 'get the broader information and structure around BA00' is ambiguous between the full-definition tool and the parent/child navigation tool, though each description's focus is fairly distinct. |
loinc_details |
loinc_panels |
low | Both take the same loinc_num; a task like 'tell me about the contents or structure of LOINC 24356-8' is ambiguous between the general details tool and the panel-structure tool, though the panel-specific wording should usually disambiguate. |
loinc_answers |
loinc_panels |
low | Both return items associated under a LOINC code; a task like 'show me the options/items for this LOINC code' is ambiguous between questionnaire answer lists (answers) and panel components (panels), but the descriptions name distinct use cases. |
rxnorm_concept |
rxnorm_ingredients |
low | Both take an rxcui; a task like 'what ingredients are in drug 161' is best served by rxnorm_ingredients, but rxnorm_concept advertises related ingredients and brands via include_related, so an agent seeking comprehensive detail may pick concept instead. |
atc_classify |
atc_lookup |
low | Both descriptions contain 'look up'; a task like 'look up the ATC code for metformin' supplies a drug name that only atc_classify accepts, but the agent may misfire to atc_lookup, which expects an ATC code pattern the name does not satisfy. |
cid10_search |
cid10_lookup |
low | A task like 'look up diabetes in CID-10' supplies a term that cid10_search handles and cid10_lookup cannot, yet the verb 'look up' maps onto cid10_lookup's name; ambiguity mostly arises when the user phrases a lookup-style request but supplies text instead of a code. |
Compare the field