Machine-readable Dutch law execution. regelrecht takes legal texts, encodes them as structured YAML, and runs them as deterministic decision logic.
- The engine takes a regulation and a set of inputs, evaluates the decision logic, and returns a result with a full explanation trail
- Laws are tested against real-world scenarios using BDD (Gherkin) tests, many derived from legislative explanatory memoranda
- A harvester downloads and tracks Dutch legislation from the official BWB repository
- Regulations can be edited through a web UI with live execution preview
| Package | Description |
|---|---|
| packages/engine/ | Law execution engine (also compiles to WASM) |
| packages/harvester/ | Downloads Dutch legislation from BWB |
| packages/pipeline/ | PostgreSQL job queue for law processing |
| packages/admin/ | Admin dashboard API (Axum) |
| packages/editor-api/ | Backend API for the law editor |
| packages/corpus/ | Git integration for the regulation corpus |
| packages/shared/ | Shared domain types across crates |
| packages/tui/ | Terminal dashboard (Ratatui) |
| Directory | Description |
|---|---|
| frontend/ | Law editor UI (Vue 3 + Vite) |
| frontend-lawmaking/ | Law-making process visualization (Vue 3 + Vite) |
| landing/ | Landing page |
| docs/ | Documentation site (VitePress) |
| Directory | Description |
|---|---|
| corpus/regulation/ | Dutch regulations in machine-readable YAML |
| schema/ | Versioned JSON schema for the law format (current: v0.5.1) |
| features/ | Gherkin BDD scenarios for law execution |
| packages/grafana/ | Grafana monitoring dashboards |
| Service | URL |
|---|---|
| Editor | https://editor.regelrecht.rijks.app |
| Landing page | https://regelrecht.rijks.app |
| Documentation | https://docs.regelrecht.rijks.app |
| Law-making | https://lawmaking.regelrecht.rijks.app |
| Harvester admin | https://harvester-admin.regelrecht.rijks.app |
| Grafana | https://grafana.regelrecht.rijks.app |
PR preview environments are deployed automatically and cleaned up when the PR is closed.
Prerequisites: Rust (stable) and just.
just check # run all quality checks (format, lint, build, validate, tests)
just test # unit tests only
just bdd # BDD tests only
See the docs site for full development instructions.