Declaring inputs
A plan declares its inputs as a JSON Schema; steps and solver templates reference them as{{input.<name>}}:
Supplying inputs
All of these are equivalent; they compose by layering:--input overrides on top) is the CI pattern: a checked-in fixture plus per-run overrides.
Stdin is read only on an explicit
-. Auto-detection is a hang risk in automation (a job whose stdin never closes would block forever), so it costs one character instead.When inputs are missing
plan run: exit code 3, with the problems and the input schema printed to stderr — a calling script knows exactly what to send: