Decide editorial lifecycle commands against an explicit state machine — declared states, declared transitions, and the actor roles allowed to perform each — and append the accepted ones to a local, hash-chained, append-only event log.
This walkthrough uses the tool's public README and checked-in example files. Run the command from a repository checkout with Node.js 22+.
Run the checked-in example
node bin/editorial-status-machine.mjs --root examples/clean --machine machine.json --commands commands.json --events ../../build/editorial-events.jsonl --now 2026-03-10T12:00:00ZRead the result
An input that was named but is not there is evidence missing, not a configuration error: it is reported as input-unreadable in an incomplete report. stdout is empty only when the run never had a subject at all — an unusable flag, an unreadable root, a path outside it.
Scope
Bounds are enforced and reported by name — maxFileBytes, maxCommands, maxEvents, maxDocuments, maxStates, maxTransitions, maxActors. Exceeding one is incomplete with a finding, never a quietly shorter answer.