Plugin: matching policy rework (precedence, ambiguity, normalization, apple_music_id) #29
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
SPEC.md §9 (matching policy) and §8 (beets item metadata). Current
matching.pyviolates it in several ways:setdefaultsilently picks the first of multiple candidates (no ambiguity state), normalization strips all punctuation (SPEC forbids), no duration tolerance, no existing-association precedence, noapple_music_idusage.Task
apple_music_idassociation on a beets item;matchworkflow.ambiguous(persisted state). No fuzzy matching without explicit user approval; never re-prompt after an explicit association.apple_music_idon association; explicitmatchmay replace it; normal sync trusts existing associations;isrconly when local is empty; never overwrite non-empty local ISRC;ISRC_CONFLICTinlist-tracks), never auto-resolved;Acceptance criteria
apple_music_id/ISRC write rules tested incl. never-overwrite and conflict reporting.Ref: SPEC.md §8, §9.