Veit F. 422fa5b3ab feat: implement bot intelligence system with 8 archetypes and coaching
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.
2026-05-17 22:41:09 +02:00

3.2 KiB
Raw Blame History

Why

Bots currently make random coin-flip decisions, providing no strategic depth or learning value. Players need realistic bot opponents with distinct personalities, skill levels, and exploitable patterns — turning PokeR from a basic poker simulator into a player reading training ground.

What Changes

  • Bot personality system: 8 distinct player archetypes (Nit, TAG, LAG, Maniac, Calling Station, Loose Fish, Old Man, Monster TAG) each with unique decision-making profiles
  • Skill levels: 5 difficulty tiers (Novice, Beginner, Medium, Hard, Ultra) per archetype, with archetype-specific mistake libraries
  • Table setup UI: Visual seat editor letting players assign bot types and skill levels, with quick presets (Fish Table, Regular Grind, High Stakes, Training Mix)
  • Decision timer: Sequential action timer with configurable duration (5-30s), optional human timer, timeout defaults per archetype
  • Observation engine: Tracks VPIP, PFR, Fold-to-CBet, WTSD, bet sizing patterns, and timing data per opponent
  • Classification system: Weighted scoring algorithm that infers player types from observed stats with confidence percentages
  • Info levels: 4 tiers (None, Hints, Stats, Full Reveal) controlling what the player sees about opponents
  • Feedback system: 3 tiers (Off, Post-hand, Real-time) providing coaching at the player's chosen intensity
  • Teaching moments: Pattern recognition confirmations when players successfully exploit identified bot types
  • Timing tells: Decision time tracked per action; archetype-specific timing patterns that vary by skill level

Capabilities

New Capabilities

  • bot-personalities: 8 bot archetypes with personality-driven decision filters and archetype-specific mistake libraries across 5 skill levels
  • table-setup: Configurable table builder UI with seat-level bot type/skill selection, presets, and global settings (blinds, stack sizes)
  • decision-timer: Sequential action timer system with configurable duration, timeout defaults per archetype, and optional human timer
  • observation-tracking: Per-bot stat tracking (VPIP, PFR, Fold-to-CBet, WTSD, bet sizing, timing) across hand history
  • player-classification: Weighted scoring algorithm that classifies observed bots into archetypes with confidence scores
  • info-display: Configurable info level system controlling what opponent data the player sees during gameplay
  • teaching-coach: Context-sensitive coaching system with post-hand analysis, real-time suggestions, and pattern recognition confirmations

Modified Capabilities

  • gameplay-core: Bot decision flow changes from random coin-flip to personality × skill × GTO base pipeline; bot turn handling integrates with new timer system

Impact

  • Affected files: src/lib/types/player.ts (add personality/skill fields), src/lib/game/state.ts (observation tracking state), src/lib/game/actions.ts (bot decision integration), src/lib/game/turn.ts (timer integration)
  • New modules: Bot decision engine, observation tracker, classification algorithm, teaching coach, table setup component
  • No external dependencies: All logic implemented in TypeScript within the existing SvelteKit project