Highlights: the GM picks the line of the night #1191

Closed
opened 2026-10-14 04:21:57 +00:00 by claude-bot · 3 comments
Collaborator

Owner request, 13 Oct 2026: "for highlights, I'd like to be able to pick the best highlight of the evening."

How highlights are chosen today

  • audio_service._HIGHLIGHTS_SYSTEM_PROMPT, once per transcript window: "Pick the funniest, most dramatic, or most memorable lines", at most the requested number of verbatim quotes plus 2-3 short "moments" in the model's own words.
  • Each quote is checked against the transcript line it cites (verbatim, speaker, timestamp) and dropped if it does not match.
  • The survivors are interleaved across windows (one from each window in turn) up to the campaign's highlights_max_quotes, then moments up to their own cap. There is no score and no ranking: order is window order, and the model is never asked which is best. The GM approves or strikes each one.
  • session_highlights stores kind, speaker, text, timestamp, approved, edited by; nothing marks one above the others.

Wanted

  • On the Review tab's highlights, the GM can mark one highlight as the line of the night (one per session; choosing another moves it; it can be cleared). Only an approved highlight can be chosen.
  • It shows first and marked on the session page's highlights, on the campaign's Highlights page (where it could anchor a "best of the campaign" view later), and in the approved summary's Discord post if that post carries highlights.
  • A nullable is_best (or best_highlight_id on the session; pick whichever keeps "one per session" true by construction) with a migration; part of export/import.

Open for the owner

  • GM-only choice (as asked), or later a table vote among players as an option.
  • Whether the model should suggest one (it could be asked which line it would pick, shown as a suggestion the GM confirms).
Owner request, 13 Oct 2026: "for highlights, I'd like to be able to pick the best highlight of the evening." ## How highlights are chosen today - `audio_service._HIGHLIGHTS_SYSTEM_PROMPT`, once per transcript window: "Pick the funniest, most dramatic, or most memorable lines", at most the requested number of verbatim quotes plus 2-3 short "moments" in the model's own words. - Each quote is checked against the transcript line it cites (verbatim, speaker, timestamp) and dropped if it does not match. - The survivors are interleaved across windows (one from each window in turn) up to the campaign's `highlights_max_quotes`, then moments up to their own cap. **There is no score and no ranking**: order is window order, and the model is never asked which is best. The GM approves or strikes each one. - `session_highlights` stores kind, speaker, text, timestamp, approved, edited by; nothing marks one above the others. ## Wanted - On the Review tab's highlights, the GM can mark one highlight as **the line of the night** (one per session; choosing another moves it; it can be cleared). Only an approved highlight can be chosen. - It shows first and marked on the session page's highlights, on the campaign's Highlights page (where it could anchor a "best of the campaign" view later), and in the approved summary's Discord post if that post carries highlights. - A nullable `is_best` (or `best_highlight_id` on the session; pick whichever keeps "one per session" true by construction) with a migration; part of export/import. ## Open for the owner - GM-only choice (as asked), or later a table vote among players as an option. - Whether the model should suggest one (it could be asked which line it would pick, shown as a suggestion the GM confirms).
Author
Collaborator

Owner decision, 13 Oct 2026: the GM picks, or the table votes. A campaign setting chooses which, under Settings → General, e.g. "Line of the night: chosen by the GM / voted by the table". Default: the GM.

Proposed details for the vote, to confirm when this is built (my defaults, not yet the owner's):

  • Who votes: every member of the campaign, GMs included; one vote each, changeable while voting is open.
  • What they vote on: the session's approved highlights, once the GM has approved the summary (so nobody votes on lines the GM is about to strike, and nothing is shown to players before approval, D96).
  • How long: until the next session starts, or 7 days, whichever comes first; the page says when it closes.
  • Result: the most votes wins; a tie, or no votes at all, falls to the GM, who can also pick in the GM mode. The GM can close voting early.
  • Seen by players: the highlights page shows a quiet "Vote for the line of the night" while open; counts hidden until it closes, then the winner is marked as in the GM mode.
  • Discord: a vote reaction on the summary post would be natural later; not in the first version (the post is the bot's, and reactions there are already RSVP and poll machinery).
  • No reminders or nudges about voting in the first version.

Schema: votes need their own table (session, highlight, voter, unique per session and voter); the winner is still recorded once per session as in the GM mode, so everything that shows "the line of the night" reads one place.

Owner decision, 13 Oct 2026: **the GM picks, or the table votes.** A campaign setting chooses which, under Settings → General, e.g. "Line of the night: chosen by the GM / voted by the table". Default: the GM. Proposed details for the vote, to confirm when this is built (my defaults, not yet the owner's): - **Who votes:** every member of the campaign, GMs included; one vote each, changeable while voting is open. - **What they vote on:** the session's approved highlights, once the GM has approved the summary (so nobody votes on lines the GM is about to strike, and nothing is shown to players before approval, D96). - **How long:** until the next session starts, or 7 days, whichever comes first; the page says when it closes. - **Result:** the most votes wins; a tie, or no votes at all, falls to the GM, who can also pick in the GM mode. The GM can close voting early. - **Seen by players:** the highlights page shows a quiet "Vote for the line of the night" while open; counts hidden until it closes, then the winner is marked as in the GM mode. - **Discord:** a vote reaction on the summary post would be natural later; not in the first version (the post is the bot's, and reactions there are already RSVP and poll machinery). - **No reminders or nudges** about voting in the first version. Schema: votes need their own table (session, highlight, voter, unique per session and voter); the winner is still recorded once per session as in the GM mode, so everything that shows "the line of the night" reads one place.
Author
Collaborator

Owner decision, 13 Oct 2026: voting runs for the first three days after a session. It closes three days after the session ends (replacing "until the next session or 7 days"). Votes can only be cast once the GM has approved the summary, so a late approval shortens the window; if the summary is not approved within the three days, there is no vote and the GM picks.

Owner decision, 13 Oct 2026: **voting runs for the first three days after a session.** It closes three days after the session ends (replacing "until the next session or 7 days"). Votes can only be cast once the GM has approved the summary, so a late approval shortens the window; if the summary is not approved within the three days, there is no vote and the GM picks.
Author
Collaborator

Owner correction, 13 Oct 2026: the three days count from the GM's approval of the summary, not from the end of the session. Voting opens on approval and closes three days later; the GM can still close it early. This replaces the previous comment's window and its "no vote if not approved within three days" case.

Owner correction, 13 Oct 2026: **the three days count from the GM's approval of the summary**, not from the end of the session. Voting opens on approval and closes three days later; the GM can still close it early. This replaces the previous comment's window and its "no vote if not approved within three days" case.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rbrooks/Quest-Board#1191
No description provided.