ReferenceDecision records (ADRs)
Architecture decision records
Why Rule Cascade is designed the way it is: one record per decision, with its context and consequences.
| Record | Decision |
|---|---|
| ADR 0001 | Expressions are a JSON tree of {op, args} nodes |
| ADR 0002 | Embedded runtimes first, a central engine second |
| ADR 0003 | Doubles on the way in, decimal arithmetic inside, 15 significant digits on the way out |
| ADR 0004 | One parent per ruleset, and parents decide what children may change |
| ADR 0005 | Compile once into a bundle; evaluators and compilers are separate conformance levels |
| ADR 0006 | matches accepts one portable subset of regular expressions, with one meaning |
| ADR 0007 | The engine as a program: JSON Lines protocol, single-file command, WASI module |
| ADR 0008 | Reuse through functions in the contract; escape through host-supplied operators |
| ADR 0009 | Rules target logical places and semantic data types |
Architecture
Rule Cascade keeps three things apart: writing a rule, compiling it, and evaluating it. Rules are written once as a ruleset, compiled once into a JSON bundle, and evaluated by whichever engine sits closest to the caller.
ADR 0001: Expressions are a JSON tree of {op, args} nodes
Status: accepted