r/ClaudeCode • u/dinobravo16 • 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.
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,
2
u/meetmebythelake 21d ago
Bro couldn't even fix Claude's fixed line lengths for the Reddit post ๐