Prompt (modal_app/gemma.py): replace scenario coaching and the order/no-order
contradiction with a principle-based prompt — the active tones are Lily's whole
vocabulary; she composes one honest phrase in reading order, pointing outward
when the tones can't say a thing exactly. Also recover fused glyph+id tokens
("♯emo_afraid") the model emits, which were being silently dropped to a drift
fallback.
Engine (app/game.py): trust the model's tone order (drop the conditional
grammar reshuffle); guard dangling Link tones (a connective with <2 content
tones is dropped, killing "I and"). Empathy is now a resetting meter: caring/
personal questions fill it, each full meter surfaces the next memory and resets,
with a sorted-word fingerprint so repeating a question can't farm it.
Evidence (data/notes.json): drop the per-tone hint system; add helping-question
prompts to each note that point toward un-found topics/memories.
Frontend (index.html): remove hint UI; render tappable "ASK HER" prompt c…
Story pivot: dreams + travel + Mount Fuji; 3 connective tones; Her Things tab
Narrative recenters from the relationship onto Lily's unfulfilled dreams --
becoming a composer, seeing the world, standing at Mount Fuji at sunrise with
both her (divorced) parents after graduation. R is demoted to a faint, gentle
background thread. The night is reconstructed (morning breakup -> parents
arguing at the handoff -> she leaves on foot, upset -> the crossing) WITHOUT
revealing the outcome; every player-facing note is present tense and the death
foreshadowing is removed from all but the final reveal (N10).
- data/tones.json: +3 always-on connective tones (Link category G) -- and/with,
to/toward, but/yet -- so she can form coherent phrases at any act. 27 total,
all on-scale (verified).
- data/notes.json: full rewrite. Present tense, dreams/travel-centered, each note
carries an artifact (name, icon, relation). New: Fuji postcard, travel fund +
unstamped passport, 'stages I want to play', reconstructed-evening timeline.
- app/game.py: connectives always active; gramma…
Pivot: reframe Lily from visual artist to musician
The melodic-glyph audio makes "she lost words, speaks in tones" land harder if
she WAS music. Reframe her identity and port the artist evidence to a musician's,
keeping the emotional beats intact.
- The blank-mouth figure study (N02) -> an unfinished song: every bar of the
melody shaped with care, the final bar never written. Same wound (the unsaid
thing), musician's hand. "come back to this." stays.
- Design award (N03) -> a generative Composition Prize, "A Held Breath" (CS +
music, even more on-theme). Margin doodles (N04) -> scraps of melody. Pinned
sketches (N05) -> sheets of staff paper. sketchbook (N09/N14) -> manuscript book.
- topic_signal "art" -> "music" across notes.json, gemma.py (identity + signal +
prompt example), mock_inference.py (music keywords), CONTRACT.md, STATE.md.
- PLAN.md §3/§4/§7: profile + note descriptions reframed to musician.
- N11 childhood crayon drawings kept (a child's drawing is universal, not
artist-specific).
Co-Authored-By: Claude Opu…
Make the decoding loop learnable and the evidence meaningful, plus a batch
of game-feel and content work.
Learnability & prompt
- Category scaffold (Self/Other/Time/Emotion/Action/Truth) on chips + lexicon
- Per-act tone cap (ACT_TONE_CAP 3/5/7) so Act I stays short and decodable
- Prompt: direct answers (yes/no -> truth tones; lead with honest emotion;
internal_emotion must match tones, stop defaulting to "curious")
- Promote time_now (∿) and act_stay (←) into Act I (8->10 tones); relax the
Act I->II gate to tolerate a couple rarely-used tones
Evidence <-> lexicon
- Each note carries a hint {tone_id,text}, surfaced in the lexicon once that
tone is heard, so evidence helps decode the language
- Provenance ("found") line on every card; per-type icons
Empathy system & story
- Caring/personal questions raise state.empathy (keyword heuristic) -> unlock
backstory evidence; family topic_signal + server-side fallback
- 5 new notes (N11-N15): divorce/two homes, mother's voicemail, c…
Phase 0-2 + atmosphere: playable vertical slice on mock inference