Glee-fully Chai Chasers
One wife. Two cats. Five AI tools. Zero real money.
A free, original, mobile-first cascading-reels game built as a birthday gift, and a working case study in multi-agent orchestration. One human PM directed Claude, Codex, Replit, ChatGPT, and Copilot against a canonical spec, a decision log, and a failing-test math oracle. Browser-only. Fictional currency. No purchases, no ads, no accounts.
Why this needed governance
Multi-agent work usually produces multi-agent chaos.
Point five AI tools at one repo and they overwrite each other, re-litigate settled questions, and regress each other's best work. The default outcome is churn wearing a productivity costume.
"Looks done" is not done.
The first implementation pass compiled clean and passed 23 unit tests. It also paid out 14% RTP against a 96% spec. Every gate was green except the one that mattered, because that gate did not exist yet.
Vibes don't survive handoffs.
"Make it feel like her favorite game" means nothing to the fourth tool in the chain. Canon has to be written down, or it evaporates at every boundary.
Personal projects deserve engineering discipline too.
A birthday gift with a hard deadline is exactly where governance pays: no time to rebuild, no budget to waste, one shot at the reveal.
A real game. A real spec. A real test.
A real cascade engine.
5x4 board, 40 paylines, tumbling wins, a cascade meter feeding a free-spin ladder, specialty wilds, and a 1-in-400 legendary event. Pure TypeScript, zero DOM imports, fully unit-tested.
A simulation oracle as the definition of done.
A 200,000-spin seeded test asserts RTP 96% plus or minus 0.5 and five event-frequency bands. It shipped deliberately red, and no tool was permitted to weaken it. Green meant done. Nothing else did.
Personalization as product spec.
Iced chai only. Two illustrated cats with different treat contracts. Keepsakes from one specific shared life. The specificity is the feature; genericness was treated as a defect.
Zero backend, zero money.
GitHub Pages static deploy, localStorage saves, fictional currency with an automatic refill. CI gates block private assets and brand strings from every build.
Five tools. One product. No chaos.
Five tools, one product, no chaos. Here's the actual structure that made that sentence true.
| Tool | Bounded role |
|---|---|
| Claude | Canonical spec, engine math, simulation oracle, PM and independent verification |
| Codex / ChatGPT Work | Pre-alpha foundation, product realignment, production art and UI baseline |
| Replit | Bounded implementation sprints under validation-loop prompts |
| GitHub | Single source of truth, CI gates, Pages deployment |
| Notion | Project hub and decision mirror |
The canonical spec
One document outranks every tool's opinion. Amendments are dated and ruled on, never improvised.
The decision log
Twenty-six settled decisions. Settled questions stay settled; no tool re-litigates a closed one.
The oracle
A deliberately failing test as a forcing function. It caught a 7x RTP miss and a 35x bonus-frequency miss that a green build would have shipped.
Layered authority
Each tool's strongest layer is protected from every other tool. Nobody regenerates someone else's best work.
Bounded prompts with validation loops
Every agent got scope fences, a rubric, and a minimum cycle count. "Improve the game" was never a task.
The rules the build ran on.
One spec to rule them all.
Tools propose; the decision log disposes.
Tests are the product owner at 2 a.m.
The oracle doesn't get tired, doesn't get charmed by a pretty build, and doesn't ship 14% RTP.
Bounded work or no work.
Every agent got one deliverable, one file fence, one owner.
Generous by design.
Real slot variance, honest meters, a bust-proof balance, no dark patterns. The fun is the anticipation, not the extraction.
The gift outranks the architecture.
Every technical decision lost if it made the product less hers.
A birthday gift. Not a casino. Not a wagering product.
This project is not:
- --a gambling product or a real-money system of any kind
- --a casino affiliate, promotion, or template for wagering software
- --affiliated with any game studio, beverage brand, or pet-food brand
- --a data product (no accounts, no purchases, no ads, no cash-out)
It is a birthday gift with a public repo, and a demonstration that one person can direct a council of AI tools to ship a polished product in nine days.
Nine days. One shot at the reveal.
Chai Chasers went from first research prompt to shippable in nine days of nights and weekends. Spec and mechanics research landed July 9 and 10. The first implementation slice arrived July 10 and promptly failed the brand-new simulation oracle at 14% RTP, which is exactly what the oracle was for. A bounded Round-2 sprint rebuilt the math. A July 12 realignment reset the product fantasy and brought production art. Ship week tuned, froze, and wrapped it. The full narrative lives in the build log, and the receipts live in docs/DECISION-LOG.md.