If you only take one idea from this notebook, take this: the frontier coding agents have converged on raw capability but diverged on temperament. They fail differently, wait differently, and cost differently. Running several isn't indecision — it's how you get the best of each, plus a second opinion for free. Here's how the bench is laid out, with the actual patterns I use.

§1The lineup

CL

Claude

the daily driver · Anthropic

The lead. Claude Code runs in the terminal and does the bulk of the work: multi-file refactors, audits, research writing, incident forensics, and anything where judgement-per-token matters more than raw speed. It's the one I trust with the risky, irreversible changes, because it reasons about blast radius and asks before doing something it can't undo.

▸ Best at: judgement, long-horizon multi-step work, "think before you touch it."

CX

Codex

the executor · OpenAI

Fast, literal, tireless on well-specified mechanical work. When the decision is already made — apply this change across these files, wire up this endpoint, grind through this refactor — Codex just executes. It has a "fast" profile for throughput over deliberation, and I keep a second config that points it at a local model for offline or private runs.

▸ Best at: specified execution, throughput, "I've decided — just do it."

DR

Droid

the operator · Factory

Factory's agent leans operational: it holds background processes, scheduled runs, its own skills and specs, and an MCP tool layer. I reach for Droid when the work is less "write this code" and more "run this thing, on a schedule, with these tools wired in." The most infrastructure-shaped of the four.

▸ Best at: background/scheduled tasks, tool-heavy operational workflows, standing automations.

CU

Cursor

the editor · Anysphere

Cursor is hands-on-keyboard editing — the IDE for when I want to see the code and steer inline, plus a CLI agent for quick one-shots. It shines on tight, interactive loops: read a file, change a function, watch the diff, iterate. Project rules live in-repo so every session starts already knowing the house style.

▸ Best at: interactive editing, tight human-in-the-loop iteration, "let me watch it happen."

§2Which one gets the job

The routing isn't rigid, but the instincts are consistent. Route by consequence and temperament, not by task type:

When the work is…Reach forBecause
Ambiguous / high-stakesClaudeweighs blast radius, asks before irreversible moves
Decided / mechanicalCodexfast, literal execution without re-litigating
Scheduled / tool-heavyDroidbuilt for background runs and standing automations
Interactive / visualCursorsee-the-diff, steer-inline editing loop
Private / offlineCodex + local modelno data leaves the machine, zero marginal cost
A second opiniona different oneagents fail differently — divergence catches mistakes

§3The real trick: one brain, four bodies

Four agents that each learn your project separately is four times the onboarding and four subtly different versions of the truth. The highest-leverage thing in my whole setup is fixing that: one canonical context file, mirrored into the format each agent reads at startup.

Each agent looks for its own house-rules file. Claude reads CLAUDE.md; Cursor and Codex read AGENTS.md; Droid reads its own AGENTS.md. So I keep one source of truth and mirror it into each name:

the canonical rules file, written once

# context.md — house rules every agent shares
- Stack: static HTML/CSS/JS, no build step. Deploy = CDN push.
- Never touch production without an explicit go-ahead.
- Bump the ?v= on any changed asset; verify one version site-wide.
- One fact, one owner. Don't restate a value in two files.
- After a task: capture anything durable and non-obvious.

mirror it into every agent's native filename

# from the repo root — one source, four readers
cp context.md CLAUDE.md          # Claude Code
cp context.md AGENTS.md          # Cursor + Codex both read this
cp context.md ~/.factory/AGENTS.md   # Droid, loaded in every dir

# put a global copy where each agent looks outside the repo, too
cp context.md ~/.claude/CLAUDE.md
cp context.md ~/AGENTS.md

Update the source, re-run the mirror, and all four agents are current at once. Every one of them, in any directory, boots with the same rules.

PATTERN — MIRRORED CONTEXT, ONE OWNER

Don't teach four agents four times. Keep one canonical rules file and mirror it into each agent's config format. The dedupe rule is absolute: one fact, one owner. A value that lives in four prompts is a value that's wrong in at least one — and you won't know which.

§4Driving them: the shapes I actually use

All four take a one-shot prompt on the command line or an interactive session. The muscle memory:

one-shot, when the task is fully specified

# hand a decided task straight to the executor
codex "apply the rename from foo() to renderFoo() across src/, keep tests green"

# hand an ambiguous, high-stakes task to the one that pauses to think
claude "the deploy is serving a stale asset to some users — find why, propose a fix, don't ship yet"

a good first prompt for a fresh session on an unfamiliar repo

Read the house-rules file and the project README, then summarise the
current state and the risky areas BEFORE changing any files.

The second one matters more than it looks: a fresh agent that orients before acting makes far fewer of the confident-but-wrong moves that make people distrust AI in the first place.

§5What running four teaches you

Steal this

  • Run more than one frontier agent. They fail differently, and divergence is free review.
  • Route by consequence and temperament: judgement→Claude, execution→Codex, ops→Droid, interactive→Cursor.
  • Keep one canonical context file; mirror it into every agent's filename. One fact, one owner.
  • Keep a local-model config for private/offline runs.
  • Open a fresh session with "orient before you touch anything."