# Supervised export and force-onset workflow Last updated: 2026-05-12 ## Purpose The batch extraction manifest is immutable. Interactive edits are stored in `supervision_state.json`. This pass adds the missing rendering step that turns those semantic edits into new downloadable artifacts without rerunning Demucs or onset detection. ```text manifest.json + review/hits/*.wav + supervision_state.json → supervised/manifest.json → supervised/samples/*.wav → supervised/reconstruction.mid → supervised/target_reconstruction.wav → supervised/reconstruction.wav → supervised/sample-pack.zip ``` ## Implemented features | Feature | Status | Files | |---|---:|---| | Edited-state export | Implemented | `supervised_export.py`, `POST /api/jobs/{job_id}/export` | | Suppressed-hit exclusion | Implemented | Export ignores hits with `suppressed=true`. | | Favorite/pinned representative export | Implemented | Export honors `representative_hit_id` / favorite hits before quality scoring. | | Force-onset from existing stem audio | Implemented | `POST /api/jobs/{job_id}/hits/force-onset` | | Forced-hit review WAV writing | Implemented | `review/hits/hit_NNNNN_