01Safety
30.0 / 30
What changed in the harness
Selection accuracy 100→100, token cost up 3%, unconfirmed writes 100%→100%.
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
20.8 / 30
14.4 / 20
19.5 / 20
Highest-impact fix
Estimated gain +1 pointState each tool's behavior, explain every parameter, and declare return semantics, prioritizing tools exercised by failed selection tasks.
Description evidence
34 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 |
|---|---|---|
validate_card |
no_return_description |
USE THIS to check a payment card number's structure before using it — never assume a card number is valid or guess its brand. Verifies the Luhn checksum, detects the brand (Visa, Mastercard, Amex, Discover, Diners, JCB, UnionPay) from its BIN, and checks the length. Returns whether the number is structurally valid along with the detected brand and checked length. Does NOT check whether the card is real, active or has funds. |
validate_tracking |
no_return_description |
USE THIS to identify the carrier for a parcel tracking number and check it is well-formed before trusting it or calling a tracking API — never guess the carrier or assume a tracking number is valid. Detects UPS, FedEx, USPS, DHL, OnTrac, Amazon Logistics and S10 international postal numbers, and verifies the carrier's check digit (mod10/mod7/S10/weighted-modulo). Returns whether the number is well-formed and, when it is, the detected carrier; if the number fits a carrier's pattern but the check digit fails it still returns the likely carrier with a flag indicating a probable typo. Validates structure only — it does NOT tell you where the parcel is or whether it exists. |
validate_email |
no_return_description |
USE THIS to check an email address's syntax AND that its domain TLD is real, before saving or sending — instead of trusting raw input. Validates the local part and domain (RFC 5321/5322 subset) and flags made-up TLDs. Returns whether the address is syntactically valid and whether its TLD is real. Does NOT check deliverability. |
validate_sedol |
no_return_description |
USE THIS to verify a SEDOL (LSE securities identifier) before relying on it. Checks the no-vowels alphabet and the weighted mod-10 check digit, and returns whether the identifier is valid. |
validate_lei |
no_return_description |
USE THIS to verify a Legal Entity Identifier (LEI) before relying on it — do not assume a 20-character code is valid. Checks the ISO 17442 / ISO 7064 MOD 97-10 check digits and returns whether the code is valid. |
validate_routing |
no_return_description |
USE THIS to verify a US bank routing / ABA transit number before relying on it for a payment or direct deposit. Checks the 9-digit weighted (3,7,1) mod-10 checksum and returns whether the number is valid. Does NOT check whether the bank or account is real. |
validate_cpf |
no_return_description |
USE THIS to verify a Brazilian CPF (individual taxpayer ID) before relying on it — never assume 11 digits are valid. Checks the two mod-11 check digits and rejects all-identical sentinels, returning whether the CPF is valid. Call this for KYC/onboarding of Brazilian individuals. |
validate_cnpj |
no_return_description |
USE THIS to verify a Brazilian CNPJ (company registration number) instead of trusting 14 digits. Checks the two mod-11 check digits and returns whether the CNPJ is valid. Call this for onboarding Brazilian businesses. |
validate_aadhaar |
no_return_description |
USE THIS to verify the format and checksum of an Indian Aadhaar number — never assume 12 digits are valid. Checks the Verhoeff check digit and the leading-digit rule, and returns whether the number is well-formed. Validates structure only; does NOT look the number up. |
validate_codice_fiscale |
no_return_description |
USE THIS to verify an Italian Codice Fiscale (personal tax code) before relying on it — do not guess the final check letter. Checks the 16-character format and the mod-26 check character, and returns whether the code is well-formed. Validates structure only; does NOT confirm the code is registered with the Agenzia delle Entrate. |
validate_pesel |
no_return_description |
USE THIS to verify a Polish PESEL (national identification number) before relying on it — never assume 11 digits are valid. Checks the weighted mod-10 check digit and returns whether the PESEL is valid. Call this for KYC/onboarding of Polish individuals. |
validate_bsn |
no_return_description |
USE THIS to verify a Dutch BSN (burgerservicenummer / citizen service number) before relying on it. Checks the 8–9 digit form and the '11-test' (elfproef) checksum, and returns whether the BSN is well-formed. Validates structure only; does NOT confirm the number is issued. |
validate_be_nrn |
no_return_description |
USE THIS to verify a Belgian National Register Number (Rijksregisternummer / Numéro de Registre National) before relying on it. Checks the 11-digit form and the mod-97 check (handling the born-from-2000 rule), and returns whether the number is well-formed. Validates structure only. |
validate_personnummer |
no_return_description |
USE THIS to verify a Swedish personnummer (personal identity number) before relying on it — never assume the digits are valid. Accepts the 10- or 12-digit form, checks the Luhn check digit, and returns whether the personnummer is valid. Validates structure only; does NOT confirm the number is registered. |
validate_fodselsnummer |
no_return_description |
USE THIS to verify a Norwegian fødselsnummer (national identity number) before relying on it. Checks the 11-digit form and both mod-11 control digits, and returns whether the fødselsnummer is valid. Validates structure only; does NOT confirm the number is registered. |
validate_hetu |
no_return_description |
USE THIS to verify a Finnish henkilötunnus (HETU / personal identity code) before relying on it — do not guess the check character. Checks the DDMMYY + century sign + individual number + mod-31 check character, and returns whether the HETU is well-formed. Validates structure only. |
validate_nif_pt |
no_return_description |
USE THIS to verify a Portuguese NIF (Número de Identificação Fiscal / tax number) before invoicing or onboarding — never assume 9 digits are valid. Checks the mod-11 check digit and returns whether the NIF is valid. For the Spanish tax ID use validate_dni. |
validate_tckn |
no_return_description |
USE THIS to verify a Turkish T.C. Kimlik No (TCKN / national identity number) before relying on it — never assume 11 digits are valid. Checks both algorithmic check digits and the leading-digit rule, and returns whether the TCKN is valid. Validates structure only; does NOT confirm the number is registered. |
validate_china_ric |
no_return_description |
USE THIS to verify a Chinese Resident Identity Card number (居民身份证) before relying on it — do not guess the check character. Checks the 18-character form and the ISO 7064 MOD 11-2 check character (which may be 'X'), and returns whether the number is well-formed. Validates structure only; does NOT confirm the number is registered. |
validate_de_steuer_id |
no_return_description |
USE THIS to verify a German tax ID (Steuer-Identifikationsnummer / IdNr) before relying on it — never assume 11 digits are valid. Checks the ISO 7064 product-method check digit and returns whether the ID is well-formed. Validates structure only; does NOT confirm it is registered. |
validate_fr_nir |
no_return_description |
USE THIS to verify a French social-security number (NIR / numéro de sécurité sociale, INSEE) before relying on it — do not guess the key. Checks the 13-digit body (Corsica 2A/2B handled) and the mod-97 two-digit key, and returns whether the NIR is well-formed. Validates structure only. |
validate_ch_ahv |
no_return_description |
USE THIS to verify a Swiss social-insurance number (AHV/AVS, 756.…) before relying on it. Checks the 13-digit form starting 756 and the EAN-13 check digit, and returns whether the number is well-formed. Validates structure only. |
validate_mx_curp |
no_return_description |
USE THIS to verify a Mexican CURP (Clave Única de Registro de Población) before relying on it — do not guess the check digit. Checks the 18-character format and the base-37 check digit, and returns whether the CURP is well-formed. Validates structure only. |
validate_hr_oib |
no_return_description |
USE THIS to verify a Croatian OIB (Osobni identifikacijski broj / personal identification number) before relying on it. Checks the 11-digit form and the ISO 7064 MOD 11,10 check digit, and returns whether the OIB is well-formed. Validates structure only. |
validate_ro_cnp |
no_return_description |
USE THIS to verify a Romanian CNP (Cod Numeric Personal) before relying on it — never assume 13 digits are valid. Checks the weighted mod-11 check digit and returns whether the CNP is well-formed. Validates structure only. |
validate_bg_egn |
no_return_description |
USE THIS to verify a Bulgarian EGN (Единен граждански номер) before relying on it. Checks the 10-digit form and the weighted mod-11 check digit, and returns whether the EGN is well-formed. Validates structure only. |
validate_ee_isikukood |
no_return_description |
USE THIS to verify an Estonian isikukood (personal identification code) before relying on it. Checks the 11-digit form and the two-stage mod-11 check digit, and returns whether the isikukood is well-formed. Validates structure only. |
validate_cz_rc |
no_return_description |
USE THIS to verify a Czech or Slovak rodné číslo (birth number) before relying on it. Checks the modern 10-digit form's mod-11 rule (9-digit pre-1954 numbers have no check digit), and returns whether the number is well-formed. Validates structure only. |
validate_isbn10 |
no_return_description |
USE THIS to verify an ISBN-10 (older book identifier) instead of trusting 10 characters. Checks the mod-11 check digit (which may be 'X') and returns whether the ISBN-10 is valid. For 13-digit ISBNs use validate_isbn. |
validate_orcid |
no_return_description |
USE THIS to verify an ORCID researcher identifier instead of trusting 16 digits. Checks the ISO 7064 MOD 11-2 check digit (which may be 'X'); accepts the bare ID or an orcid.org URL and returns whether the identifier is valid. |
format_currency |
no_return_description |
USE THIS to format a money amount the way a reader in a locale expects (symbol position, separators) before showing it in a price, invoice or email. Returns the formatted amount as a string with the locale-appropriate symbol and separators, e.g. 1234.5 GBP en-GB → '£1,234.50'. |
is_holiday |
no_return_description |
USE THIS to check whether a date is a public/bank holiday when computing business-day deadlines, delivery SLAs or 'next working day'. Supports ~200 countries (ISO code, e.g. GB, US, ZA, DE, IN); GB defaults to England — pass a subdivision ('SCT'/'WLS'/'NIR', or a US state) to narrow. Returns whether the given date is a public/bank holiday in that country/region. |
next_holiday |
no_return_description |
USE THIS to find the next public/bank holiday on or after a date (default today) — e.g. to find the next working day. Supports ~200 countries (ISO code, e.g. GB, US, ZA, DE); subdivision narrows to a region. Returns the date of the next public/bank holiday on or after the given date. |
validate_vat |
no_return_description |
USE THIS to verify an EU/EFTA VAT registration number's format and checksum before invoicing or onboarding a business — instead of trusting it looks right. Covers all EU members plus UK/EFTA. Pass the full number incl. country prefix (e.g. DE136695976) or the digits plus a country code. Returns whether the number's format and checksum are valid. NOTE: checks format+checksum only; does NOT confirm the number is live-registered (that is a VIES lookup). |
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 |
|---|---|---|---|
validate_eth_address |
validate_btc_address |
high | Both tools are named 'validate_*_address' and both descriptions open with 'before sending funds or storing it'. A task like 'validate this wallet/crypto address before sending funds' that omits the currency (or just says 'crypto address') leaves the agent to guess between Ethereum and Bitcoin; the two format families are not distinguishable from the tool definitions alone without the coin type. |
validate_isbn |
validate_isbn10 |
high | The generic word 'ISBN' maps to both, and validate_isbn is the default-looking choice. A task like 'validate this book's ISBN' for a 10-digit identifier could route to validate_isbn (ISBN-13 only) unless the agent notices the length/version distinction and reads the intra-family pointer in validate_isbn10's description. |
is_holiday |
next_holiday |
medium | Both descriptions explicitly cite 'next working day' as a use case, so a task like 'find the next working day / next bank holiday for a deadline' is ambiguous: an agent might call is_holiday and scan date-by-date, or might call next_holiday on a specific date when they only meant to check a single day. |
validate_isin |
validate_sedol |
medium | Both are securities identifiers in the same domain with very similar wording ('verify a ... securities identifier before relying on it'). A task like 'validate this stock/security code' without stating ISIN vs SEDOL (or the 12-char vs 7-char format) makes the choice genuinely ambiguous. |
validate_isin |
validate_lei |
low | Both are ISO financial identifier codes (12-char ISIN instrument code vs 20-char LEI legal-entity code) framed as 'verify a code before relying on it'. A vague task like 'validate this financial identifier code the company gave us' could plausibly pick either, though the descriptions name distinct domains (instrument vs legal entity). |
validate_domain |
validate_email |
low | Both validate real TLDs, so a task like 'check that the domain in this email has a real TLD' is ambiguous between validating the whole email (validate_email, which also checks syntax) and extracting and validating just the domain (validate_domain) — an agent could pick either and under- or over-cover the intent. |
Compare the field