feat(prompting): Phase A — suppress the two mush sources in poker mode
Per docs/superpowers/specs/2026-07-01-poker-prompts-design.md, Phase A. Two independent pipeline fixes that reduce mush at the table, ahead of the classifier: 1. _mode_menu_note is no longer injected in poker_cash — mid-session she should not be offering to switch modes. 2. _route skips the register/mood nudge in poker_cash — the lexicon heuristic misfired (neutral logistics like "table broke, 11:50pm" read as tilt/fatigue). Poker register will come from the Phase B MENTAL fragment instead. Non-poker modes keep the nudge unchanged. 2 tests. Full suite 180 green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+10
-1
@@ -159,7 +159,10 @@ def build_messages(session_id: str, user_msg: str,
|
||||
|
||||
# Mode awareness: she can offer to switch when the work clearly shifts (she decides
|
||||
# when — better than a keyword guess). One line, on his yes she calls set_mode.
|
||||
messages.append({"role": "system", "content": _mode_menu_note(mode)})
|
||||
# Suppressed at the live table (poker_cash) — mid-session she shouldn't be offering
|
||||
# to change modes; it's pure noise when the job is logging and coaching.
|
||||
if not (mode and mode.key == "poker_cash"):
|
||||
messages.append({"role": "system", "content": _mode_menu_note(mode)})
|
||||
|
||||
# Live ritual state (e.g. Alligator Blood ON) — dynamic, rides with the card.
|
||||
state_note = _mode_state_note(mode)
|
||||
@@ -337,6 +340,12 @@ def _route(ctx: TurnContext) -> TurnContext:
|
||||
a charged emotional moment adds a per-turn register nudge (deterministic). Most
|
||||
turns are neutral and get no note — that's the point (don't over-narrate)."""
|
||||
ctx.mode = modes.get(memory.get_session_mode(ctx.session_id))
|
||||
# At the live table the register comes from the poker prompt fragments (esp. the
|
||||
# MENTAL one), not this lexicon nudge — which misfired, reading neutral logistics
|
||||
# ("table broke, it's 11:50pm") as tilt/fatigue. Resolve the mode, but skip the
|
||||
# register/note block in poker_cash. Non-poker modes keep the nudge unchanged.
|
||||
if ctx.mode and ctx.mode.key == "poker_cash":
|
||||
return ctx
|
||||
m = ctx.moment or {}
|
||||
note = None
|
||||
if m.get("tilt", 0) >= _TILT_BAR:
|
||||
|
||||
Reference in New Issue
Block a user