RedHub AIRedHub AI
Tool Gate · How it works

How the roll-up gate works

How the Tool-Input Schema gate works

This tool grades every tool your AI agent can call - graded per parameter against the guards its kind and consequence require. It reads 5 tools and rolls them into one verdict — the worst, never the average — then a gate that can only make it worse.

The 5 tools

01issue_refundfix first3 params · weakest: amount - money param missing cross_field_ruleOPEN DOOR
02delete_records2 params · weakest: filter - destructive param missing maxOPEN DOOR
03lookup_customer2 params · weakest: email - identity param missing patternOPEN DOOR
04send_email2 params · weakest: recipient_count - missing maxLOOSE
05issue_refund_v23 params · weakest: currency - required/optional not statedLOOSE
REGISTRY TYPED
every tool TYPED - every param carries the guards its kind and consequence require
DOORS AJAR
worst tool is LOOSE - a guard or the required/optional flag is missing, but no high-consequence param is exposed
UNGUARDED
any money, identity, or destructive param is missing a guard its consequence requires - open door regardless of the rest
Consequence gate · worsen-only

A parameter whose consequence is money, identity, or destructive must declare every guard its kind requires. Miss one and it's OPEN DOOR (rank 2) instead of LOOSE (rank 1) - the same missing guard is judged harsher because of what the parameter can do, not how it's typed.

UNGUARDED

Why: 12 parameters across 5 tools, 7 fully typed. But 3 high-consequence parameters are missing a guard their consequence requires - issue_refund.amount (money, no cross_field_rule), delete_records.filter (destructive, no max), and lookup_customer.email (identity, no pattern) - and 2 more are only LOOSE. Guard coverage reads 58%, but coverage is context only: one open door on a money, identity, or destructive parameter is enough to make the whole registry UNGUARDED, worst-not-average. 3 of 12 params OPEN DOOR (3 of 5 tools) · guard coverage 58% · worst-not-average.

Fix firstissue_refund.amount - a money parameter with no cross_field_rule; nothing here can stop a refund larger than the order total.

No single tool is the crisis — the clustering is. The roll-up takes the worst, the gate escalates when trouble compounds, and it names the one thing to fix first. Grades the parameter contracts you declare; it calls no tool and executes nothing. Not legal or security advice.