What it is
PR #148 shipped two changes aimed at one complaint — the pick task kept landing on the same handful of famous songs (Bon Iver's Holocene was the running example). Half of it is verified at the real seam; half of it could not be run on this machine.
Verified (real brain, real yt-dlp, one MusicProgrammer, no restart): the listener-owned $MURMUR_HOME/music-policy.md steers a live pick. The seeded default policy picked Clairo — Bags; rewriting the file mid-run to "only Cantonese songs released before 2000" made the very next pick 陳慧嫻 — 千千闋歌.
Not verified: the similar_music happy path. No Last.fm key exists on this machine (.env* and the environment both checked), so the only real-endpoint evidence is the failure path: https://ws.audioscrobbler.com/2.0/ accepts our URL shape and rejects a bad key with HTTP 403, surfaced cleanly through LastfmSimilar (src/lastfm.ts:88) — which in the tool becomes {ok: false, error} and costs the pick a turn, not the song. Whether artist.getsimilar / track.getsimilar return usable names, and whether the brain actually widens on them instead of ignoring them, is untested against the live API.
Unblocking it is a free key from https://www.last.fm/api/account/create (no listening account) exported as MURMUR_LASTFM_API_KEY. With no key the tool is absent from the tool list and discovery is exactly its pre-#148 self, so nothing is broken while this sits.
The anti-repeat depth also went 8 → 32 in the same PR. Whether the rotation actually feels wider is a by-ear judgment, and it shares this pass.
Spec
specs/spec03/03-01-brain-harness.md §2.3 (the 2026-08-25 extension) — the two-halves instruction, the key-gated similar_music tool, and acceptance criteria 6 and 7.
Done when
A "no" on any box becomes its own follow-up issue rather than reopening the spec contract.
What it is
PR #148 shipped two changes aimed at one complaint — the pick task kept landing on the same handful of famous songs (Bon Iver's Holocene was the running example). Half of it is verified at the real seam; half of it could not be run on this machine.
Verified (real brain, real yt-dlp, one
MusicProgrammer, no restart): the listener-owned$MURMUR_HOME/music-policy.mdsteers a live pick. The seeded default policy picked Clairo — Bags; rewriting the file mid-run to "only Cantonese songs released before 2000" made the very next pick 陳慧嫻 — 千千闋歌.Not verified: the
similar_musichappy path. No Last.fm key exists on this machine (.env*and the environment both checked), so the only real-endpoint evidence is the failure path:https://ws.audioscrobbler.com/2.0/accepts our URL shape and rejects a bad key withHTTP 403, surfaced cleanly throughLastfmSimilar(src/lastfm.ts:88) — which in the tool becomes{ok: false, error}and costs the pick a turn, not the song. Whetherartist.getsimilar/track.getsimilarreturn usable names, and whether the brain actually widens on them instead of ignoring them, is untested against the live API.Unblocking it is a free key from https://www.last.fm/api/account/create (no listening account) exported as
MURMUR_LASTFM_API_KEY. With no key the tool is absent from the tool list and discovery is exactly its pre-#148 self, so nothing is broken while this sits.The anti-repeat depth also went 8 → 32 in the same PR. Whether the rotation actually feels wider is a by-ear judgment, and it shares this pass.
Spec
specs/spec03/03-01-brain-harness.md§2.3 (the 2026-08-25 extension) — the two-halves instruction, the key-gatedsimilar_musictool, and acceptance criteria 6 and 7.Done when
MURMUR_LASTFM_API_KEYset, a real run showssimilar_musicreturning real names (the tool result, or themusic.*lines in.dev/dev.log).similar_musicresult rather than a first-guess search query.A "no" on any box becomes its own follow-up issue rather than reopening the spec contract.