Expand description
VIGIL intent gate — the live in-loop verify-before-commit call-site
(arXiv 2601.05755; docs/proposals/intent-grounded-verification.md).
The VIGIL slices shipped as stateless verify/policy cores
(car_verify::intent::check_intent / gate_intent,
car_policy::intent_gate::enforce_intent); nothing on the runtime
called them on a normal proposal. This module attaches them to the
executor’s admission seam as an AdmissionGate — per the epic-merge
review’s unification finding: ONE enforcement plumbing, the executor’s
central ledger resolution (A7), instead of a second parallel
ledger-resolving authority.
Semantics preserved from the cores: a forbidden capability or a
tool-stream-influenced out-of-intent action (reachable from an
untrusted tool’s result through the dependency graph — the injection
signature) is a hard Reject, never approvable. Untainted drift is
policy-driven (default: escalate to approval, resolved against the
durable ledger by content-bound fingerprint).
Project config: .car/intent.json (the tool-labels.json idiom) —
an IntentGateConfig naming the intent spec, the untrusted_tools
whose outputs count as tool-stream input, and the untainted-drift
policy.
Structs§
- Intent
Gate - The admission gate. Cheap and side-effect-free per the seam contract: the cores are pure and the config is captured at construction.
- Intent
Gate Config - The deserialized
.car/intent.jsondocument. - Intent
Load Error - Error raised while loading
.car/intent.json.
Functions§
- load_
intent_ config - Load
.car/intent.json. Absent file ⇒Ok(None)(the gate is opt-in); a present-but-malformed file is a loud error, never a silently-ungated session (the strict-and-loud A2 loader stance).