I maintain a shared prompt library for my team and the biggest inconsistency was reasoning quality. People would tack "think step by step" onto the end and get mushy, unstructured chains that were hard to audit and different every time.
What worked better on Gemini was moving the reasoning structure into the system prompt as a named, fixed scaffold with labeled slots, so every call produces the same auditable sections and the final answer is cleanly separated from the working. It made outputs comparable across the team and much easier to spot where a chain went wrong.
Below is the scaffold I settled on. I'm looking for ways to keep the reasoning honest, i.e. stop it from writing the conclusion first and back-filling the 'reasoning' to match.
SYSTEM SCAFFOLD - reasoning contract for every task in this session.
Always answer in these exact labeled sections, in order:
<RESTATE> One sentence: what is actually being asked, including the success criterion. </RESTATE>
<ASSUMPTIONS> Bullet the assumptions you're forced to make and mark any that, if wrong, would change the answer. </ASSUMPTIONS>
<OPTIONS> Enumerate at least 2 candidate approaches with a one-line tradeoff each. If only one is viable, say why the others are ruled out. </OPTIONS>
<WORK> Do the actual reasoning here, smallest defensible steps. This is the only place you may 'think'. </WORK>
<CHECK> Independently verify the result: recompute a key part a different way, or test against an example. State what would falsify your answer. </CHECK>
<ANSWER> The final answer only. No new reasoning here. </ANSWER>
Rules: WORK must precede ANSWER and ANSWER may not introduce facts absent from WORK. If CHECK contradicts WORK, revise WORK, don't fudge CHECK. Keep each section tight; verbosity is not reasoning.