# Fallback `preflight.sh`: 0 full, 1 degraded, 2 no XeLaTeX/`article.cls`. - Exit 2: deliver `ledger.yaml` + Markdown; say there is no PDF. - No `pdftotext` / `pdftoppm`: only `--tex` / `--excerpt`. - No `jsonschema`: create `.venv` (`python3 -m venv .venv && .venv/bin/pip install -r requirements.txt`). - Sibling `build.sh` fails: drop that figure to `align` or screenshot, keep the notes compiling. - No `magick`: `screenshot.sh` must fail if `crop_bbox` is set; do not silently ship the full page.