Skip to content

day 0 external dependency validation - #1

Merged
erick-ti merged 2 commits into
mainfrom
day0-dependency-validation
May 21, 2026
Merged

day 0 external dependency validation#1
erick-ti merged 2 commits into
mainfrom
day0-dependency-validation

Conversation

@erick-ti

Copy link
Copy Markdown
Owner

Adds the Day 0 go/no-go script that checks the pipeline's external dependencies before we build on them: Deezer preview coverage + ISRC lookup, ListenBrainz Labs similar-recordings, MusicBrainz canonicalization, and CLAP load/memory/latency. All six checks pass on a five-genre seed set (100% Deezer coverage, CLAP ~660 MB and 76 ms/clip on CPU), so Day 1 is clear. Also adds the deps the script needs (httpx, rapidfuzz, the CLAP stack, pytest) plus a regression test so a skipped critical check reports INCOMPLETE instead of a false GO.

erick-ti added 2 commits May 21, 2026 09:49
core: httpx[http2], rapidfuzz
clap group (opt-in, heavy): torch, transformers, av, numpy, psutil
dev group: pytest, plus pytest config (pythonpath=scripts, testpaths=tests)
go/no-go probe for the pipeline's external deps before building it:
- deezer preview coverage, isrc lookup, rate-limit under burst
- listenbrainz labs similar-recordings (canonical mbid via recording-search)
- musicbrainz messy-string search (2-stage query)
- clap load/memory/latency

prints a pass/warn/fail summary; a skipped critical check reports INCOMPLETE
(exit 2) rather than a passing GO. tests cover the verdict logic.
@erick-ti
erick-ti merged commit e4d50a6 into main May 21, 2026
2 checks passed
@erick-ti
erick-ti deleted the day0-dependency-validation branch May 21, 2026 16:59
erick-ti added a commit that referenced this pull request May 27, 2026
* suppress seed-equivalence — drop the seed's own master from its results

the day-7 eval surfaced (and reproduced) a seed recommending a *different
master of itself* at #1 — take five → "take five — dave brubeck" at audio cosine
0.988, but a distinct mbid + deezer track, so the identity (mbid/ptid) dedup
can't catch it. _build_results now drops an audio-scored result whose raw audio
cosine ≥ SEED_EQUIVALENCE_AUDIO_MIN (0.98) AND whose title token_set-matches the
seed (≥ SEED_EQUIVALENCE_TITLE_MIN, 0.90), recording its keys first so cultural
backfill can't re-add it. a live/acoustic version scores lower audio and survives
— the and-gate keeps the heuristic from collapsing the distinct recordings the
product exists to surface.

audio-path only (no audio score in cultural-only mode — the documented gap);
thresholds are env knobs for eval calibration. validated on the full 19-seed
benchmark: only the two take-five seeds changed (self-rec gone, genuine jazz
promoted), 17/19 untouched, and "take five" is still correctly recommended for
the so-what seed (different seed title → not suppressed). regression in
test_pipeline.py.

* update roadmap: seed-equivalence suppression done

flips the day-7 follow-up to ✓ — _build_results drops the seed's own master
(audio ≥ 0.98 + title match), validated surgical on the full benchmark (only the
take-five seeds changed, 17/19 untouched).
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.

1 participant