Claude Code's official best practices come down to three habits: tell Claude what it can't see in your files, give it a check it can run that comes back pass or fail, and turn any rule that can't bend into a hook or a deny rule rather than an instruction. Anthropic's own guide opens by saying your first plain prompt in a fresh session usually does the right thing already, so these habits are for when it doesn't.
I've read Anthropic's best practices page with a business owner's eye, not a developer's. Below are the parts that translate to anyone managing work in Claude Code, plus the surprising bit: a list of popular advice you can now stop following.
Start with the defaults
New terminal and VS Code sessions start in auto mode, where a classifier reviews anything risky before it runs. Claude hands side work to subagents on its own, and long conversations are compacted automatically before the context window fills. Most of the time you don't need to change any of that.
The guide says sessions usually go wrong for one of four reasons. Claude built something different from what you had in mind. It said it was done and it wasn't quite. It did something that must never happen, or skipped a step that must always happen. Or it got there but took more time, tokens or permission prompts than the task was worth. The three habits map straight onto the first three.
Habit one: tell Claude what it can't see
Claude reads your files fast and well. What it can't read is anything that was never written down: a decision made in a meeting, a process that lives in one person's head, a file that must never be opened, a budget you need to stay under. The guide offers a two-question test before you write anything for Claude. Could it find this by reading the files? Would it go and look? If both answers are yes, leave it out.
In practice that means a specific prompt that names the file, describes the problem and says what finished looks like. When you don't know what you want yet, ask Claude to interview you until it could write the brief, then start a fresh session to build from it. Keep CLAUDE.md short, put repeat procedures in skills, and connect the tools Claude needs to see your other systems.
Habit two: give it a check to run
This is the habit I'd underline twice. Claude stops when the work looks done. If it has nothing to run that says whether the work is done, "looks done" is all it has, and you become the test suite, catching every mistake by hand.
The check can be almost anything Claude can read: a test file, a build's exit code, a script that compares output against an example, or a browser screenshot next to the mockup. The guide lays out how strict you can make it:
- In the prompt. Ask Claude to run the check and keep going until it passes. No setup needed.
- As a goal. The /goal command sets a condition a separate model checks after every turn, mostly useful for long background runs.
- As a Stop hook. Claude Code itself runs your check whenever Claude tries to finish, and sends it back to work if the check fails.
- By a fresh reviewer. /code-review checks the changes in a subagent that never saw your conversation, so it isn't swayed by the reasoning that produced the work.
Whichever you pick, ask for evidence: the command Claude ran and its output, or the screenshot. "All tests pass" on its own tells you very little.
Habit three: enforce the rules that can't bend
Here's the line every manager should know. An instruction in a prompt or CLAUDE.md is read by the model, which usually follows it. A hook, a deny rule or a managed setting is executed by Claude Code every time. The guide's examples are rules like never read the .env file, always run the formatter after editing, and don't touch the migrations folder. Claude follows those almost every time. For the few where almost isn't good enough, move them into configuration.
Deny rules hold in every permission mode, including auto mode. Auto mode is a classifier making judgement calls, and the guide warns it can be wrong, so your never rules belong in deny rules or hooks. Keep the enforced set small, though. If you ever find yourself at forty of them, the page says most are probably preferences Claude could have weighed on its own.
The advice you can stop following
This was the most useful section for me, because so much Claude Code advice online is out of date. Anthropic says each item was good advice once, and the models have since caught up:
Want AI doing the heavy lifting in your marketing?
I build the systems that handle the boring 80 percent, so you get your week back. Done properly, with the human kept in.
| Old advice | Why you can drop it |
|---|---|
| Manage the context window aggressively | Most current models have a 1M-token window and compact on their own, so running out is rare |
| Write IMPORTANT or ALL CAPS on rules Claude misses | Current models follow plain wording, and heavy emphasis makes Claude over-apply the rule |
| Use subagents to protect your context | They're for parallel work, noisy output and independent review, and each one costs extra tokens |
| Say think hard or be thorough | Effort is the real control; those phrases are ordinary prompt text |
| Describe your file layout in CLAUDE.md | Claude reads the project itself |
On the context window specifically: running out is rare now, but you still pay for context you don't need, because every request sends the whole conversation. /context shows what's filling the window, and the guide's advice is to use /clear between unrelated tasks. It costs nothing, and the next task stops paying for the last one's history. If you'd rather keep going, /compact with a focus, such as which changes to keep, summarises the conversation instead.
What subagents cost you
Subagents run independent jobs in parallel and keep long output out of your main conversation. The catch is tokens: every subagent sends its own requests, and they count against the same usage as your main session. A fresh subagent can even be slower, because it has to gather context your conversation already had. And handing the same task to a subagent doesn't make the answer smarter. I've covered when subagents are worth it separately, and if usage is the worry, here's what Claude Code costs on each plan. The /usage command shows where your usage went.
What I'd do on day one
I'd pick one real task, write a specific prompt for it, and add one check Claude can run before it says it's done. Then I'd move my one or two unbendable rules into a deny rule or hook. I'd skip custom subagents, effort tweaking and long CLAUDE.md files until the basics have paid off. For prompts that already follow these habits, try my Claude Code prompt ideas.
If you'd like help turning these habits into a working routine for your team, that's the kind of AI enablement I help with. I run AI training and workshops for teams, and help businesses with AI enablement and workflow automation, so the busywork runs itself and people get time back. Most of that work is with SaaS marketing teams and small businesses. Here's how we can work together.
Frequently asked questions
What are the Claude Code best practices?
Anthropic's guide comes down to three habits: tell Claude what it can't see from your files, give it a pass or fail check it can run, and enforce rules that can't bend with hooks, deny rules or the sandbox.
Do I still need to manage the Claude Code context window?
Rarely. Most current models have a 1M-token window and compact automatically. Using /clear between unrelated tasks is still worth it, and /context shows what's filling the window.
Does writing IMPORTANT in CLAUDE.md help?
Not with current models, according to Anthropic. Heavy emphasis mostly makes Claude over-apply a rule. If a rule can't bend, make it a hook or a deny rule.
Do subagents give better answers?
No. Anthropic says handing the same task to a subagent doesn't make the answer better, and each subagent costs extra tokens. A fresh reviewer helps because it hasn't seen your reasoning.
Is a CLAUDE.md instruction enough to stop Claude doing something?
Not always. Claude reads CLAUDE.md and usually follows it. For something that must never happen, use a deny rule or a hook, which Claude Code applies every time.


