A procurement office's bid-summary prompt returns inconsistent formatting: some responses are markdown bullet lists and some are JSON. Reading the prompt end to end, an architect finds an early section that says 'summarize each bid as a short bulleted list' and a later section that says 'return a JSON object with one entry per bid'. What is the correct diagnosis and fix?
Select an answer to reveal the explanation.
Short Explanation
When a prompt says two different things, the output says two different things, with the model picking a winner per sample. The fix is an edit: delete the stale bullet-list line.
Full Explanation
Flaky formatting with two clean modes is a symptom of the prompt carrying two contracts, not of the sampler running loose. The architect has already found the cause by reading end to end: an early section asking for a short bulleted list and a later one asking for a JSON object, both present in context on every single request.
With two mutually exclusive format directives in play, each request resolves the conflict on its own, which produces exactly the bimodal output the procurement office observes. Removing the stale bullet-list instruction leaves one unambiguous output format, and the repair is editorial rather than parametric, so the prompt now states a single contract that every sample can satisfy the same way.
Moving the JSON requirement to the end leaves the contradiction in place and merely biases which directive tends to win, so the flakiness can return as the prompt grows; trimming unrelated background shortens the prompt while both conflicting directives survive intact; and setting temperature to 0 reduces sampling variation without resolving the conflict, and can lock the office onto the wrong format entirely.
Exam caveat: prompts accumulate contradictions as several people edit them over months, and these defects are invisible to per-sample testing, so only an end-to-end read or a diff review catches them. Operational check: after deleting the stale line, run fifty bid summaries and assert every response parses as JSON, since a single bulleted response means another directive is still hiding.