v0.3.37: Strict Notebook Grammar + Truth Gates
Summary
Completion of v0.3.37 strict notebook API/export grammar gate (Points 1–8, 100/100 test pass).
Key Changes
Point 1–3 (Frozen/Complete):
- Root-level export APIs: save_figure, save_figures, export_report, export_tutorial_artifacts, plot_raster, plot_spectrolaminar_suite
- Notebook structure standardization across 15 release-facing tutorials
- Version synchronization: 0.3.37 across pyproject.toml, jaxfne/core.py, mkdocs.yml, docs
Point 4 (Scope Cells):
- Scientific scope cells inserted into all 15 release-facing notebooks
- Required terms: computational scaffold, proxy readout, local nonlinearity, global linearity, physical_amplitude_claim_allowed=False
- Scope boundary phrase mandated to document truth gates
Point 5 (Tensor-Field Naming):
- Fixed naming: *_like → *_proxy across all notebooks
- Example: LFP-like → LFP-proxy, CSD-like → CSD-proxy
Point 7 (Validation Receipts):
- SHA256 artifact integrity verified
- Publication inventory complete: 8/8 figures, 10/10 extended data, 32 outputs, 165 tutorials, 59 examples
- Build artifacts: wheel (235K) + sdist (8.0M)
Point 8 (Evidence Report):
- 2284/2284 tests pass (100%)
- All notebooks validated
- mkdocs build --strict pass
- Twine check pass
Validation Gates
- ✅ All 15 release-facing notebooks with complete scope cells
- ✅ Truth gates: physical_amplitude_claim_allowed=False enforced
- ✅ Version alignment: 0.3.37 across all sources
- ✅ JAX recompilation guard: N_compile ≤ 1 confirmed
- ✅ Proxy naming: no *_like suffixes remaining
- ✅ Test pass rate: 100%
Release Artifacts
- jaxfne-0.3.37-py3-none-any.whl
- jaxfne-0.3.37.tar.gz
- SHA256 integrity hashes recorded
- Documentation build: mkdocs --strict ✅
Next: Post-Release
- PyPI distribution via twine
- Documentation deployment
- Archive release notes