01Safety
0.0 / 30
What changed in the harness
Selection accuracy 100→100, token cost up 4%, 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
27.9 / 30
18.4 / 20
14.4 / 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
4 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 |
|---|---|---|
calculate_us_federal_tax |
params_unexplained |
Calculate US federal income tax for tax year 2026 using the IRS progressive brackets and the standard deduction for the chosen filing status. Use for a quick federal-only estimate; it does NOT include state income tax or FICA payroll taxes. Inputs: `income` (annual gross income in USD) and optional `filing_status` — one of 'single', 'married_joint' (married filing jointly), 'married_separate' (married filing separately), or 'head_of_household', each applying a different standard deduction and bracket set (default 'single'). Returns taxable income after standard deduction, federal tax, effective and marginal rates. Read-only and deterministic. Estimates only — not tax advice. |
calculate_mortgage |
no_return_description |
Calculate the fixed monthly payment, total interest and total cost of a mortgage or amortizing loan, with an optional month-by-month amortization schedule. Use for home-loan or any fixed-rate amortizing loan questions in any currency. Inputs: `principal` (amount borrowed), `annual_rate` (nominal annual interest rate in percent, e.g. 3.5), `years` (term in years), optional `with_schedule` (boolean — include the full amortization table). Returns the fixed monthly payment, total interest paid, total cost of the loan, and — when `with_schedule` is true — the first 12 months and final month of the amortization table. Read-only and deterministic. Does not include insurance, taxes or fees. |
calculate_vat_generic |
params_unexplained |
Add or remove VAT/GST/sales tax at any custom rate, for any country. Inputs: `amount` (the monetary amount to convert — interpreted as the before-tax amount when `mode` is 'ht', or the after-tax amount when `mode` is 'ttc'), `rate` (tax rate in percent), and optional `mode` (whether `amount` is before-tax or after-tax — default 'ht'). Returns amount before tax, amount after tax and the tax amount. Read-only and deterministic. Country-specific helpers (French/UK/Swiss VAT…) exist in the full catalog via get_bundle_tools('finance-universal'). |
calculate_tdee |
params_unexplained |
Calculate Total Daily Energy Expenditure (maintenance calories) by multiplying a Basal Metabolic Rate by a standard activity factor. Inputs: `bmr` (basal metabolic rate in kcal — compute it first if unknown) and `activity_level` — one of 'sedentary' (little/no exercise), 'light' (light exercise 1-3 days/week), 'moderate' (moderate exercise 3-5 days/week), 'active' (hard exercise 6-7 days/week), or 'very_active' (very hard exercise & physical job), each applying a different multiplier to the BMR. Returns TDEE in kcal/day. Read-only and deterministic. General guidance, not medical or dietary advice. |
Selection evidence
4 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
calculate_mortgage |
calculate_loan_payment |
high | Both compute a fixed amortizing-loan monthly payment from principal/rate/term; they differ only in whether term is expressed in years (mortgage, with optional schedule) or months (loan_payment). A generic 'calculate my loan payment' request with a term given in years but no schedule needed could easily be routed to either tool, and the mortgage tool's own description explicitly warns 'Prefer calculate_mortgage if you want a term in years', signaling the authors anticipated this overlap. |
calculate_french_income_tax |
calculate_french_salary |
medium | Both apply to French pay/tax in EUR for 2026 and cross-reference each other in their descriptions. A task like 'how much tax will I pay on my French salary' or 'what's left of my pay in France' could plausibly be routed to either the income-tax calculator (which needs net taxable income) or the gross-to-net salary converter (which computes social contributions, not income tax), especially if the agent doesn't parse whether the user's figure is gross salary or net taxable income. |
list_bundles |
get_bundle_tools |
medium | Both are catalog-discovery meta-tools with heavily overlapping descriptions ('bundle', 'catalog', 'macalc'). A request like 'what calculators are available for health/sante' could cause an agent to call list_bundles (which only enumerates bundle names) when get_bundle_tools(bundle_id='sante') is actually needed to see the tools inside that bundle, or vice versa if the agent already assumes it knows the bundle id. |
calculate_compound_interest |
calculate_loan_payment |
low | A vague query like 'how much interest will I pay on this loan over time' could nominally match either compound growth or amortizing loan payment, though the explicit cross-reference in calculate_compound_interest's description ('for loans/repayments use calculate_loan_payment') and differing required inputs (contribution-free growth vs. principal/rate/months) make real confusion less likely. |
Compare the field