You write requirements and your expectations and make the model match your expectations.
Until you have clear expectations of what you want from it, prompting LLM is pretty useless. It cannot do highly specific task because those are limited in the original training corpus too. However, for more generic task, it has seen most of the stuff out there, so it should be good enough. Having clarity on your problem is the key.
You have to make sure to couple chain of thought with branching, analysis and evaluation, then you can get pretty good results.