Every single time I have vibe coded a project I cared about, letting the AI rip with mild code review and rigorous testing has bit me in the ass, without fail. It doesn't extend it in the taste that I want, things are clearly spiraling out of control, etc. Just satisfying some specs at the time of creation isn't enough. These things evolve, they're a living being.
I started with chatgpt, I told it to make me a road map of game features.
Then I use that road map to guide my LLM (I use codex 5.3), with the specification — when working on tasks, if you learn anything that may be out of scope, add it to the road map.
There's a bit more to it than that, but so far I've got a playable game, and at some point the requirement of adding an admin dashboard for experiments got added to the road map, and that got implemented pretty well too.
At first I did review a lot of its code, but now I just let it rip and I've been happy with it thus far.
At work I use AI heavily but obviously since I'm responsible for whatever code I push I do actually review and test and understand, but mostly I just need to tweak some small things before it's good enough to ship.
When I'm working on a greenfield project that I intend to build out further (which is what I am currently doing), I find that there's not a lot of work that fits those criteria. I expect that can change drastically when you're working on something that is either more mature, or more narrowly scoped (and thus won't need to be extended too much, meaning poor architectural decisions are not a big issue).