When I write my prompts, I literally write an essay. I lay constraints, design choices, examples, etc. If I already have a ticket that lays out the introduction, design considerations, acceptance criteria and other important information, then I'll include that as well. I then take the prompt I've written and I request for the model to improve the prompt. I'll also try to include the most important bits at the end since right now models seem to focus more on things referenced at the end of a prompt rather than at the beginning.
Once I do get output, I then review each piece of generated code as if I'm doing an in-depth code review.
Some people (like me) still think that’s a fantastic tool, some people either don’t know how to do this or think the fact you have to do this means the tools are bunk. Shrug.