Rule playground
Each rule below is a Catala module from rules/. Pick a rule, edit the inputs, and the predicate runs server-side via catala interpret -F json and returns the structural reading. The shape of every input field comes from catala json-schema; the form is auto-generated.
Required: api/server.py running locally with catala on PATH.
How to use this page
Run a single legal rule, end to end
A "rule" here is a real legal test from a real tribunal — for example, the Ladd v Marshall three-prong test for admitting fresh evidence on appeal, or DIFC's RDC 38 indemnity-costs rule. Each rule has been written in Catala (a programming language for law). On this page you supply the facts, the rule runs, and you see the verdict plus the step-by-step trace of how it got there.
Three steps
Pick a rule from the dropdown above. The form below auto-generates from the rule's input schema — every field corresponds to a fact the rule needs.
Fill in the facts. Booleans render as dropdowns, enums as picklists, numbers as text inputs, and lists let you add or remove items. Defaults are pre-seeded so you can experiment quickly.
Click "Run rule". The right-hand panel shows the rule's output (the disposition) and the trace — a step-by-step record of which clauses fired and which inputs they read.
What the output means
Disposition — the rule's verdict (admissible / not admissible, costs awarded, claim succeeds, etc.). Shape varies per rule.
Trace — every clause the interpreter visited, in order. This is what makes the result auditable : you can show a judge exactly why the rule said what it said.
Schema view — toggle on to see the rule's input/output JSON schema, which is what the form is built from.
If the dropdown is empty or "Run rule" is greyed out, the API server is not running. From the repo root: python3 api/server.py.
Rule
Loading…
Run rule
Reset to schema defaults
Predicate output
idle
raw
copy
Run the rule to see the predicate's reading.