Add personality-driven bots with 8 archetypes (Nit, TAG, LAG, Maniac, Calling Station, Loose Fish, Old Man, Monster TAG) across 5 skill levels. Includes: - Three-layer decision pipeline (base strategy → personality filter → skill noise) - Decision timer system with archetype-specific timeout defaults - Observation tracking engine (VPIP, PFR, Fold-to-CBet, WTSD, bet sizing, timing tells) - Player classification engine with weighted scoring and confidence scaling - Table setup UI with visual seat editor and quick presets - Info display system with 4 visibility levels - Teaching coach with post-hand analysis and real-time suggestions Archives bot-intelligence change and syncs all 8 delta specs to main specs.
3.8 KiB
ADDED Requirements
Requirement: Three feedback levels control coaching intensity
The system SHALL provide 3 feedback levels: Off, Post-hand, and Real-time. At "Off," no coaching is provided. At "Post-hand," a brief analysis appears after each completed hand. At "Real-time," contextual suggestions appear during the player's decision-making phase. The feedback level SHALL be configurable in table setup.
Scenario: Off provides no coaching
- WHEN feedback level is "Off" and the player completes a hand
- THEN no analysis, suggestion, or teaching content is displayed
Scenario: Post-hand shows analysis after completion
- WHEN feedback level is "Post-hand" and a hand completes with the human involved
- THEN an analysis panel appears summarizing key decisions, opponent reads, and suggested improvements
Scenario: Real-time shows suggestions during play
- WHEN feedback level is "Real-time" and it is the human's turn to act
- THEN a contextual suggestion may appear (e.g., "Player 2 folds 65% to raises — good bluff spot")
Requirement: Teaching respects player info preferences
The system SHALL ensure that coaching content does not reveal more information than the player's chosen info level permits. At "None" info level, real-time suggestions SHALL be generic and not reference specific opponent statistics. At "Hints" level, suggestions MAY reference detected patterns but SHALL not show raw numbers.
Scenario: Coaching respects None info level
- WHEN info level is "None" and feedback is "Real-time"
- THEN suggestions are general strategic advice without referencing opponent stats or types
Scenario: Coaching respects Hints info level
- WHEN info level is "Hints" and a pattern has been detected for Player 3
- THEN a suggestion may say "Player 3 plays many hands — consider raising more against them" without showing VPIP numbers
Requirement: Pattern recognition confirmations reward correct reads
The system SHALL detect when the human player successfully exploits an identified opponent pattern (e.g., bluffing a known nit, value-betting a calling station). When exploitation is detected over 3+ consecutive hands, the system SHALL display a "Read Confirmed" notification acknowledging the player's successful read and reinforcing the lesson.
Scenario: Successful exploitation triggers confirmation
- WHEN the player bluffs against Player 2 three times in succession and wins all pots, and Player 2 is classified as a Nit
- THEN a "Read Confirmed" notification appears: "You've been exploiting Player 2's tight play — they're folding too much to your bluffs"
Scenario: Confirmation includes teaching lesson
- WHEN a read confirmation triggers
- THEN the notification includes a brief lesson explaining the underlying principle (e.g., "Nits fold frequently to aggression. Bluffing them is profitable.")
Requirement: Post-hand analysis covers key learning areas
Post-hand analysis SHALL address: (1) whether the player's action was optimal given their hand and position, (2) what the opponent likely held based on observed patterns, (3) whether the player correctly read the opponent, and (4) a suggested alternative action if applicable. Analysis depth SHALL scale with feedback level.
Scenario: Post-hand identifies missed value
- WHEN the player checks with top pair against a known Calling Station who would have called a bet
- THEN post-hand analysis notes: "You could have bet for value — Player 3 calls frequently and likely has a worse hand"
Scenario: Post-hand confirms good read
- WHEN the player correctly folds to a bluff from a known LAG
- THEN post-hand analysis notes: "Good fold — Player 4 bluffs frequently, and their bet sizing was inconsistent with strength"