Skip to main content
// ple

// blog / research

Stop writing "think step by step"

The most famous prompt phrase of the ChatGPT era is now, per the labs' own docs, unnecessary on reasoning models — and sometimes harmful.

What changed

Chain-of-thought prompting earned its reputation honestly: on classic models, asking for intermediate steps measurably improved math, logic, and multi-step tasks. Then reasoning models internalized the technique. OpenAI's reasoning best practicesnow state that prompting these models to think step by step is unnecessary — they already reason internally — and can actually hurt performance. Google's Gemini 3 prompting guidance carries the same warning — older-model techniques like chain-of-thought invite over-analysis, and Anthropic's extended-thinking guidance prefers general instructions like "think thoroughly" over hand-written step recipes.

The new rules, per model class

cheat sheet
CLASSIC models (no built-in reasoning)
  CoT still works. "Think step by step", <thinking> tags, worked examples: keep them.

REASONING models (o-series, GPT-5, Gemini thinking, Claude extended thinking)
  1. Keep prompts SHORT and clear — these models reward brevity.
  2. Do NOT script the reasoning. Set the dial instead:
     reasoning_effort (OpenAI) · thinking_level (Gemini) · effort/adaptive (Claude)
  3. Start WITHOUT few-shot examples; add them only if output format drifts.
  4. Curb overthinking in the prompt: "choose an approach and commit to it."
  5. Keep the self-check: "verify your answer against <criteria> before finishing."

OpenAI's framing of the split is useful: treat a reasoning model like a senior collaborator you hand a goal, and a classic model like a junior you hand explicit logic. The same prompt cannot serve both masters well.

Writing prompts that survive the split

If your prompts live in old chats, this shift silently broke some of them. The durable move is structural: build prompts on the rules every lab agrees on— clear positive instructions, labeled sections, a role, an output format — and keep the reasoning-related lines thin so they're easy to strip per model. In our public library, prompts like root-cause-analysis put the method in the structure(diagnose phase, then fix phase, then a self-check) rather than in a "think step by step" incantation — so the same prompt works whether the model reasons internally or not.

And when you do strip or tune a reasoning line for a new model, do it as a new version with a changelog. Six months from now, "why does v5 drop the thinking preamble?" has an answer instead of a shrug — and if the change was wrong, rollback is one click, not archaeology.