Lint runbook steps for the five things a person woken at 03:00 actually needs: a named owner, stated prerequisites, an expected output that makes success checkable, a recovery path for when it fails, and command boundaries that leave no doubt where a command starts and ends.
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/runbook-step-linter.mjs --root examples/runbook-cleanRead the result
A consumer piping stdout must handle an empty stdout on exit 2. A configuration error means the run never had a subject, so there is nothing to report about; emitting a fake report for a run that never started would be worse.
Scope
Markdown support is deliberately narrow: ATX headings, fenced blocks with backticks or tildes, list markers, blockquote markers and inline code spans. HTML blocks, setext headings, reference definitions and indented code blocks are read as ordinary text.