Skip to content

Use cases

One template, five domains, every overlay runnable against the shipped engine. Each page follows the same four beats so you can compare them, and each ends with an honest status line.

Beat What you will find
The scene The decision an agent is being asked to make, and what goes wrong when a prompt makes it
The overlay A small Turtle file: classes, constraints, a RulesOnly decision property, and the rules — pulled verbatim from examples/
The decision, with proof Facts in, a derived decision and its proof tree out; the refusal when something tries to set the decision directly; truth maintenance when a fact changes
Why verification matters here What verify()'s completeness, conflict, dead-rule and non-vacuity checks report about this rule set — including the gaps they found and what closing them required — and what stays out of scope

All thresholds in the gallery overlays are illustrative teaching values, not clinical, regulatory, or safety guidance. The triage example (examples/triage/) is the framework's flagship fixture; the gallery overlays live in examples/gallery/ and exist to show the shape.

  • Health — VTE prophylaxis (the recommended first standards-anchored vertical slice), the triage flagship, and why prior authorization is a later build.
  • Coding — CI failure triage, and merge/release gating through the change gate.
  • Insurance — first-pass claims adjudication where every denial is an appealable proof tree.
  • Physical AI — a shield between a learned policy and an actuator: typed preconditions gate motion commands.
  • Customer operations — airline change and refund eligibility, the shape of the τ-bench airline tasks.

What every page shares

  • A decision property marked horis:assignedBy horis:RulesOnly. No model, tool, or API caller can set it; only a rule firing can.
  • A refusal, shown, when something tries.
  • Proof trees whose leaves name the provenance of every fact they rest on.
  • A fail-closed default: when the facts a rule needs are missing, a rule decides that case explicitly and the proof names the missing observation — never a silent default, and verify() refuses to load an overlay that leaves any region undecided.
  • Rules written against concepts, so coverage grows with the vocabulary (see the quickstart's SNOMED step) rather than with the prompt.