# Release checklist (charter §12) — status 2026-11-02 | Criterion | Status | Evidence | |---|---|---| | No secrets in git | ✅ | `scripts/check_no_secrets.sh` (CI step); keys only via env/file; manifests store a SHA-256 fingerprint | | No redistribution of raw FirstRate data | ✅ | `datasets/cache/` and `/data/` ignored; only synthetic fixtures tracked; paper/README report aggregates only | | Tier A methods pass reference tests | ✅ | `tests/reference/*` vs statsmodels 0.15 / arch 8.0 / scipy 1.18 / exchange_calendars 4.13 / highfrequency 1.0.3 / rugarch 1.5.6 (registry tolerances) | | Metal unsupported cases fall back safely | ✅ | `backend::resolve` + `[backend]` test; CPU-only preset builds; E7 bundle on a node without developer tools | | Performance claims reproduced | ✅ (on the laptop and 11 nodes) | raw records + manifests tracked; `scripts/audit_manuscript_numbers.py` 32/32 claims verbatim from `key_numbers.json` | | All paper tables/figures from tracked artifacts | ✅ | `experiments/scripts/make_paper_assets.py` + `experiments/manifests/paper_assets.json` | | Clean environment builds and runs | ✅ after fix | Phase 8 clean clone exposed an over-broad `.gitignore` (`data/` hid the data layer): fixed; cpu-only and Metal presets build, 55 tests pass, manuscript compiles | | Python wheel | 🧪 | extension builds and passes pytest (10 tests) from the build tree; `pip wheel .` via scikit-build-core not yet exercised in a clean environment | | Linux CPU-only build | ⏳ untested | preset exists (`cpu-only`), CI workflow written (`.github/workflows/ci.yml`) but the repository is hosted on spbgit (no GitHub Actions run) | | Versioned release | ✅ | library 0.1.0, manuscript 1.0, `CITATION.cff`, tag `v0.1.0-wp40` | | Energy claims | n/a | none made (no instrument) | Not done / honest gaps: Linux build never executed; Python wheel not built from sdist; E1–E6 require a FinData key (private data); the laptop was shared during the benchmarks (recorded in manifests).