rslc compiler.
The rslc command checks, formats, tests and packages RSL. Each section shows a command as rslc COMMAND --help prints it.
Every command takes --json and then prints one JSON value on standard output.
rslc check
Check a rater or a guideline and print each message.
usage: rslc check [-h] [--allow-incomplete] [--json] source
positional arguments:
source path to the rater .rsl source
options:
-h, --help show this help message and exit
--allow-incomplete allow unresolved authoring holes; all other obligations
still fail
--json emit exactly one JSON value on stdout
rslc eval
Run a scenario file and print its values.
usage: rslc eval [-h] [--partial] [--axes JSON] [--json] source
positional arguments:
source path to a scenario .rsl source
options:
-h, --help show this help message and exit
--partial inspect computable values in incomplete authoring
--axes JSON partial mode only: axis narrowing, e.g. '{"coverage":["BI"]}'
--json emit exactly one JSON value on stdout
rslc export
Package a rater as a bundle.
usage: rslc export [-h] --format {bundle} [--out OUT]
[--wasm-runtime WASM_RUNTIME] [--json]
source
positional arguments:
source path to the rater .rsl source
options:
-h, --help show this help message and exit
--format {bundle} artifact to generate: a deployable bundle ZIP with a
book schema and identity prepare
--out OUT output path for the bundle ZIP
--wasm-runtime WASM_RUNTIME
rslc_wasm.wasm to embed as the bundle's engine
(default: the one this install ships, or
RSLC_WASM_RUNTIME)
--json emit exactly one JSON value on stdout
rslc fmt
Rewrite a file in the canonical format.
usage: rslc fmt [-h] [--check] [--json] source
positional arguments:
source path to an .rsl source
options:
-h, --help show this help message and exit
--check do not write; fail when formatting would change
--json emit exactly one JSON value on stdout
rslc inputs
Sample or validate the requests a rater accepts.
usage: rslc inputs [-h] OPERATION ...
positional arguments:
OPERATION
sample generate requests that the rater accepts
validate check one request against the rater's input rules
options:
-h, --help show this help message and exit
rslc inputs sample
Generate requests that the rater accepts.
usage: rslc inputs sample [-h] [--n N] [--seed SEED] [--invalid]
[--json-lines OUT] [--json]
source
positional arguments:
source path to the rater .rsl source
options:
-h, --help show this help message and exit
--n N number of inputs
--seed SEED unsigned 64-bit seed
--invalid break one admission form per row (variant, NonEmpty, max,
key, [child]) and record the refusal
--json-lines OUT also write one versioned row record per line
--json emit exactly one JSON value on stdout
rslc inputs validate
Check one request against the rater’s input rules.
usage: rslc inputs validate [-h] [--json] source candidate
positional arguments:
source path to the rater .rsl source
candidate path to a JSON rate() payload, or - for stdin
options:
-h, --help show this help message and exit
--json emit exactly one JSON value on stdout
rslc plan
Ask a basket of raters’ questions, one card at a time.
usage: rslc plan [-h] OPERATION ...
positional arguments:
OPERATION
start start a journey file and show the first card
next show the next card and the settled raters
answer answer a card and show the next
skip put a card off and show the next
dismiss decline a document card and show the next
search search a search card's answers
options:
-h, --help show this help message and exit
rslc plan start
Start a journey file and show the first card.
usage: rslc plan start [-h] --rater ID=BUNDLE [--title ID=NAME]
[--section NAME] [--json]
JOURNEY
positional arguments:
JOURNEY the journey file to write
options:
-h, --help show this help message and exit
--rater ID=BUNDLE a rater bundle directory and the id the planner names it
by (repeat)
--title ID=NAME the name a person reads for a rater (repeat)
--section NAME section order (repeat)
--json emit exactly one JSON value on stdout
rslc plan next
Show the next card and the settled raters.
usage: rslc plan next [-h] [--json] JOURNEY
positional arguments:
JOURNEY the journey file
options:
-h, --help show this help message and exit
--json emit exactly one JSON value on stdout
rslc plan answer
Answer a card and show the next.
usage: rslc plan answer [-h] [--json] JOURNEY path value
positional arguments:
JOURNEY the journey file
path the card's path
value the answer as JSON: 12000, true, "2026-01-01", null
options:
-h, --help show this help message and exit
--json emit exactly one JSON value on stdout
rslc plan skip
Put a card off and show the next.
usage: rslc plan skip [-h] [--json] JOURNEY path
positional arguments:
JOURNEY the journey file
path the card's path
options:
-h, --help show this help message and exit
--json emit exactly one JSON value on stdout
rslc plan dismiss
Decline a document card and show the next.
usage: rslc plan dismiss [-h] [--json] JOURNEY document
positional arguments:
JOURNEY the journey file
document the card's document kind
options:
-h, --help show this help message and exit
--json emit exactly one JSON value on stdout
rslc plan search
Search a search card’s answers.
usage: rslc plan search [-h] [--path PATH] [--list LIST_ID] [--limit LIMIT]
[--json]
JOURNEY query
positional arguments:
JOURNEY the journey file
query what the person typed
options:
-h, --help show this help message and exit
--path PATH the card's path
--list LIST_ID the card's list
--limit LIMIT the most answers to return
--json emit exactly one JSON value on stdout
rslc explain
Explain a check message, with an example and the fix.
usage: rslc explain [-h] [--json] code
positional arguments:
code the code of a message, such as E-PROVENANCE
options:
-h, --help show this help message and exit
--json emit exactly one JSON value on stdout
rslc docs
Read the language reference that ships with this compiler.
usage: rslc docs [-h] [--json] [topic]
positional arguments:
topic sections, types, functions, annotations, messages, a function
name or a message code; leave it out for the list
options:
-h, --help show this help message and exit
--json emit exactly one JSON value on stdout
rslc examples
List or save the example raters.
usage: rslc examples [-h] [--json] EXAMPLE_COMMAND ...
positional arguments:
EXAMPLE_COMMAND
list list the example raters
get save an example rater to a folder
options:
-h, --help show this help message and exit
--json emit exactly one JSON value on stdout
rslc examples list
List the example raters.
usage: rslc examples list [-h] [--json]
options:
-h, --help show this help message and exit
--json emit exactly one JSON value on stdout
rslc examples get
Save an example rater to a folder.
usage: rslc examples get [-h] [--out OUT] [--json] name
positional arguments:
name the example's name, such as dwelling
options:
-h, --help show this help message and exit
--out OUT the folder to write; the default is a folder named for the
example
--json emit exactly one JSON value on stdout
rslc submission and rslc script
These commands drive a submission log. The submission log explains each one.
usage:
rslc submission open <log> --program <file.rsl> --as <role>:<name>
rslc submission answer <log> <question>=<value>… [--file <facts.json>]
[--because <text>] [--from <source>] [--based-on <seq>]
[--in <option>] --as <role>:<name>
rslc submission retract <log> <question> [--based-on <seq>] [--in <option>]
--as <role>:<name>
rslc submission status <log> [--at <seq>] [--in <option>]
rslc submission quote <log> <quote> [--based-on <seq>] [--in <option>]
--as <role>:<name>
rslc submission bind <log> <quote> [--based-on <seq>] --as <role>:<name>
rslc submission close <log> withdrawn|expired|lost|declined [--because <text>]
[--based-on <seq>] --as <role>:<name>
rslc submission history <log>
rslc submission copy <log> <new log>
rslc submission contract <log> | --program <file.rsl>
rslc script <file.script> [--keep <log>]
Add --json to any command for one JSON value on standard output.
A log is a `.jsonl` file (one JSON entry per line) or a `.sqlite` database;
its name says which. `copy` writes every entry of a log into a new log, of
either kind, and checks each one.
A question is an input's path (`policy.occurrence_limit`,
`placements[class="clerical"].share`: a list item by its key) or a referral's
name. A value is JSON, or a bare word for a string.
A quote has a name (`q1`). A log holds many quotes; `bind` names the one it binds.
No answer declines an account. When a rule or a sign-off declines the answers,
the stage is Ineligible: correct an answer, or `close declined` (the quote role).
`contract` prints what the program asks, who may write each answer and act,
and what blocks each act, derived from the compiled program.
--based-on <seq> names the last entry the writer read: the write is refused
STALE when what it reads changed after that entry.
--in <option> answers, retracts, quotes or shows a quote option: the shared
answers with the option's answers over them. An option answers only an input
the program marks `per quote`; every other answer is shared by all quotes.