Cricket Pro (WIP) is a management sim in the style of Football Manager, with a match engine calibrated against real cricket and 1,429 real players. It’s a live project. I scope, design and test it, with an AI coding agent writing the code.
I’ve wanted a cricket game as deep as Football Manager for years. Cricket Captain and Cricket Coach came close. In August I started building my own.
if i wanted to make a proper cricket simulator game, similar to football mamanger and/or cricket captain and/or cricket coach 2014. What would i need to do? … Help me plan.MY FIRST PROMPT · 20 AUG
Four days later there was a match engine tuned against real Test, ODI and T20 numbers, a simulated world and a desktop app. I spent those days on scope, the Laws of cricket and playing every build. I corrected the follow-on rule, flagged far too many declarations, and saw that a bug patched three times in three places was one modelling mistake.
Commits per day, and the bugs I found
In cricket this is a Manhattan chart. Each gold dot is a bug I found by playing the build.
24 AUGThe re-scope
Adding a design process
After four days the game worked, but nobody had designed it. External audits scored it 64/100 for UX and 11/24 for UI. I paused feature work and set up a process with a UX stage, a UI stage, a spec and then the build, all tracked on the board above.
I also had the agent interview me about the game I wanted. My answers became 17 numbered product decisions, including these:
D2
You play a manager with a board above you and a job you can lose
D3
You run match day yourself, and can hand decisions to your captain
D11
Build the foundations first, even if little is playable until phase 2
D14
Check WCAG 2.2 AA at every UI stage
The pipeline every feature goes through
Design runs ahead of build. A feature is done when both tracks pass.
P2-02Done
The hub
The hub is the screen you come back to between matches, and the first feature through the full process. A season is a routine, so the inbox only flags decisions waiting for you. Designing the error states turned up four bugs in existing code, including a live match lost when you closed the window.
Card sorting and tree testing need 15 to 50 people, and I was the only user. I noted that gap in the design docs.
Redesign · WIPThe redesigned hub.
P1-04Done
Design system and player visuals
The app had a rule against hard-coded colours and spacing from the first screen. A count still found 290 of them. So I turned the rules into tests that fail the build, and the count can only go down.
Hard-coded spacing values left in the app
The first accent was gold. It looked fine on a button, then failed on a full tile, where one caption measured 1.57:1. It moved to steel, then teal, and gold became the focus ring.
Turf green, gold, steel, teal
Switch sizes
For player screens I started from Football Manager and then went my own way. In this game your scouts can be wrong about a player. Results like runs and wickets are printed exactly. Attributes are bars with a band showing how sure your scouts are.
How sure your scouts are
Try itExample player. The band narrows the more you watch him.
Three marks for eleven roles
A dashed ball means a batter who can bowl a bit.Redesign · WIPSelection, with role marks, stars, form and status chips.
X-03 · X-09Done
Real players
I picked the sources, Cricsheet’s ball-by-ball archive and Wikidata, and every cut-off was measured on real data. The first all-rounder rule made Joe Root an all-rounder. The first real world picked Kevin Pietersen for 2026. Real birth dates and a cut-off for active players fixed both.
If a country can’t field a legal XI from real players, the import stops. It never invents a player.
From archive to roster
What the data decided
Names shared by more than one cricketer
530
Bowlers with their real bowling style
98.4%
Players with a real birth date
97.5%
Years since a player’s last game to be picked
4
P2-05Done
Match day, designed twice
The first match-day design was made without my input. It was solid, and it found 18 bugs in the existing code, three of which could wipe a career. But nobody had asked the person who would play it. I asked to be interviewed, and six of my answers changed the design.
Without me
After my interview
Match day is a screen
Match day is its own mode, with room for the ground and pitch map
The game skips overs it thinks are dull
Every over stops. You set the pace with “simulate to”
Success is fewer than 20 stops a day
Dropped, because it rewards using the feature less
Stops and questions at the over break
Try itA stop lets you change things or play on. A question needs an answer first. The aggression meter is my design.
Every part passed its tests. Next to the wireframes, it still didn’t match. The skip control had no button, and the pitch map was squeezed into a strip. Tests only checked the logic, so from then on I compared every screen with its wireframe myself.
That evening I made match day the top product principle. If a single match doesn’t feel like real cricket, the rest of the game doesn’t matter. It also led to quick play: one match, no career, about ninety seconds to the first ball.
As builtMatch day as built: a T20, Pakistan v England.
28 AUG → 8 SEPMy call
Bringing parallel work back together
To go faster I ran several agent sessions at once, each on its own branch. It got more done, and it caused problems. The board went stale, one feature was built twice, and a trial merge found 17 errors git had missed. On 8 September I brought everything back into one place: 19 branches down to 2, with 789 tests passing.
Parallel branches, 24 Aug – 8 Sep
Simplified
SINCE SEPWork in progress
The visual redesign
The build had the right behaviour and plain screens. I’m now redesigning every screen in Claude Design, with the design system and the match-day decisions as the brief. None of it is in the game yet.
Match day, as built and redesigned
Drag to compare
As builtRedesign
Left: the build on 8 September, a T20 between Pakistan and England. Right: the redesign of the same screen, during a Test at Lord’s.
The match follows youA score bar on every screen, and a button that tells you when a decision is waiting.
One panel for the over breakBowler, field and batting plan in one place, then “Bowl the over”.
A ground you can useField settings drawn on the ground, with every fielder named.
Shared partsThe same tables, role marks, stars and form strips on every screen.
Finish the redesignBring the new screens into the game, starting with match day.
Check the career statsReal career statistics are imported and need verifying.
Ratings from real dataOne attribute at a time, each measured before the next.
LicensingReal names swapped for fictional ones before a wider release, and Afghanistan added by hand.
My prompts by kind
~184 promptsEstimated from the session logs. Most approved planned work. Scope calls and playtest feedback changed the game.
Bugs I found by playing
What I learned
Turn rules into tests earlyA rule that only lived in a document collected 290 exceptions.
Bring the domain knowledgeThe Laws, the realism and the stats were mine to catch.
Get interviewed on your own projectThe match-day design changed most when I answered questions.
Play the buildMost of the bugs that mattered showed up when I played it.
Commit before working in parallelParallel sessions saved time and cost a clean-up.
Sources: the project’s board, git history, session transcripts and design documents. Prompts are verbatim, typos included.The full day-by-day story is in the build log.