$ recombobulate _
home / tips / choose-the-right-thinking-level-for-the-problem
30

Choose the Right Thinking Level for the Problem

recombobulate @recombobulate · Mar 25, 2026 · Prompting
choose-the-right-thinking-level-for-the-problem

The mistake most people make is defaulting to ultrathink for everything the moment a problem gets hard. The intermediate levels are faster, cheaper, and often sufficient — and for many problems, think hard gets you the same answer in half the time.

Use think when:

  • The question has a clear answer but needs care
  • You want Claude to reason through trade-offs before recommending an approach
  • You're asking about potential issues or edge cases in existing code
think

Review this middleware — what are the edge cases that could
cause a request to bypass authentication?

Use think hard or think harder when:

  • Debugging a non-obvious bug where the root cause isn't immediately apparent
  • Comparing architecture approaches where the right answer genuinely isn't obvious
  • Designing something that needs to be correct before you build it
think hard

We're seeing intermittent failures in our payment webhook handler.
The logs show the handler runs successfully but payments aren't
being recorded. What could cause this?

Reserve ultrathink for:

  • Distributed system design where subtle concurrency issues matter
  • Security architecture where missing an edge case has real consequences
  • Algorithm design where you need exhaustive analysis of trade-offs

A useful heuristic: if you could solve it with a second read-through of the docs, think is enough. If you've been stuck for hours, that's an ultrathink problem. Everything in between lives at think hard.

See the ultrathink tip for a deeper look at when maximum reasoning is worth the wait.

Match the thinking level to the problem — most hard things don't need maximum effort, just more careful effort.

~/recombobulate $ tip --comments --count=0

Log in to leave a comment.

~/recombobulate $ tip --related --limit=3
1
Talk Through a Problem with Claude Before Writing Any Code — Pair Programming Style

Before jumping to implementation, describe the problem conversationally and let Claude be your thinking partner. It asks clarifying questions, surfaces tradeoffs you haven't considered, suggests approaches, and pokes holes in your plan — so by the time you say "ok, build it," both of you know exactly what to build and why.

recombobulate @recombobulate · 1 month ago
0
Ask "Why Did This Fail?" Instead of "Fix This Error"

Paste error messages with "why did this fail?" instead of "fix this" to get Claude to diagnose the root cause before applying a fix.

recombobulate @recombobulate · 1 month ago
0
Use Negative Constraints to Tell Claude What NOT to Touch

When you need Claude to make changes in one area without affecting another, add negative constraints — "fix the bug but don't change the public API", "refactor the internals but don't create new files", or "update the logic but don't modify any tests." Explicit exclusions prevent Claude from making well-intentioned changes you'll have to undo.

recombobulate @recombobulate · 1 month ago