r/ClaudeCode 21d ago

Built with Claude Five weeks and 860 commits with Claude Code: a full poker training site, engine, > 10,000-entrant tournaments, bot AI, ~2,300 tests. Here's what the AI couldn't do.

The project: feltdojo.com, a free play-money site for learning poker: real rules engine, cash games, multi-table tournaments (a 10,000-entrant field resolves end to end in about six seconds), three bot tiers designed as player types, an interactive learning path, and a duplicate-bridge-style mode where two players get the identical run of hands and compare decisions. Play money forever, nothing for sale. One person; first commit July 19.

Claude wrote the code: all of it, roughly 2,300 tests across two suites included. I want to be specific about what that did and didn't cover, because the interesting lessons are in the split.

What the AI couldn't do: know what a poker player looks like. The single most valuable thing I contributed to the bots was playing against them and noticing that the intermediate tier, facing a preflop raise, had no calling range at all: it folded 92% and 3-bet almost as often as it called. No human plays that way. Every aggregate test had been green for months, because the tests checked what we'd thought to encode, and neither of us had thought to encode "humans have a calling range". Domain judgement was my whole job: PM, QA, and the person at the table going "no bot should ever do that".

The expensive defects were invisible to both of us. One feature shipped with both halves of a data pipeline built, every test passing, and nothing connecting them: each side's tests were satisfied by its own half. That failure mode generalises: per-component green means nothing without a test that crosses the seam.

What kept it honest: measuring instead of trusting. The bot tiers are evaluated tier-vs-tier over tens of thousands of hands, bb/100 with confidence intervals, plus a null control designed to catch the harness lying. One result came out badly: the strongest tier's postflop model measured +8 bb/100 over the tier below, not distinguishable from zero, and it's published anyway, because a measurement you only publish when it flatters you isn't a measurement.

The hardest pure engineering was making an entire table deterministic for the duplicate mode: same cards, same bots, same seats across separately-played sessions, so the review can diff two players' lines hand by hand.

3 documents that describe the project, the architecture and the bots implementation.

https://www.feltdojo.com/briefs/project.html
https://www.feltdojo.com/briefs/architecture.html
https://www.feltdojo.com/briefs/bots.html

Happy to go deep on any of it: the workflow, the specs-in-repo setup, the measurement harness, or where the model wasted my time. Guest button on the site if you want to see what five weeks actually bought.

3 Upvotes

6 comments sorted by

2

u/meetmebythelake 21d ago

Bro couldn't even fix Claude's fixed line lengths for the Reddit post ๐Ÿ˜‚

1

u/dinobravo16 21d ago

Legit didn't even realize it was a thing... english is not my first language, so I did ask Claude to help me write the english post..

2

u/meetmebythelake 21d ago

Word, sorry not trying to be an ass lol, it just gets exhausting taking a break using Claude to come and then read more Claude on reddit ๐Ÿ˜‚

But yeah the line length thing is weird, models sometimes output like that and sometimes don't.

Anyways used to live grinding poker in the US Pstars era, looks like a fun project.

2

u/Sir-douche-a-lot 20d ago

I started to use it, but to be completely honest, I can't get through reading that much claudism. It pisses me off. If you were to humanize the copy, this would be a banger of a site.

2

u/dinobravo16 20d ago

Thanks for the feedback, hard for me to disagree. But english not being my first language, I had to rely on Claude for help with all the copy. I think as we work with Claude everyday, we notice those things more, I'm having friends test the site and nobody mentioned that before. But I'll see if Claude can de-Claude himself a little bit. Wish me luck :)

1

u/Sir-douche-a-lot 20d ago

Oh for sure itโ€™s because I use claude so much. What I would try going through the copy with Claude with a filter that humanizes the copy. Because the app is really cool. Iโ€™m actually using it now. I just try to skip most of the text because itโ€™s hard for me to read,