I use a combination of prompting and hand crafting my code. Sometimes I'll sketch out the design in code, without details, other times I'll delete and change what the LLM has done. I'm still reviewing everything it does, because:
1. Other humans also review my code and I know they won't approve until they're ok with it anyway.
2. I don't trust that the verifications we have at the moment are good enough to catch the errors LLMs still make.
So trust me, I'm not a "vibe coder"
But I can see the writing on the wall. We're not really maximising the potential of these things by doing it this way. In my particular industry, we're in an arms race for clients who can easily move to a competitor. So we need to be continually improving. How I predict this unfolding is that we'll need to get much better at verification of correctness (functional and non-functional) and once that is satisfied, humans will stop manually writing and reviewing code, otherwise you'll just lose to your competitors. At least in my industry, maybe not all.