Skip to content

Producer-usefulness integration: notable-findings merge + Reconstruction Brief + deterministic Live 12 fallback - #200

Merged
slittycode merged 9 commits into
mainfrom
claude/asa-integration-producer-bp82ws
Jul 2, 2026
Merged

Producer-usefulness integration: notable-findings merge + Reconstruction Brief + deterministic Live 12 fallback#200
slittycode merged 9 commits into
mainfrom
claude/asa-integration-producer-bp82ws

Conversation

@slittycode

Copy link
Copy Markdown
Owner

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):

Branch Verdict Why
feat/notable-findings-triage merged Only branch with unmerged work (5 commits, 2026-07-02): backend fundamentals_quality.py local-trust layer, UI "Worth checking" notable-findings panel, fundamentals pills, tests + smoke spec
claude/funny-einstein-iil9s7 skipped 0 commits ahead of main — fully merged
codex/pilot-render-intake skipped Both commits patch-equivalent on main (2d101a9, 2a3fe4c)
claude/asa-ableton-audit-gy9xdh skipped All content re-landed via PRs #153/#156/#158/#159/#160/#186 + 23cae3d
claude/resolve-pr-conflicts-Td2WU skipped Stale (2026-05-21); carries PRs #77#96, all long merged; main at #199

The merge had exactly one conflict (AnalysisResults.tsx import + section mount vs the UI-overhaul extractions), resolved by keeping main's structure and adding the branch's NotableFindingsSection mount.

User-facing improvements

  1. Merged: local fundamentals trust layer + "Worth checking" panel. Phase 1 now emits a fundamentalsQuality namespace (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).
  2. New: always-on Reconstruction Brief (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.
  3. New: deterministic Live 12 fallback when Phase 2 is unavailable (deterministicRecommendations.ts + DeterministicAdviceSection.tsx). Reverses the 2026-06-11 demotion of abletonDevices.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.
  4. Docs updated to record the demotion reversal (abletonDevices.ts header, 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

  • Frontend: npm run verify fully green — lint (tsc), lint:style, 877 unit tests (incl. 13 new reconstructionBrief + 18 new deterministicRecommendations tests), production build, 51 Playwright smoke tests (incl. new fallback-visibility assertions in phase2-degradation.spec.ts and the merged notable-findings.spec.ts).
  • Backend: unittest discover — 1270 tests OK (3 skipped) post-merge; no golden re-baseline needed (the branch carried its matching golden).

Known remaining gaps

  • The deterministic fallback is the harness-scored baseline — honest but coarser than Phase 2; score-driven product improvements still land on the Phase 2 provider path per NEEDS.md.
  • The fundamentals_tracks eval corpus is gitignored/empty — evaluate_fundamentals.py runs but has no local corpus yet.
  • Chords stay out of the Reconstruction Brief (HarmonyLanes covers them with the chordStrength hedge).

🤖 Generated with Claude Code

https://claude.ai/code/session_01T4wfz87k6kzJqkKLKZE7YL


Generated by Claude Code

slittycode and others added 9 commits July 1, 2026 23:44
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
@slittycode
slittycode merged commit f41389f into main Jul 2, 2026
5 checks passed
@slittycode
slittycode deleted the claude/asa-integration-producer-bp82ws branch July 2, 2026 03:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants