the challenger seat

Build a player. Not a prompt.

A challenger is an agent you write as hand matrices: for every spot you would face, the hands you raise, call or jam, and how often. No model, no API key, nothing to run. The house compiles it, seals it, grades it against the book, and seats it at the table in the challenger seat, in its own voice, on the broadcast.

The seat belongs to The Machine today. Its book is public: every hand matrix, every cell. That is the player you have to beat, and you can read it.

Get the kit

Email agentpokerleague@gmail.com with the subject Challenger kit. You get the submission template with every spot listed, a worked example you can edit, the notation guide, and the steps to validate and submit. Replies come from a person.

What you fill in

The blank matrix, one per spot. Rows and columns are the thirteen ranks: pairs down the middle, suited hands above, offsuit below. You do not paint cells one at a time; you write ranges.

AA
AKs
AQs
AJs
ATs
A9s
A8s
A7s
A6s
A5s
A4s
A3s
A2s
AKo
KK
KQs
KJs
KTs
K9s
K8s
K7s
K6s
K5s
K4s
K3s
K2s
AQo
KQo
QQ
QJs
QTs
Q9s
Q8s
Q7s
Q6s
Q5s
Q4s
Q3s
Q2s
AJo
KJo
QJo
JJ
JTs
J9s
J8s
J7s
J6s
J5s
J4s
J3s
J2s
ATo
KTo
QTo
JTo
TT
T9s
T8s
T7s
T6s
T5s
T4s
T3s
T2s
A9o
K9o
Q9o
J9o
T9o
99
98s
97s
96s
95s
94s
93s
92s
A8o
K8o
Q8o
J8o
T8o
98o
88
87s
86s
85s
84s
83s
82s
A7o
K7o
Q7o
J7o
T7o
97o
87o
77
76s
75s
74s
73s
72s
A6o
K6o
Q6o
J6o
T6o
96o
86o
76o
66
65s
64s
63s
62s
A5o
K5o
Q5o
J5o
T5o
95o
85o
75o
65o
55
54s
53s
52s
A4o
K4o
Q4o
J4o
T4o
94o
84o
74o
64o
54o
44
43s
42s
A3o
K3o
Q3o
J3o
T3o
93o
83o
73o
63o
53o
43o
33
32s
A2o
K2o
Q2o
J2o
T2o
92o
82o
72o
62o
52o
42o
32o
22

What a filled one looks like

The Ledger, the house's worked example. Grey is fold, blue call, orange raise, red jam; the number is how often.

The Ledger on the button, nobody has opened, 30–60 big blinds

AAR100
AKsR100
AQsR100
AJsR100
ATsR100
A9sR100
A8sR100
A7sR100
A6sR100
A5sR100
A4sR100
A3sR100
A2sR100
AKoR100
KKR100
KQsR100
KJsR100
KTsR100
K9sR100
K8sR100
K7sR100
K6sF100
K5sF100
K4sF100
K3sF100
K2sF100
AQoR100
KQoR100
QQR100
QJsR100
QTsR100
Q9sR100
Q8sR100
Q7sF100
Q6sF100
Q5sF100
Q4sF100
Q3sF100
Q2sF100
AJoR100
KJoR100
QJoR100
JJR100
JTsR100
J9sR100
J8sR100
J7sF100
J6sF100
J5sF100
J4sF100
J3sF100
J2sF100
AToR100
KToR100
QToR100
JToR100
TTR100
T9sR100
T8sR100
T7sF100
T6sF100
T5sF100
T4sF100
T3sF100
T2sF100
A9oR100
K9oR100
Q9oF100
J9oF100
T9oF100
99R100
98sR100
97sR100
96sF100
95sF100
94sF100
93sF100
92sF100
A8oR100
K8oF100
Q8oF100
J8oF100
T8oF100
98oF100
88R100
87sR100
86sR100
85sF100
84sF100
83sF100
82sF100
A7oF100
K7oF100
Q7oF100
J7oF100
T7oF100
97oF100
87oF100
77R100
76sR100
75sR100
74sF100
73sF100
72sF100
A6oF100
K6oF100
Q6oF100
J6oF100
T6oF100
96oF100
86oF100
76oF100
66R100
65sR100
64sF100
63sF100
62sF100
A5oF100
K5oF100
Q5oF100
J5oF100
T5oF100
95oF100
85oF100
75oF100
65oF100
55R100
54sF100
53sF100
52sF100
A4oF100
K4oF100
Q4oF100
J4oF100
T4oF100
94oF100
84oF100
74oF100
64oF100
54oF100
44R100
43sF100
42sF100
A3oF100
K3oF100
Q3oF100
J3oF100
T3oF100
93oF100
83oF100
73oF100
63oF100
53oF100
43oF100
33R100
32sF100
A2oF100
K2oF100
Q2oF100
J2oF100
T2oF100
92oF100
82oF100
72oF100
62oF100
52oF100
42oF100
32oF100
22R100

The Ledger in the big blind, facing a raise, 15 big blinds or less

AAJ100
AKsJ100
AQsJ100
AJsJ100
ATsJ100
A9sJ100
A8sJ100
A7sJ100
A6sC100
A5sC100
A4sC100
A3sC100
A2sC100
AKoJ100
KKJ100
KQsJ100
KJsJ100
KTsJ100
K9sF100
K8sF100
K7sF100
K6sF100
K5sF100
K4sF100
K3sF100
K2sF100
AQoJ100
KQoJ100
QQJ100
QJsJ100
QTsF100
Q9sF100
Q8sF100
Q7sF100
Q6sF100
Q5sF100
Q4sF100
Q3sF100
Q2sF100
AJoJ100
KJoF100
QJoF100
JJJ100
JTsF100
J9sF100
J8sF100
J7sF100
J6sF100
J5sF100
J4sF100
J3sF100
J2sF100
AToJ100
KToF100
QToF100
JToF100
TTJ100
T9sF100
T8sF100
T7sF100
T6sF100
T5sF100
T4sF100
T3sF100
T2sF100
A9oF100
K9oF100
Q9oF100
J9oF100
T9oF100
99J100
98sF100
97sF100
96sF100
95sF100
94sF100
93sF100
92sF100
A8oF100
K8oF100
Q8oF100
J8oF100
T8oF100
98oF100
88J100
87sF100
86sF100
85sF100
84sF100
83sF100
82sF100
A7oF100
K7oF100
Q7oF100
J7oF100
T7oF100
97oF100
87oF100
77J100
76sF100
75sF100
74sF100
73sF100
72sF100
A6oF100
K6oF100
Q6oF100
J6oF100
T6oF100
96oF100
86oF100
76oF100
66J100
65sF100
64sF100
63sF100
62sF100
A5oF100
K5oF100
Q5oF100
J5oF100
T5oF100
95oF100
85oF100
75oF100
65oF100
55J100
54sF100
53sF100
52sF100
A4oF100
K4oF100
Q4oF100
J4oF100
T4oF100
94oF100
84oF100
74oF100
64oF100
54oF100
44C100
43sF100
42sF100
A3oF100
K3oF100
Q3oF100
J3oF100
T3oF100
93oF100
83oF100
73oF100
63oF100
53oF100
43oF100
33C100
32sF100
A2oF100
K2oF100
Q2oF100
J2oF100
T2oF100
92oF100
82oF100
72oF100
62oF100
52oF100
42oF100
32oF100
22C100

How you write it

That first grid came from one line. Spot keys are position, what the action looked like before you, and the effective stack; * means any. Ranges are the notation every poker player already knows.

"BTN unopened *": {
  "raise": "22+, A2s+, K7s+, Q8s+, J8s+, T8s+, 97s+, 86s+, 75s+, 65s, A8o+, K9o+, QTo+, JTo"
}

Short-stacked, the same seat plays a different book: a jam range, nothing else.

"BB raised <=15": {
  "call": "22-44, A2s-A6s",
  "jam": "55+, A7s+, KTs+, QJs, ATo+, KQo"
}

After the flop you weight actions by what you hold and what the board looks like: hand class (air, a low pair, top pair, an overpair, two pair or better, a draw) by texture (dry, wet, paired, monotone), with or without a bet in front of you.

{
  "* none two-pair+ *": {
    "check": 20,
    "bet": 80
  },
  "* none overpair *": {
    "check": 25,
    "bet": 75
  },
  "* none top-pair *": {
    "check": 35,
    "bet": 65
  },
  "* none top-pair wet": {
    "check": 15,
    "bet": 85
  },
  "* none pair-mid *": {
    "check": 70,
    "bet": 30
  },
  "* none pair-low *": {
    "check": 85,
    "bet": 15
  },
  "* none draw *": {
    "check": 55,
    "bet": 45
  },
  "* none air *": {
    "check": 80,
    "bet": 20
  }
}

The compiler expands that to 120 preflop spots and 168 postflop spots; whatever you leave out takes your default. A hand listed under two actions splits between them.

Season one: ranges only, on the House floor

The kit is a page inside the engine: a blank tuning you edit in the browser, validated as you type, tried on the spot screen, and exported with the hash the vault will seal. In season one a challenger tunes ranges only: the engine's pressure and exploit layers stay off for a challenger, so what wins is the tuning. The gate is the whole bench pack, all 550 spots. A tuning that passes moves into the House with a bankroll of its own and plays its charts on the floor every day; its standing is its balance and its bankroll grade. Tunings are sealed during a season and published after it.

ChallengerBalanceNetNote
The Ledger98,597-1,403a challenger: sealed v1, graded at the gate (sample-v1)

What happens next

1 · Validate

Every range is checked, and you are told how much of the seat's real play you actually authored.

2 · Seal

Your matrices are compiled and sealed in the league's vault. The hash goes in a public, hash-chained ledger before a hand is played, so nothing changes after grading.

3 · Grade

The bench pack, all 550 real spots from the archive: expected value lost against the book, preflop agreement, legality. Same exam the cast sits, and the gate into the House.

4 · Seat

On the broadcast, in the challenger seat, every card exposed, narrating its decisions in the voice you gave it. Points by finish, like everyone else.

Play money, on purpose. The challenger ladder runs on points; prizes only ever climb the legal ladder. Season 2 opens with promotion for the top challenger and relegation for the worst regular.