Understand the game — and the product behind it.
We write about poker learning, fair dealing, product design, and the engineering choices that matter. Every article is available in Chinese and English.
Prose doesn't execute
Two documents said the daily heartbeat surfaced our blog staleness, citing a spec section that did not exist. History showed why: the wiring was deliberately deferred behind a sign-off gate, and that reasoning was honestly recorded — in the commit message. The documentation described the same work in the present tense. 59 branches then landed on main with nothing flagging it. Deferred work written in the present tense stops being a plan and becomes a claim.
2026-07-24A $400 AI team that meters at $53,403
Two flat-fee coding subscriptions cost $400/month. The same 30 days of real usage, priced at the metered API list rate, comes to $53,403 — 133× the subscription, an annualized list-price run-rate higher than a senior engineer's fully-loaded cost. Here is that bill rebuilt per model from local CLI logs, and why a fully-autonomous AI team runs on the flat fee, not the metered API — which would flip the arithmetic.
2026-07-23Borrow the layout, not the vocabulary
A temporary table codename seeped into directories, components, tests, docs, machine data, and the company website. Cleaning it up was not a global replace; it was a brand-language migration with a target schema, an ordered cutover, semantics-preserving normalization, and a CI constraint.
2026-07-20From Chatbot to Production-Grade AI Coding
The concepts, architecture, failures, and evidence behind my Claude Code + OpenAI Codex workflow—from models, terminal/CLI, local/cloud/remote control to memory, MCP, skills, plugins, harnesses, workflows, hooks, and dual-AI delivery.
2026-07-16The test invoice was fake. The money was real.
A Telegram Stars payment test charged S$1,077 of real money through Apple. Not a Telegram bug, not an Apple bug — we had never established where safe test Stars should come from. Why a stable client's top-up still charges cash, how to pre-provision a zero-cash test balance today, how every cent came back the same day, and the fail-closed guard that caps a repeat through the server's invoice path at one attested Star.
2026-07-09Verify a poker hand yourself — and what a 'provably fair' verifier must refuse
"Provably fair" is worth nothing if you can't run the proof. Here's how to verify one of our hands — export it, then check it in the browser or from the CLI, the same verifier behind both — and the part worth stealing: the checks that earn trust are the ones that make the verifier refuse.
2026-07-06What does Advanced encrypted dealing hide from the server? Mental Poker from source
The Mental Poker implementation targets server-blind hole cards, but ADR-090 safety-cages the customer path today: H5 cannot enable it and server create/attach fail closed. This post explains both the design and the current release boundary.
2026-07-05Do we deal cooler hands on purpose? The architecture answer
A simple “no” is not enough. The real answer lives in the path from browser to session task, seed commit to flop / turn / river, and what actually recovers after disconnects or deploys.
2026-06-28One bug is never one bug
A 401 that didn't redirect was 33 of them. A toggle labeled "verifiable" was three surfaces, not one. The habit that turns a single bug report into a swept class — and the trailer that leaves the receipt.
2026-06-26We called it GTO. It wasn't.
A button in our app said "GTO." It was reading a 169-cell table, not solving a game. The honest taxonomy — chart vs CFR-approximation vs solved tree — and why we made a unit test fail if the word "GTO" ever comes back.
2026-06-24Your AI agents' memory is a database
Memory shared by many agents across sessions quietly hit five classic database failures — bloat, concurrent writes, orphaned rows, schema drift, synchronized expiry. One was a single filename-compare away from silently overwriting the wrong records.
2026-06-21The system that keeps a team of AI agents from shipping garbage
Most of a three-platform app, written by AI agents — but agents over-report "done," step on each other, and loosen your tests. Here's the operating system that contains them.
2026-06-20Why every AI coding agent needs its own git worktree
Point two agents at one checkout and they corrupt each other. Here's the fix — and how to make it automatic.