## 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