Intent Over Instructions — The Senior Engineer Shift
The most common Claude Code mistake is treating it like a junior developer who needs step-by-step instructions. The shift to intent-based prompting — describing what success looks like, not how to achieve it — unlocks Claude's full capability.
Quick Reference
- →Intent = what success looks like. Instructions = how to achieve it.
- →Instructions assume Claude needs micromanagement — it doesn't
- →Over-specification constrains Claude's better judgment about implementation
- →Good prompt: describe the problem + acceptance criteria + constraints
- →When to add implementation detail: new patterns, security requirements, already-identified changes
- →Combine intent with constraints: 'fix X — don't change Y, ensure Z'
The Fundamental Shift
Most developers start Claude Code the same way they would start a task themselves: by writing down every step. 'Open this file. Go to line 45. Change this condition.' This feels safe and controlled. It is also the wrong approach for a system that can read your entire codebase, understands your patterns, and can reason about implications you haven't considered.
Instructions assume the implementer needs to be told what to do at every step. Intent describes what good looks like and lets the implementer figure out the path. Senior engineers work from intent when delegating to other senior engineers. That is the frame shift.
| Instructions-based | Intent-based |
|---|---|
| Open src/payments/stripe.ts, go to line 45, change the condition from >= to > | The checkout flow breaks for expired cards. Fix it and write a test that verifies the fix. |
| Create a new file at src/utils/date.ts, add a function called formatDate, it should take a Date object and return a string in YYYY-MM-DD format | We need date formatting throughout the app. Create a formatDate utility following the pattern in src/utils/string.ts, then replace the inline date formatting in src/components/Invoice.tsx. |