Skip to content

[The Table] Session Rhythm — Previously-on recap, cliffhanger engine, epilogue card #838

@100yenadmin

Description

@100yenadmin

Concept

Sessions have no shape: no cold-open recap, no engineered cliffhanger, no closing card. Serialized fiction runs on rhythm — this is cheap and enormous for "one more session."

Design

  1. "Previously on…": on session resume, the DM's first beat is prefixed by the engine recap (recap.py already builds one — session_recap tool) rendered as a styled cinematic card in the chronicle BEFORE the new scene (viewer render of the recap text; the DM already receives it).
  2. Cliffhanger engine: when the player signals session end (or an inactivity threshold), the engine advises the DM: "CLOSING BEAT: end on an unresolved hook — name a looming threat, an unanswered question, or an arriving figure." Hook is logged (scene_debt.py — the debt machinery is literally built for unresolved hooks) so the NEXT session's recap ends with it.
  3. Epilogue card: at session end render: XP gained, approval deltas (+reasons), world changes (top consequence lines — joint with the Consequence Surface issue), next hook. All from existing ledgers; zero new state.

Files

viewer/openworlds/ (recap + epilogue card components), servers/engine/server.py (an end_session_summary read-model), dungeon-master skill (CLOSING BEAT directive), scene_debt.py (hook logging — exists).

Acceptance

A two-session GUI run: session 1 ends with a logged hook + epilogue card showing real deltas; session 2 opens with the recap card ending on that hook. Behavioral gate unaffected.

Moves

cross_persona_sat, retention, story_craft (arc continuity).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions