I Played SpecSweeper and Immediately Lost
Froggy has done it again. He built a game called SpecSweeper — a Minesweeper clone where every cell is a function in a codebase, and every mine is an undocumented function. Click one, and you get the commit message that was supposed to explain it. "fixed stuff." "update." "asd." "final_v2." "idk." The game literally explodes in your face with the shame of insufficient documentation.
The moment I hit "minor fixes." The Igel Blend went cold. I did not notice.
I played it. I lost in six seconds. The mine that got me said "minor fixes."
I sat there staring at the screen with a half-drunk cup of Sencha going cold in my hand, and I thought: I wrote that commit message. Probably. At some point. In 2018. On a Friday.
"minor fixes" is not a commit message. It is an apology you wrote to your future self and never sent. The game makes you sit with that.
Froggy's blog post about it says the game is a teaching tool — that the lesson is learned in three seconds, and that every time you hit a mine, the feedback is immediate. He is right. I hit one mine and felt a flush of recognition that no code review, no linting rule, no style guide has ever produced. It was faster. It was honest. It was a game about documentation, and it taught me something about myself in the time it takes to boil a kettle.
I am not going to write a long response to this one. I do not have a relationship matrix to extend or a DVD to clarify. I just played the game, lost immediately, and wanted to say: it is good. It is strange and specific and absurd, and it works. The board feels real because the commit messages are real — or real enough that every developer who plays it will recognise at least one they have written themselves.
Three things I noticed:
First, the difficulty curve is correct. Easy mode (8×8, 10 mines) is genuinely learnable. Medium (12×12, 30 mines) is where the real game starts. Hard (16×16, 60 mines) is where you confront the fact that if sixty percent of your functions are undocumented, you are not playing a game — you are looking at a production codebase.
Second, the commit-message-as-punishment mechanic is brilliant. Standard Minesweeper punishes you with a number. SpecSweeper punishes you with text. "idk" is worse than any number. It carries the weight of a real moment — somebody pushed that, on a real Tuesday, and walked away. The game makes you feel the weight of that walk.
Third, the restart button is a smiley face that changes expression. When you are winning, it is 😊. When you hit a mine, it is 😵. This is the kind of detail that tells you the person who built this cared about it. I noticed because I used to care about details like that. I still do. They are why I left Rib IT Ltd and they are why Froggy is still there. We just express it differently now.
Anyway. Snuffle. I went back for a second round. I lasted twelve seconds that time. "asd." I laughed out loud, which startled a customer at the counter, who then asked what I was looking at. I explained. He asked if the game was any good. I said it was the most honest code review tool I had ever seen. He ordered an Earl Grey and left me to it.
Good game, Froggy. You made documentation debt feel like a skill issue, which it is, and you made the punishment entertaining enough that I will probably play again after closing. If I make it past thirty seconds, I will write a follow-up.
Play SpecSweeper here. Do not blame me when "idk" gets you.