Skip to content

Commit 1be02e9

Browse files
committed
Sync pkdealer EPIC statuses (20-24 complete) + add EPIC-25 LLM row
1 parent 206f2a8 commit 1be02e9

5 files changed

Lines changed: 25 additions & 15 deletions

File tree

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "pkcore"
33
description = "Prototype core poker library."
4-
version = "0.1.1"
4+
version = "0.1.2"
55
rust-version = "1.94.1"
66
edition = "2024"
77
authors = ["electronicpanopticon <gaoler@electronicpanopticon.com>"]

ROADMAP.md

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -119,11 +119,11 @@ originally planned as a standalone `pkbot` crate)
119119
| [EPIC-17](docs/EPIC-17_Kuhn_Poker.md) | Kuhn Poker — minimal 3-card game, analytical Nash, CFR validator, interactive examples | Complete |
120120
| EPIC-18 | Bot Profiles — `BotProfile`, `Playbook`, `PositionRanges`, `PositionalBetting`; position- and table-size-aware YAML-serializable playing styles | Complete |
121121
| EPIC-19 | Bot Self-Play — drive `casino::table_no_cell::TableNoCell` with `BotProfile` agents; local simulation without gRPC; YAML hand-history recording and replay | Complete |
122-
| [EPIC-20](docs/EPIC-20_Autonomous_Game_Loop.md) | *(pkdealer)* Autonomous Game Loop — migrate to `PokerSession`, auto-advance streets | Planned |
123-
| [EPIC-21](docs/EPIC-21_Spectator.md) | *(pkdealer)* Web Spectator — `pkdealer_spectator` Axum+SSE crate, React/Tailwind frontend | Planned |
124-
| [EPIC-22](docs/EPIC-22_OTel.md) | *(pkdealer)* OTel Instrumentation — spans/metrics, Jaeger + Prometheus + Grafana | Planned |
125-
| [EPIC-23](docs/EPIC-23_Bot_Agents.md) | *(pkdealer)* Bot Agent Clients — random, rule-based (`BotDecider`), Claude LLM | Planned |
126-
| [EPIC-24](docs/EPIC-24_Demo.md) | *(pkdealer)* Demo Packaging — Docker Compose, `demo.sh`, Grafana dashboards, Langfuse | Planned |
122+
| [EPIC-20](docs/EPIC-20_Autonomous_Game_Loop.md) | *(pkdealer)* Autonomous Game Loop — migrate to `PokerSession`, auto-advance streets | Complete |
123+
| [EPIC-21](docs/EPIC-21_Spectator.md) | *(pkspectator)* Web Spectator — extracted to standalone [`pkspectator`](https://github.com/ImperialBower/pkspectator) repo; Axum+SSE, gRPC `StreamEvents` subscriber | Complete |
124+
| [EPIC-22](docs/EPIC-22_OTel.md) | *(pkdealer)* OTel Instrumentation — spans/metrics, Jaeger + Prometheus + Grafana | Complete |
125+
| [EPIC-23](docs/EPIC-23_Bot_Agents.md) | *(pkdealer)* Bot Agent Clients — random, rule-based (`BotDecider`), Claude LLM | Complete |
126+
| [EPIC-24](docs/EPIC-24_Demo.md) | *(pkdealer)* Demo Packaging — Docker Compose, `demo.sh`, Grafana dashboards, Langfuse | Complete |
127127
| [EPIC-25](docs/EPIC-25_Range_Frequencies.md) | Range Frequencies — optional per-combo frequency in range strings (`AA:0.5`) | Complete |
128128
| [EPIC-26](docs/EPIC-26_Player_Stats.md) | Player Action Tracking & Opponent Insights — `PlayerStats` / `StatsRegistry` keyed by `Uuid`, derived ratios (VPIP/PFR/AF/WTSD/c-bet/...), exposed to `BotDecider` (no behavior change), optional persistence | Complete |
129129
| [EPIC-27](docs/EPIC-27_Exploitative_Decider.md) | Adaptive Bot Framework — `ExploitativeDecider<D>` wrapper that converts opponent stats into runtime profile deviations; `ExploitConfig` with 8 deviation rules; `SimTable::new_with_registry`; demo + smoke tests | Complete |
@@ -360,11 +360,12 @@ frequency-annotated range string that feeds into `analyze_gto`.
360360

361361
| Epic | Topic | Status |
362362
|------|-------|--------|
363-
| [EPIC-20](https://github.com/ImperialBower/pkdealer/blob/main/docs/EPIC-20_Autonomous_Game_Loop.md) | Autonomous Game Loop — migrate to `PokerSession`, auto-advance streets, remove `unsafe impl Send` | Planned |
364-
| [EPIC-21](https://github.com/ImperialBower/pkdealer/blob/main/docs/EPIC-21_Spectator.md) | Web Spectator — `pkdealer_spectator` Axum+SSE crate, React/Tailwind frontend, all cards visible | Planned |
365-
| [EPIC-22](https://github.com/ImperialBower/pkdealer/blob/main/docs/EPIC-22_OTel.md) | OTel Instrumentation — `tracing` + OTLP spans/metrics, Jaeger + Prometheus + Grafana compose stack | Planned |
366-
| [EPIC-23](https://github.com/ImperialBower/pkdealer/blob/main/docs/EPIC-23_Bot_Agents.md) | Bot Agent Clients — random baseline, rule-based (`BotProfile`+`BotDecider`), Claude LLM with `gen_ai.*` spans | Planned |
367-
| [EPIC-24](https://github.com/ImperialBower/pkdealer/blob/main/docs/EPIC-24_Demo.md) | Demo Packaging — Docker Compose full stack, `demo.sh`, Grafana dashboards, Langfuse, `DEMO.md` | Planned |
363+
| [EPIC-20](https://github.com/ImperialBower/pkdealer/blob/main/docs/EPIC-20_Autonomous_Game_Loop.md) | Autonomous Game Loop — `PokerSession` migration, auto-advance streets/hands, seat resume via `client_secret` | Complete |
364+
| [EPIC-21](https://github.com/ImperialBower/pkdealer/blob/main/docs/EPIC-21_Spectator.md) | Web Spectator — extracted to [`pkspectator`](https://github.com/ImperialBower/pkspectator); Axum + SSE, gRPC `StreamEvents` subscriber, oval table UI | Complete |
365+
| [EPIC-22](https://github.com/ImperialBower/pkdealer/blob/main/docs/EPIC-22_OTel.md) | OTel Instrumentation — `tracing` + OTLP spans/metrics, Jaeger + Prometheus + Grafana compose stack | Complete |
366+
| [EPIC-23](https://github.com/ImperialBower/pkdealer/blob/main/docs/EPIC-23_Bot_Agents.md) | Bot Agent Clients — random baseline, rule-based (`BotProfile`+`BotDecider`), Claude LLM with `gen_ai.*` spans | Complete |
367+
| [EPIC-24](https://github.com/ImperialBower/pkdealer/blob/main/docs/EPIC-24_Demo.md) | Demo Packaging — Docker Compose full stack, `demo.sh`, Grafana dashboards, Langfuse, `DEMO.md` | Complete |
368+
| [EPIC-25 *(pkdealer)*](https://github.com/ImperialBower/pkdealer/blob/main/docs/EPIC-25_Local_LLM_Backend.md) | Local-LLM Backend & Multi-Model Agents — shared `LlmBackend` trait, `pkdealer_agent_ollama`, mock-HTTP backend tests (distinct from pkcore's EPIC-25 Range Frequencies) | Complete |
368369

369370
---
370371

docs/EPIC-23_Bot_Agents.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ events, and call `Act` on their turn:
1313
- **`pkdealer_agent_rules`** — uses pkcore's `BotProfile` + `BotDecider` (EPIC-19) over gRPC; the same decision logic as `SimTable` but with gRPC transport
1414
- **`pkdealer_agent_claude`** — sends hand state as a natural-language prompt to the Anthropic API; emits `gen_ai.*` OTel spans; supports Langfuse scoring
1515

16-
**Status:** Planned
16+
**Status:** Complete (shipped in pkdealer — PRs [#10](https://github.com/ImperialBower/pkdealer/pull/10), [#11](https://github.com/ImperialBower/pkdealer/pull/11))
1717
**Repo:** [ImperialBower/pkdealer](https://github.com/ImperialBower/pkdealer)
1818
**pkcore dependency:** `BotProfile` (`src/bot/profile.rs`), `BotDecider` (`src/bot/decider.rs`), `TableSnapshot` (`src/bot/table_snapshot.rs`)
19-
**Depends on:** EPIC-20, EPIC-22
19+
**Depends on:** EPIC-20, EPIC-22
20+
**Follow-on:** [EPIC-25 *(pkdealer)*](https://github.com/ImperialBower/pkdealer/blob/main/docs/EPIC-25_Local_LLM_Backend.md) extracted a shared `LlmBackend` trait and added `pkdealer_agent_ollama`

docs/EPIC-24_Demo.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ bot agent containers (rule-based + Claude), Jaeger, Prometheus, Grafana, and
1212
self-hosted Langfuse. Committed Grafana dashboard JSON and a `DEMO.md`
1313
presenter guide complete the package.
1414

15-
**Status:** Planned
15+
**Status:** Complete (shipped in pkdealer — PR [#13](https://github.com/ImperialBower/pkdealer/pull/13))
1616
**Repo:** [ImperialBower/pkdealer](https://github.com/ImperialBower/pkdealer)
17-
**Depends on:** EPIC-20, EPIC-21, EPIC-22, EPIC-23
17+
**Depends on:** EPIC-20, EPIC-21, EPIC-22, EPIC-23
18+
**Runbook:** [`pkdealer/DEMO.md`](https://github.com/ImperialBower/pkdealer/blob/main/DEMO.md) · launcher [`demo.sh`](https://github.com/ImperialBower/pkdealer/blob/main/demo.sh) · five-agent stack in [`docker-compose.yml`](https://github.com/ImperialBower/pkdealer/blob/main/docker-compose.yml) (gto/lag/tag rules bots + random + ollama)

docs/PKDEALER_QRSPI.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# pkdealer Platform — QRSPI Session Notes
22

3+
> **Historical snapshot — superseded.** This document captures the planning state on 2026-03-30.
4+
> Most items listed below as *(planned)* have since shipped: EPIC-20 (autonomous loop),
5+
> EPIC-22 (OTel), EPIC-23 (random/rules/Claude agents), EPIC-24 (Docker demo stack),
6+
> and pkdealer EPIC-25 (Local-LLM backend + Ollama agent). The spectator was extracted
7+
> to a separate repo: [ImperialBower/pkspectator](https://github.com/ImperialBower/pkspectator).
8+
> For current status see [`ROADMAP.md`](../ROADMAP.md) and the individual EPIC docs.
9+
310
**Date:** 2026-03-30
411
**Framework:** Question → Research → Structure → Plan → Implement
512
**Scope:** Client-server poker platform built on pkcore — AI agents, gRPC service,

0 commit comments

Comments
 (0)