You're directing an agent, not chatting with one
You've built an app, deployed it, and given it a backend. Now level up how you use the tool. Most people use Claude Code like a smarter autocomplete: type a request, watch it edit, approve, repeat. The people getting outsized results have stopped chatting and started directing โ treating Claude Code as a controllable agent with gears, shifting deliberately between thinking, executing, and parallelizing.
The reframe: every task is part decisions (what to build, which approach, the risks) and part execution (editing files, running commands). Beginners spend equal attention on both; experts spend almost all of it on decisions and automate execution away.
The capstone. This part revisits everything from Parts 1โ6 through one lens: where your attention is worth spending. Apply it and the tool stops feeling like a chatbot and starts feeling like a team you run.
The gears: permission modes
Claude Code runs in permission modes you cycle with Shift+Tab โ the single most important keystroke. The power loop is moving through three gears in order, dropping in two keywords (ultrathink, ultracode) where they earn their keep.
| Mode | Behavior | Use it when |
|---|---|---|
| Normal | Asks before each edit and command | Exploring, or touching risky code |
| Auto-accept | Applies edits with no prompts | The plan is solid and the blast radius is small |
| Plan mode | Read-only โ proposes, cannot edit | The start of anything non-trivial |
Start in Plan mode, always
Shift+Tab until you see plan mode. Claude can read your whole codebase but is physically incapable of editing. That's the most valuable mode in the tool:
- You catch wrong assumptions before they cost you โ a paragraph to fix, not fifteen wrong edits to unwind.
- The plan becomes a contract โ approve it and execution follows it.
- It's the cheapest place to iterate โ you're refining words, not diffs.
Don't accept the first plan. Argue with it:
> What are two other ways to structure this? Trade-offs?
> What's the riskiest step, and what happens if it's wrong?
> Which existing code does this duplicate โ can we reuse instead?
Step 2
Spend reasoning where it matters: ultrathink
Trigger words escalate the reasoning budget: think โ think hard โ think harder โ ultrathink. Spend it on the genuinely hard calls โ concurrency, schema migrations, "one service or two" โ not on renaming a variable. Highest leverage during planning:
> ultrathink about the race between the retry and the idempotency
check in our order handler, then plan a fix without a distributed lock.
A dial, not a default. Turn it up for the 10% of decisions that determine whether the other 90% goes well.
Execute on autopilot: auto mode
Plan approved, reasoning done โ Shift+Tab into auto-accept and let Claude run. Approving twenty consecutive edits adds only latency and rubber-stamping.
Trust calibration is the real skill: tight plan + small blast radius = auto mode. Vague plan, or auth/billing/migrations = stay in normal and review every step.
Commit before a big auto run. A real commit is free rollback insurance.
Get work off your screen: background & remote
- Background tasks โ kick off something slow (test suite, build, backfill) and keep working; Claude pings you when done.
- Remote sessions โ launch agents in the cloud (including Claude Code on the web) that run independently of your laptop.
The pattern: plan locally โ dispatch execution remotely or in the background โ review the diff when it's done.
Go wide: ultracode & multi-agent workflows
For tasks too big for one context window โ a repo-wide migration, an exhaustive audit โ say ultracode to fan out a fleet of subagents that work in parallel, then synthesize one answer.
- Fan-out / map โ one agent per file or service, all at once.
- Pipeline โ each item flows through find โ verify โ fix independently.
- Adversarial verify โ skeptic agents try to refute each finding.
- Loop-until-dry โ keep hunting until N rounds turn up nothing new.
Opt-in for a reason: ultracode can spawn dozens of agents and burn a lot of tokens. Use it when breadth and confidence beat speed and cost โ not to rename a function.
Run an ensemble: pair with Codex
Claude Code can hand work to Codex through a shared runtime for a second implementation, diagnosis, or cross-model review โ set up with codex:setup, invoke with codex:rescue or just "use Codex." Claude orchestrates and reviews; Codex is a second pair of hands whose work gets checked.
Close the loop: never report "done" on trust
| Situation | Command |
|---|---|
| Want to see a change live | /run |
| Fixed a bug; about to push | /verify |
| About to open a PR | /code-review |
| Reviewing a teammate's PR | /review |
| Touching auth, crypto, secrets | /security-review |
"Tests green" and "the thing works" are different claims. Run it, verify it, review it โ then ship.
Force multipliers & the anatomy of a CLAUDE.md
The CLAUDE.md you saw in every part of this series is the highest-ROI file in a repo โ read every session. Run /init to scaffold one; here's the shape:
# CLAUDE.md
## What this is
One line: what the project is, its stack, who it's for.
## Commands
- Install / Dev / Build / Test / Lint โ the exact commands, copy-pasteable.
## Conventions
- "We use X, not Y." Where things live. How data flows.
## Do not touch
- generated/**, secrets, protected paths.
## Verifying a change
- How to prove it works before saying done.
Beyond CLAUDE.md: custom slash commands & skills (encode a workflow once), subagents (offload a search to its own context), MCP (connect GitHub, Jira, your cloud), and hooks (auto-format, lint, block protected paths โ run deterministically).
Habits & common mistakes
- Give it a way to check its own work โ "run the tests after each change and fix failures."
- Interrupt early with
Esc;/clearbetween unrelated tasks. - Be specific and point at files with
@; paste errors and screenshots. - Commit often, keep diffs small โ a 600-line agent diff is a code smell.
- Don't skip plan mode on "small" tasks, rubber-stamp plans,
ultrathinkeverything, auto-mode risky code, or ship on "tests pass" alone.
That's the series. Build (Part 1) โ deploy (Part 3) โ add a backend (Parts 4โ6) โ direct the tool that does it all (here). The throughline: spend your attention on decisions, automate execution, and parallelize anything that doesn't need you watching.