Validate and inspect¶
This page continues from Generate, build, and run and uses the generation it made, at
$GENERATION_DIR.
Validate the RDF dataset¶
The application manifest imports the motion, scene, FSM, provenance, and SHACL graphs. Validate the complete dataset before treating it as a release artifact:
$ motion-spec check \
"$GENERATION_DIR/generated/model/pick_and_place-app.ld.json"
Add --meta-shacl when the shape graph itself must also be validated against
SHACL-of-SHACL.
Stop at one lowering boundary¶
The default gen stage produces IR and C++. The ir stage stops after the
RDF and the IR, which is the boundary to inspect when the IR looks wrong:
$ motion-spec gen ir "$MODEL_PATH" -o scratch
It writes generated/model/ir.json and nothing under generated/controller/.
Neither stage configures CMake, runs an executable, or creates a recorded run.
Summarize and verify a run¶
$ RUN_DIR="$GENERATION_DIR/runs/run-1"
$ motion-spec replay "$RUN_DIR"
$ motion-spec replay "$RUN_DIR" --verify
Summary mode reports the run without rewriting it. Verification requires the
run’s manifest.json: it checks that every file the manifest names exists, that
the log’s schema hash matches the generation’s frame layout, and that the log
holds as many frames as the writer reported. A run recorded before
manifest.json was written (e.g. one killed mid-run) can still be summarized
and decoded, but not verified.
Stream decoded frames¶
$ motion-spec replay "$RUN_DIR" --jsonl > scratch/frames.jsonl
JSON Lines is intended for external whole-frame analysis. Normal summary, verification, and runtime-RDF recovery do not require exporting this duplicate.