From 3dc1af5f0c3463e6ccfdca2eba0d9773b430c20c Mon Sep 17 00:00:00 2001 From: Justin Visser Date: Mon, 10 Aug 2026 21:56:05 +0200 Subject: [PATCH] fix(prompt): favor verifiable adjacent discoveries --- backend/app/prompts.py | 26 +++++++++++++++++--------- docs/logboek.md | 26 ++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 9 deletions(-) diff --git a/backend/app/prompts.py b/backend/app/prompts.py index 62440c3..ab112bf 100644 --- a/backend/app/prompts.py +++ b/backend/app/prompts.py @@ -49,15 +49,23 @@ appears prominently in the taste profile. Avoid duplicate titles by the same art avoid multiple editions of the same recording. Use a range of strong fits so a later ranking step has meaningful choices rather than thirty near-identical songs. -When familiarity leans new, propose music the listener plausibly does not know. Move beyond -the named top artists and tracks while retaining understandable bridges through genre, -scene, production style, instrumentation, energy, era, or songwriting. Do not simply select -deep cuts from every familiar artist. Prefer adjacent artists, overlooked catalogs, -regional scenes, and credible cross-genre connections. The profile is not exhaustive, so -never claim that a candidate is definitely unknown. When familiarity is familiar, -candidates may include supplied top or saved tracks, but remain responsive to the current -request. When familiarity is mix, combine recognizable anchors with adjacent discoveries -rather than splitting into unrelated halves. +When familiarity leans new, novelty means plausibly new to this listener, not obscure. +Known tracks are excluded after grounding, so novelty relative to the taste profile is +enforced downstream; do not chase rarity. Name each artist's signature track, biggest +single, or a similarly famous recording from their catalog: a title you have seen written +down many times, spelled exactly as released. Never guess a title that merely sounds like +the artist; if no specific famous title comes to mind for an artist, pick a different +artist whose hit you can name with certainty. Famous artists adjacent to the taste profile +are welcome; their best-known work is still new to a listener who does not play them. +Prefer the anthems of the profile's own scenes and neighboring scenes over global chart +hits: the certainty bar stays the same, but a scene's signature tracks fit the taste far +better than whatever topped the general charts. +Retain understandable bridges through genre, scene, production style, instrumentation, +energy, era, or songwriting. The profile is not exhaustive, so never claim that a +candidate is definitely unknown. When familiarity is +familiar, candidates may include supplied top or saved tracks, but remain responsive to the +current request. When familiarity is mix, combine recognizable anchors with real, +confidently identifiable adjacent discoveries rather than splitting into unrelated halves. Use musical knowledge conservatively. Base selection on durable, commonly knowable attributes of recordings. Do not invent listening statistics, personal memories, release diff --git a/docs/logboek.md b/docs/logboek.md index 96858ea..ce9f358 100644 --- a/docs/logboek.md +++ b/docs/logboek.md @@ -344,3 +344,29 @@ Wat ik heb laten vallen of uitgesteld: - Een totaalbudget over de hele request heen; de afweging staat hierboven en komt ook in de README. + +### Discover-new gefixt in de intent prompt + +Wat ik deed: + +- Het discover-new scenario faalde live steeds op de grounding: call 1 + verzon voor echte, goed gekozen artiesten generieke titels die niet + bestaan ("Vibes", "Drift", "Shine"), en de matcher liet terecht niets + door. Niet de matcher aangepast maar de prompt: bij familiarity=new + alleen signature tracks en scene-anthems noemen die het model met + zekerheid kan spellen; nieuw-voor-de-luisteraar wordt toch al + afgedwongen door de exact-ID exclusion na grounding. +- Live gevalideerd: het scenario levert nu 15 tracks van 16 artiesten. + Van de 32 kandidaten vielen er 12 als verzinsel af en resolvede de + rest; drop-over-substitute deed precies wat het moet doen. + +Waarom: + +- Titel-recall van een LLM stort in zodra je bewust om onbekend werk + vraagt; om obscuriteit vragen is dan het verkeerde gereedschap. Nieuw + en obscuur zijn geen synoniemen. + +Wat ik heb laten vallen of uitgesteld: + +- Een repair loop die gefaalde kandidaten opnieuw aan het model + voorlegt; blijft staan als potentiele vervolgstap.