Retitle the chapter ML Lifecycle and rename its folder, files, assets,
lab, slides, audit data, and instructor links, with redirects for the
old URLs. Section IDs keep the sec-ml-workflow prefix. Update the ch2
hand-off and the conclusion to name the lifecycle.
- book-preview-dev.yml: download artifacts with continue-on-error, selectively copy and smoke-test built volumes, and preserve existing deployed volumes in cs249r_book_dev
- book-publish-live.yml: add Vol 3 and Vol 4 PDF/EPUB artifact download, site downloads directory preparation, and release-assets collection
- shared/config/navbar-common.yml: add Volume I-IV PDF and EPUB download links under the Read menu
- books/index-vol{1,2,3}.qmd, books/vol{3,4}/index.qmd: add cover cards with PDF and EPUB download links for all volumes
- scripts/release-smoke/sites.json: add test targets for vol3, vol4, dev-vol3, and dev-vol4 with PDF/EPUB assets
- Math-rendering audits move to binder/tools/audit/math_render/, beside
the other book audits. Their repo anchor, usage lines, the CodeQL
ignore path, and binder's render-audit scope follow. The scope now
resolves the script from the repo root; it previously looked under
the book directory, where the script never lived.
- The Playwright release smoke checks move to scripts/release-smoke/.
- The StaffML lint-calibration consensus record moves to
staffml/vault/docs/lint_calibration/, where enums.py cites it.
- The one-off phase_b..phase_g cleanup manifests, the unused playbook
validator, and the tools README are removed; git history keeps them.