Prompt engineering is the work of shaping what you send a model so that what you get back is reliable enough to build on: giving it the right context, the right constraints, examples of the format you want, and a clear definition of the task. Done well it is unglamorous and systematic, closer to writing a good specification than to finding magic words.
In a real system the prompt is not a one-off — it is code, versioned and tested like any other, and evaluated against a set of cases so a change that helps one input does not silently break ten others. When people say a model is unreliable, the fix is more often better prompting and evaluation than a better model.