Producer-usefulness integration: notable-findings merge + Reconstruction Brief + deterministic Live 12 fallback - #200
Merged
Conversation
Adds a Phase 1 `fundamentalsQuality` block that labels each musical fundamental (tempo, beat grid, downbeats, meter, key, chords, percussion, transcription) as authoritative / ambiguous / failed / not_run, purely from local DSP output. The Phase 2 validator now blocks recommendations from replacing local BPM/key/meter or citing weak fundamentals as confident facts, and the UI surfaces per-domain trust indicators plus an overall pill. Also reworks the fast analyzer to reuse the canonical analyze_core BPM/key/meter/rhythm functions, adds a fundamentals benchmark harness (gitignored local audio), and wires a verify-time evaluation gate. Review fixes applied on top of the initial implementation: - Fast mode no longer runs the full-track tuning-frequency pass whose output it discards (analyze_key gains include_tuning=False for the fast path). - Beat-grid trust now uses the detector's own confidence floor (0.4) instead of the tempo domain's 0.7, so ordinary well-tracked grids are not marked ambiguous and do not force every beat-grid-citing recommendation to hedge. - Removed the dead `low` threshold in _status_from_confidence (both branches returned "ambiguous", so it never affected the result). - Replaced the no-op schemaVersion/targetProfile ternaries in the Phase 1 parser with direct literal assignment. - overallStatus now ignores not_run domains, so a fully-measured standard run (which never runs transcription) is no longer collapsed to "ambiguous", and is surfaced as an overall trust pill in the Measurement Summary. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…to claude/asa-integration-producer-bp82ws # Conflicts: # apps/ui/src/components/AnalysisResults.tsx
Deterministic summary of key/tempo/meter/groove/loudness/stereo/spectral/ dynamics rendered above the measurement dashboard, built purely from Phase 1 plus the fundamentalsQuality trust layer. Each line cites its Phase 1 fields (invariant #2); lines whose driving measurement is absent are omitted rather than guessed (invariant #4); non-authoritative fundamentals reuse the domain's plainEnglish hedge verbatim. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T4wfz87k6kzJqkKLKZE7YL
Wires abletonDevices.ts into the product as a clearly-labeled 'Deterministic Baseline · NO AI' section, reversing the 2026-06-11 research-only demotion (owner-approved 2026-07-02). - deterministicRecommendations.ts projects the real Phase 1 payload into the engine's AudioFeatures (median-relative band dominance, NaN sentinels for fast-mode nulls, bpmConfidence clamp for pre-v2 snapshots) and attaches per-card Phase 1 citations (invariant #2) via maps keyed on the engine's exact rule strings — unmapped rules are dropped, never rendered uncited, and coverage tests sweep all 8 FX rules + 5 sauce tricks so engine drift fails loudly. - Cards citing weak fundamentals are hedged with the fundamentalsQuality domain's plainEnglish or skipped on failure (invariant #4). - shouldShowDeterministicFallback gates the section to settled, phase2-empty runs only (off / failed / interrupted / terminally empty) — never mid-run, never alongside real Phase 2 output. - Eval bridge emit_deterministic_recs.ts unchanged; abletonDevices.ts stays import-pure. Docs updated (module header, NEEDS.md reversal note, CLAUDE.md Backport Candidates). - Smoke: phase2-degradation.spec.ts asserts fallback presence on config-off / user-off / failed and absence when Phase 2 renders. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T4wfz87k6kzJqkKLKZE7YL
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T4wfz87k6kzJqkKLKZE7YL
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Consolidates all useful in-flight work toward ASA's core promise — upload a reference track, get an honest first-pass reconstruction brief — into one integration branch.
Branch triage
All 5 non-main remote branches were inspected (
git cherry, content diffs, main history):feat/notable-findings-triagefundamentals_quality.pylocal-trust layer, UI "Worth checking" notable-findings panel, fundamentals pills, tests + smoke specclaude/funny-einstein-iil9s7codex/pilot-render-intake2d101a9,2a3fe4c)claude/asa-ableton-audit-gy9xdh23cae3dclaude/resolve-pr-conflicts-Td2WUThe merge had exactly one conflict (
AnalysisResults.tsximport + section mount vs the UI-overhaul extractions), resolved by keeping main's structure and adding the branch'sNotableFindingsSectionmount.User-facing improvements
fundamentalsQualitynamespace (per-domain authoritative/ambiguous/failed status, plain-English text, confidence) and the results surface leads with notable findings (clipping, true-peak overs, uncertain fundamentals, mix-doctor outliers).reconstructionBrief.ts+ReconstructionBriefSection.tsx). Deterministic plain-English summary of key / tempo / meter / groove / loudness / stereo / spectral balance / dynamics with confidence bands. Every line cites its Phase 1 fields (invariant Add phase1 visual story v2 deck assets and build scripts #2); lines whose driving measurement is absent are omitted, never guessed (invariant fix: chunk Demucs inference and stop boot-time memory spikes #4); non-authoritative fundamentals reuse the domain's own plainEnglish hedge. Renders even when Phase 2 is off.deterministicRecommendations.ts+DeterministicAdviceSection.tsx). Reverses the 2026-06-11 demotion ofabletonDevices.ts(owner-approved 2026-07-02): when interpretation is off/failed/interrupted/terminally empty, a clearly-labeled "Deterministic Baseline · NO AI" section maps the measured spectrum and dynamics to exact Live 12 devices/settings. Unlike the (unchanged) eval bridge, every card carries Phase 1 citations; cards citing weak fundamentals are hedged or skipped; unmapped engine rules are dropped rather than rendered uncited, with coverage tests sweeping all 8 FX rules + 5 secret-sauce tricks so engine drift fails loudly. Never shown mid-run or alongside real Phase 2 output.abletonDevices.tsheader,apps/backend/NEEDS.md,CLAUDE.md).Invariants preserved
Phase 1 stays ground truth — both new surfaces are derived projections that only read measurements. Every new recommendation/brief line cites the specific Phase 1 field(s) behind it. Weak measurements produce hedged or omitted output, not confident guesses.
Tests
npm run verifyfully green — lint (tsc), lint:style, 877 unit tests (incl. 13 newreconstructionBrief+ 18 newdeterministicRecommendationstests), production build, 51 Playwright smoke tests (incl. new fallback-visibility assertions inphase2-degradation.spec.tsand the mergednotable-findings.spec.ts).unittest discover— 1270 tests OK (3 skipped) post-merge; no golden re-baseline needed (the branch carried its matching golden).Known remaining gaps
NEEDS.md.fundamentals_trackseval corpus is gitignored/empty —evaluate_fundamentals.pyruns but has no local corpus yet.chordStrengthhedge).🤖 Generated with Claude Code
https://claude.ai/code/session_01T4wfz87k6kzJqkKLKZE7YL
Generated by Claude Code