Skip to content

Commands

dandori check <file.flow>...
dandori build <file.flow> --target asl|temporal|temporal-python|temporal-go|durable|argo|pydantic-graph [--out <dir>]
dandori scenarios <file.flow> [--out <dir>]
dandori run <file.flow> --scenario <file.json> [--target reference|asl|temporal|temporal-python|temporal-go|durable|argo|pydantic-graph]
dandori doc <file.flow> [--format html] [--out <dir>]
dandori explain <CODE> | --all [--format markdown|json]
dandori <command> --help
dandori --version

A workflow that uses rules, dates files or books (use rule, use dates, use book) runs as ritsu dandori <command>, which reads them in the same process (Install); the dandori command alone checks and builds a workflow that uses none of them.

Command What it does
check Checks one or more .flow files: types, every arm, every state a case can be left in, retries. Prints the diagnostics, each with the run that gets there, and ok for a file that passes.
build Writes the code for one platform into --out (out/ by default), and prints each file's path. Also refuses what the platform cannot do (E050), and a workflow whose one run can outgrow the platform (E040). Build for a platform
scenarios Writes scenarios (an input and the answers the calls get) that together take every arm, every handler and every way a case can move: one file each into --out, or all of them as JSON on standard output.
run Plays one scenario through the reference interpreter, and prints every call as the target would make it, every wait, and how the run ends.
doc Draws the workflow for the person who reviews it: the flow, what each call does and where its errors go, and every way the workflow can end. Markdown with Mermaid charts, or one HTML page (--format html) where each scenario lights up the way its run goes; into <name>.md or <name>.html in --out, else on standard output. The rules the workflow calls are put in as rulec doc renders them. It draws a workflow whose check finds errors too, and exits with 1. Draw a workflow
explain Looks a diagnostic code up: when it comes, how to fix it, and the smallest .flow that gets it, with what goes beside it. --all prints every code; --format markdown prints Markdown, --format json the machine-facing JSON. Diagnostics

Flags and environment

--target <target> the platform to build for, or the one whose calls run prints (reference by default)
--out <dir> where build writes (out/ by default), and where scenarios and doc write
--scenario <file.json> the scenario run plays
--format json the diagnostics of check as JSON, for tools
--format html the page doc writes, as HTML; Markdown by default
--all, --format markdown or --format json every code, for explain; as Markdown, or as JSON
--lang ja or --lang en the language of the messages; else DANDORI_LANG, then RITSU_LANG, else English
--help what the command takes, its exit codes and examples (dandori help <command> is the same page); dandori --help lists the commands
--version dandori --version prints the version

Exit codes

Code Means
0 no errors (warnings only, or nothing)
1 errors found
2 bad arguments, or a file that cannot be read