$ python3 tools/release_gate.py /tmp/release
pass  pack         installed copy matches the library: 1 installed copy, 14 files, each byte-identical
pass  input        header contract: every input carries what the leaf needs (1 file)
pass  computation  script re-run: the library's skills/budget-vs-actual/scripts/bva.py writes output/bva.json byte for byte from these inputs
pass  checks       script_identity: operating income and variances reconcile for the month and YTD
pass  checks       independent_identity: source YTD operating income 387654.20 recomputes
pass  checks       contract: 5 sections in order; sentences, tables, bullets and data notes follow the contract
pass  checks       provenance: all 53 figures trace to the script's display block
pass  checks       binding: 21 of 26 figures in 6 bullets and sentences belong to one record or scope, and each sits with its name
passed: wrote release.json and release.md in /tmp/release
exit 0
