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

39 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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