feat(evals): size-appropriate werewolf role balance + private non-voter re-prompt - #997
Open
Poytr1 wants to merge 1 commit into
Open
feat(evals): size-appropriate werewolf role balance + private non-voter re-prompt#997Poytr1 wants to merge 1 commit into
Poytr1 wants to merge 1 commit into
Conversation
…er re-prompt (webchat) Two wolves at a five-player table degenerate — one unsaved night-1 kill reaches parity instantly, so every 5p game was a one-night game with no day, vote, or later round (measured across all real 5p runs; the user caught it). Role table (werewolfWolfCount, shared by both compositions): 5-6 players → ONE wolf, 7+ → two. Single-wolf night mediation collapses to propose-only: the lone wolf's clear statement IS the pack's choice (the referee's call says so; the absorb path already took a partnerless proposal directly), and the role message drops the phantom partner. Non-voter re-prompt (the human-moderator mirror): when a vote goes quiet the host nudges the referee — first nudge sends each living non-voter ONE private needsReply re-prompt mandating the self-identifying ballot form (direct replies carry no sender label); the second closes the ballot counting the still-missing as abstentions. Private ballots parse from direct, coalesced, and #800-inferred replies alike; either channel (public post or private reply) settles a player's obligation. Day records now carry rePrompted / abstentions. Also fixes a deterministic scripted-player bug the new multi-day 5p/7p games exposed: the previous round's VOTE rows lag into the next day's prompts and were counted as SPEECH, convincing seat 4 the whole round had spoken — vote lines are votes, never discussion speech. Scripted CI re-pinned for the sanctioned game-design change: 5p seed-1 now a two-round village win (night-1 save → full day ballot → seer finds the wolf → day-2 lynch); 6p multi-round keeps one wolf; a NEW 7p cell pins the two-wolf mediated propose→relay→agree leg across three rounds; a NEW abstainer cell pins the re-prompt leg end to end (private ballot counted, zero abstentions). Slack-shaped werewolf suite passes unmodified (its pinned cells are 7+ players, unaffected by the 5-6 row). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Approved. I found no blocking regressions in the exact reviewed revision.
The size-based role table is shared cleanly by both werewolf compositions, the single-wolf path correctly bypasses the partner-verdict leg, and the vote nudge state machine gives missing voters one private collection pass before closing remaining absences as abstentions. I also checked the multi-round scripted-player change against the existing lagged vote-row behavior.
Verification completed:
- eval collaboration contracts: 122/122 passed
- eval parity: 23/23 passed
- eval contracts: 46/46 passed
- focused webchat + Slack-shaped werewolf tests: 23/23 passed
- eval TypeScript check passed
- exact diff whitespace/conflict check passed
sent by review-bot (Codex · gpt-5.6-sol) · open in session
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Stacked on #984/#985/#986 (retargets as they merge). Fixes the composition flaw the user caught — two wolves at a five-player table degenerate: one unsaved night-1 kill reaches parity instantly, so every 5p game was a one-night game with no day, vote, or later round (measured across all real 5p runs).
Role table (
werewolfWolfCount, shared by both game compositions):Single-wolf night mediation collapses to propose-only — the lone wolf's clear statement IS the pack's choice (referee call text + role message adjusted; the absorb path already took a partnerless proposal directly). The two-wolf mediated propose→relay→agree leg stays pinned by a new 7p scripted cell (three rounds, every kill
verdict: 'agreed').Non-voter re-prompt (the human-moderator mirror, now on the critical path since votes decide 5p games): when a vote goes quiet the host nudges the referee — the first nudge sends each living non-voter ONE private
needsReplyre-prompt mandating the self-identifying ballot form (direct replies carry no sender label); the second closes the ballot counting the still-missing as abstentions. Private ballots parse from direct, coalesced, and #800-inferred replies alike; either channel settles the obligation. Pinned by a new abstainer cell: a scripted public-vote abstainer is re-prompted once, its private ballot counts, zero abstentions, game completes.Also fixes a deterministic scripted-player bug the new multi-day games exposed: the previous round's VOTE rows lag into the next day's prompts and were counted as SPEECH, convincing seat 4 the whole round had already spoken — vote lines are votes, never discussion speech.
Sanctioned re-pins (the game-design change): 5p seed-1 is now a two-round village win through actual play (night-1 save → full day-1 ballot → seer inspects the wolf → day-2 lynch); 6p keeps one wolf. Slack-shaped werewolf suite passes unmodified (its pinned cells are 7+ players, unaffected by the 5–6 row).
eval:collab:contractsnow 122 tests;eval:parity23,eval:contracts46, evals tsc — all green.🤖 Generated with Claude Code