The checks

Every check the guardrail runs, in the order a call meets them; the first that stops a call decides. They run in four stages:

  1. Tool kinds: each tool is known to read, write or send something out;
  2. the admission chain: checks that may refuse a call before anything else is asked;
  3. the tool check: the ten rules of the licensed tool check, the first that applies deciding;
  4. the checks of what was said: grounding, the S1 and S2 vetoes and the confirm read. These only ever make an answer stricter: a refusal stands, and a confirmation is never turned into an allow.

Pass checks=[...] to turn on only the checks listed; a check that cannot be switched off runs whether listed or not. Switching a check off withholds the input that check reads, so the tool check itself still decides every call.

S1, S2 and the confirm read read only the person's latest turn, and only when turns are given. Each has three modes: off; refuse, a strict block; and confirm, ask the person, which is the default. The confirm read never changes a call: a value it reads as missing or different makes the call wait for the person, and its reading is shown to them.

This page is made from the guardrail's own list of checks, so it says nothing of a check that the guardrail does not.

Check What it does, simply When it stops a call Can be switched off
Tool kinds Each tool is known to read, change something or send something out: from your file, the tool's own marks, or its name, description and arguments. A tool nobody marked counts as one that changes something. asked (a tool not known to read is a write) yes
Tool withdrawn A tool its owner withdrew from the registry cannot be used. refused no
Address not allowed A call cannot reach an address you do not allow, such as the cloud's metadata service or the company's own network. refused yes
Not the approved plan Where a person approved a plan, a call that is not its next step does not run. refused yes
Plan's tool tier Not active yet: every call passes. never (not active yet) yes
Labels Not active yet: every call passes. Outside content is stopped by the outside content check. never (not active yet) yes
Payment limit Not active yet: every call passes. Spending limits are set in your rules. never (not active yet) yes
Allowed tools Only tools on your list can be used, and only by a named agent where you say so. refused no
Session record The record of the calls already made must be intact; if anyone altered it, nothing more runs. refused no
Arguments Each call's values must fit the tool's own description (types, required fields, allowed values). refused yes
Destinations A tool may send something to an address only if it is known to send things out. refused yes
Order A tool runs only at an allowed point: after another, never after another, or at most N times. refused yes
Undo An undo must match the step it reverses, and a step is undone only once. refused yes
Your rules Your own rule sheet decides, e.g. "refunds over 100 need a manager"; limits per period and spending limits too. refused or asked, as the rule says yes
Outside content A call proposed after reading outside content (a web page, an email) is stopped where you forbid it. refused, or asked where your setting asks yes
Confirmation A call needing a person's yes runs only with that yes, signed; if nobody can give it, it does not run. refused no
Any other write Anything that changes something and no rule allowed waits for a person's yes. asked no
Grounding A value in a write that nobody said and no tool returned is asked about, never allowed and never refused. asked yes
S1: sending verb Where the person's turn asks to send something out and no tool sends anything, the call is stopped. asked by default; refused in strict mode yes
S2: destination Where the turn names a place to send to that no tool takes, and the call does not take it either, the call is stopped. asked by default; refused in strict mode yes
Confirm read The call is read against the turn, its values as typed. Where the turn gives a value the call lacks, or a different one, the person is shown both and asked. The call is never changed. asked by default; refused in strict mode yes

Tool kinds

Each tool is known to read, change something or send something out: from your file, the tool's own marks, or its name, description and arguments. A tool nobody marked counts as one that changes something.

checks.Setting("tool_kinds")

Tool withdrawn

A tool its owner withdrew from the registry cannot be used.

checks.Setting("withdrawn")

Address not allowed

A call cannot reach an address you do not allow, such as the cloud's metadata service or the company's own network.

checks.Setting("address")

Not the approved plan

Where a person approved a plan, a call that is not its next step does not run.

checks.Setting("plan_step")

Plan's tool tier

Not active yet: every call passes.

checks.Setting("tier")

Labels

Not active yet: every call passes. Outside content is stopped by the outside content check.

checks.Setting("labels")

Payment limit

Not active yet: every call passes. Spending limits are set in your rules.

checks.Setting("payment_limit")

Allowed tools

Only tools on your list can be used, and only by a named agent where you say so.

checks.Setting("allowed_tools")

Session record

The record of the calls already made must be intact; if anyone altered it, nothing more runs.

checks.Setting("session_record")

Arguments

Each call's values must fit the tool's own description (types, required fields, allowed values).

checks.Setting("arguments")

Destinations

A tool may send something to an address only if it is known to send things out.

checks.Setting("destinations")

Order

A tool runs only at an allowed point: after another, never after another, or at most N times.

checks.Setting("order")

Undo

An undo must match the step it reverses, and a step is undone only once.

checks.Setting("undo")

Your rules

Your own rule sheet decides, e.g. "refunds over 100 need a manager"; limits per period and spending limits too.

checks.Setting("your_rules")

Outside content

A call proposed after reading outside content (a web page, an email) is stopped where you forbid it.

checks.Setting("outside_content")

Confirmation

A call needing a person's yes runs only with that yes, signed; if nobody can give it, it does not run.

checks.Setting("confirmation")

Any other write

Anything that changes something and no rule allowed waits for a person's yes.

checks.Setting("any_other_write")

Grounding

A value in a write that nobody said and no tool returned is asked about, never allowed and never refused.

checks.Setting("grounded")

S1: sending verb

Where the person's turn asks to send something out and no tool sends anything, the call is stopped.

checks.Setting("s1_veto")

S2: destination

Where the turn names a place to send to that no tool takes, and the call does not take it either, the call is stopped.

checks.Setting("s2_veto")

Confirm read

The call is read against the turn, its values as typed. Where the turn gives a value the call lacks, or a different one, the person is shown both and asked. The call is never changed.

checks.Setting("confirm_read")