Spaces:
Sleeping
Sleeping
| # Interactive UX scope | |
| ## Scope model | |
| Features are grouped by implementation risk and product leverage. | |
| - **MVP**: should be built first; high value, technically feasible, foundational. | |
| - **V2**: valuable after the core supervised editing loop exists. | |
| - **Research/backlog**: plausible, but higher risk or dependent on stronger state/model infrastructure. | |
| ## MVP scope and status | |
| ### 1. Constraint-aware cluster editing | |
| Status: **partial / foundation implemented**. | |
| Implemented: | |
| - Move hit/sample to cluster. | |
| - Pull hit/sample out into a new cluster. | |
| - Create `must-link`, `cannot-link`, and `force-cluster` constraints. | |
| - Preserve explicit edits in `supervision_state.json` across reload. | |
| - Generate basic suggestions after edits. | |
| Remaining: | |
| - True local neighborhood reclustering from cached feature vectors. | |
| - Constraint violation detection. | |
| - Edited artifact re-export. | |
| ### 2. Lock confirmed clusters | |
| Status: **implemented**. | |
| Implemented: | |
| - Lock/unlock cluster. | |
| - Persist lock state. | |
| - Show lock state in the cluster board and target cluster control. | |
| - Confidence scoring accounts for locked state. | |
| Remaining: | |
| - Prevent future batch reruns from violating locked cluster identity through deterministic replay. | |
| ### 3. Outlier-first review queue | |
| Status: **implemented**. | |
| Implemented: | |
| - Confidence score per hit and cluster. | |
| - Review list sorted by uncertainty priority. | |
| - Quick actions: accept, favorite, move, pull out, suppress. | |
| Remaining: | |
| - Split/restore/batch actions. | |
| - Expected-impact scoring using feature margin and reconstruction contribution. | |
| ### 4. Confidence-weighted UI | |
| Status: **implemented**. | |
| Implemented: | |
| - Confidence per hit and cluster. | |
| - Low-confidence row emphasis. | |
| - Suppressed rows recede. | |
| - State summary badges. | |
| ### 5. Click-to-add missed onset | |
| Status: **not implemented**. | |
| Current waveform clicks audition existing hits. Add-onset mode is the next direct correction primitive. | |
| ### 6. Bleed suppression examples | |
| Status: **partial**. | |
| Implemented: | |
| - Mark selected hit as bleed/noise. | |
| - Store `suppress-pattern`. | |
| - Generate similar suppression suggestions. | |
| Remaining: | |
| - Region brush. | |
| - Restore suppressed hits. | |
| - Exclude suppressed hits from supervised export. | |
| ### 7. Explain this cluster | |
| Status: **implemented**. | |
| Implemented: | |
| - Representative ID. | |
| - Members/outliers. | |
| - Confidence reasons. | |
| - Label distribution. | |
| - Relevant constraints. | |
| - Locked/suppressed counts. | |
| ## V2 scope | |
| ### 1. Predictive batch questions | |
| Status: **partial**. | |
| Basic suggestions exist. Exact diff previews, grouped approval UX, and richer reasoning are not complete. | |
| ### 2. Live counterfactual previews | |
| Status: **not implemented**. | |
| ### 3. Auto-clean this family | |
| Status: **not implemented**. | |
| ### 4. Multi-resolution semantic clustering | |
| Status: **not implemented**. | |
| ### 5. Run-to-run preference memory | |
| Status: **not implemented**. | |
| ## Research/backlog scope | |
| Unchanged from design intent: | |
| - Reconstruction-error-driven correction. | |
| - Drag clusters in semantic space. | |
| - Cluster gravity / physics metaphor. | |
| - Context-aware classification. | |
| - Teach mode across songs. | |
| ## Explicitly out of scope for MVP | |
| - Realtime Demucs. | |
| - Training neural models from scratch. | |
| - Cloud multi-user collaboration. | |
| - DAW plugin integration. | |
| - Full Ableton/Logic export format support. | |
| - Automatic perfect drum transcription claims. | |
| ## MVP acceptance criteria status | |
| Target loop: | |
| ```text | |
| cached stem is analyzed | |
| β clusters appear | |
| β uncertain items are prioritized | |
| β user moves one wrong hit | |
| β system stores a constraint | |
| β affected state recomputes | |
| β related mistakes are suggested | |
| β locked clusters remain stable in state | |
| β semantic decisions reload reproducibly | |
| ``` | |
| Status: **mostly achieved for semantic state**. | |
| Not achieved yet: | |
| ```text | |
| β edited state can be exported reproducibly as updated WAV/MIDI/ZIP artifacts | |
| β local feature reclustering updates related hits without manually accepting suggestions | |
| ``` | |
| ## Pass 5 implementation status | |
| Implemented after initial alignment: | |
| - supervised edited-state export under `supervised/`, | |
| - add-onset waveform mode backed by `POST /api/jobs/{job_id}/hits/force-onset`, | |
| - suppressed-hit restore backed by `POST /api/jobs/{job_id}/hits/{hit_id}/restore`, | |
| - exact suggestion diff previews in API state and UI, | |
| - validation via `scripts/test_supervised_export_and_force_onset.py`. | |
| Still open: | |
| - cluster merge/relabel/split workflows, | |
| - cached feature-vector local reclustering, | |
| - edited-vs-original comparison, | |
| - browser-level UI tests. | |