A background worker compiles every generated app. When the build fails, the compiler errors go back to Claude for a targeted patch, and the loop repeats until the build passes. File-diff hashing catches circular edits, and a circuit breaker re-seeds the project if three turns fail.