Skip to content

Talk beats repeat the same cozy imagery on cold start (streetlights / kettle / lamplight) #44

Description

@wine-fall

Symptom

On repeated fresh runs, the host's self-initiated talk keeps opening with the
same handful of "cozy" images — streetlights (路灯), the kettle (烧水壶),
lamplight (灯光). Observed by-ear across multiple make dev sessions.

Not hardcoded (verified)

grep over src/ finds no such strings; the only canned text is the English
_STUB_SEGMENTS (used by StubBrain only, offline/tests). So this is the real
ClaudeBrain gravitating to high-probability completions, not a fixed string.

Root cause (hypothesis)

Two compounding factors push the model onto the same attractors:

  1. Night-locked persona seedpartially addressed by feat(director): thread a time-of-day scene into the talk prompt [spec 04] #39, which
    generalized the seed off its hard "late-night / makes the dark feel safe"
    framing and threads a time-of-day scene cue into the talk prompt. That fixes
    the permanent-night bias, not the within-scene repetition.
  2. Empty transcript on every cold boot — memory is in-process, not persisted
    (that's spec 05). Each fresh start hands the model an identical prompt
    (persona + "the program is just starting, pick one small thing"), so it lands
    on the same most-probable imagery. There is no anti-repetition / novelty
    mechanism anywhere on the talk path.

What #39 did / didn't do

  • ✅ Removes the always deep-night bias — daytime now gets a day-flavored cue.
  • ❌ Within a single scene, a cold boot with an empty transcript still trends to
    that scene's few attractors (late-night → streetlights / kettle / lamplight).

Fix directions

  • Root cause → persistent memory (spec 05): if the transcript survives
    restarts, cold boots stop being identical and the model continues from real
    prior context instead of re-picking the same opener. This is the durable fix
    and directly overlaps the spec-05 work.
  • Cheap mitigation (independent of 05): a small variety nudge in the
    cold-open prompt (e.g. "avoid clichéd late-night props like streetlights / hot
    drinks / lamplight; pick a fresh, specific angle") plus a modest temperature
    bump. Costs one prompt edit + a unit assertion that the nudge is present. A
    stopgap if 05 is further out; the two compose.

For the spec-05 discussion

Flagging as a concrete motivating case: the empty-transcript cold-open is why
the openers repeat, so persistence and the repetition symptom are worth
designing together. Surfaced during the spec-04 §3.4 time-of-day scene work
(PR #39). A runtime MURMUR_SCENE override is being added separately for by-ear
testing of the scene cue (does not address repetition).

Metadata

Metadata

Assignees

No one assigned

    Labels

    engEngineering work: a measured defect or a performance targetenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions