Most people are disappointed by Claude because they're using it wrong. Not wrong in a complicated way — wrong in a very specific, very fixable way.
They're prompting it like it's Google.
The Google Reflex
We've spent years training ourselves to communicate with search engines. Short, keyword-dense queries. No context. No explanation. Just the thing you want.
That works for Google because Google is pattern-matching your words against billions of indexed pages. The query react navbar re-render fix pulls up Stack Overflow threads where someone already solved your exact problem.
Claude doesn't work like that. Claude reasons forward from what you give it. It's not looking up your answer — it's constructing one. And if what you give it is vague, what it constructs will be vague too.
The Difference in Practice
Here's the same problem, asked two ways:
# Query-style (Google brain)
"why is my component slow"
# Brief-style (collaborator brain)
"This React component re-renders on every keystroke. I traced it to
the `options` object being defined inline — new reference each render.
I want to fix the re-render without changing the component's API.
Only touch the options definition, don't refactor anything else."
The first gives Claude almost nothing to work with. You'll get a generic list of reasons React components can be slow. Useful to nobody.
The second gives Claude a diagnosis, a constraint, and a scope. You'll get a precise fix. Every time.
Three Patterns That Actually Work
After using Claude daily for a few months, these three habits changed my output quality more than anything else:
1. Lead with context, not just the problem. Instead of "fix my auth bug," try "I'm using Next.js App Router with server actions. My auth token expires but the UI doesn't update until the next hard refresh." Claude now knows your stack, your symptom, and your environment before it generates a single character.
2. Scope the ask. Claude will do exactly what you ask — including things you didn't ask for. Tell it what's off-limits. "Only change this function. Don't touch the types. Don't refactor the caller." This sounds overly specific until you've watched it helpfully rewrite half a file when you just wanted a one-liner.
3. Tell it what you've already tried. "I tried memoizing the component but the re-render still happens" eliminates an entire class of suggestions. You get better answers faster, and Claude doesn't waste your time retreading ground you've already covered.
The Mental Model That Sticks
Think of Claude as a smart colleague who just joined your project today. Brilliant, fast, no ego. But they don't know your codebase, your constraints, or your history.
You wouldn't walk up to that colleague and say "make it faster." You'd give them a ticket. A real one — with context, scope, and acceptance criteria.
Do that with Claude, and it stops being a magic search box that sometimes disappoints you. It becomes something genuinely useful.