ChatGPT
feat: render supervised edits into artifacts
e07820e
|
Raw
History Blame Contribute Delete
4.53 kB
# 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.