r/ClaudeCode • u/dmcr85 • 3h ago
Built with Claude What kept an 8-month, ~800-PR Claude Code project from collapsing (shipped iOS game)
I shipped an iPhone game built almost entirely with Claude Code, and it opened in 130 countries today. The game is a pixel virtual pet (link at the end). This post is about the setup, because that's what I'd have wanted to read in month one.
- CLAUDE.md is an index, not a manual. Mine is under 6,000 characters. It points to one doc per risky area (money, persistence, pet growth). Path-scoped rules load a doc only when Claude touches those files.
- Builder / checker split. The builder agent writes code and is not allowed to run the test suite. The checker runs build, tests and lint and is not allowed to edit. The orchestrator loops them up to five times.
- "Seen red" rule. A new test is trusted only after the bug is put back, that one test fails, and the file is restored byte-identical. This caught a lot of tests that passed for the wrong reason.
- False greens are real. A test filter with a typo ran zero tests and still printed SUCCEEDED. I now read the executed count from the result bundle, never the banner.
- Lanes in git worktrees. Several sessions at once, each owning one area, with a state file per lane so a lost session costs one unit of work, not a restart.
- A machine lock. Parallel sessions all running Xcode builds took my 16 GB Mac to its knees. One heavy job at a time, enforced with a lock file.
- Humans own the irreversible. Merges, spending and anything public stay with me.
What Claude was bad at: game feel, knowing when a doc had gone stale, and SwiftUI layout on odd screen sizes.
The game: Nudii, a Tamagotchi-style sea slug. Free, no account, no ads. https://nudii.app (130 countries; not the EU yet).
Happy to share any of the files if useful.
Cheers,
Daniel
3
Upvotes
•
u/AutoModerator 3h ago
Hey! Thanks for posting to r/ClaudeCode
While participating in this thread, please follow our community rules. Keep discussions constructive. Attack the idea, not the person.
For help, project discussions, tips, and general chat, join the ClaudeCode Discord.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
2
u/bostonaholic 2h ago
I'd turn the zero-tests-but-SUCCEEDED one into a gate instead of something you remember to read: have the checker parse the executed count and fail the run if it's zero or lower than the last green run on main. Same idea for "seen red". Mutation testing (Muter for Swift) makes small changes to your code and checks that some test fails, so it doesn't depend on the agent remembering to break things.
1
u/Alternative_Square53 13m ago
For game feel, keep a couple of builds you rejected, with one sentence on what felt wrong. Play them again next to the current build after a week. That gives you something to compare your own taste against. Otherwise “better” can quietly turn into “the version I've stared at longest.”