Driving the harness
The transferable half. Everything here is true of every harness — the switcher swaps the part that isn't.
- 01
Foundations
Where the model ends and the harness begins. Every other chapter assumes this one.
- 01What a harness is, and why most "model quality" is harness qualityLESSON
- 02The agent loop: read, plan, act, observe — and where each step failsLESSON
- 03AGENTS.md, CLAUDE.md and the rest: what belongs in a memory fileLESSON
- 04Three gates, not one: permissions, approvals and sandboxingLESSON
- 05Reading a session like a profiler: where the context wentLESSON
- 06Verify it actually loaded: config that fails silentlyRECIPE
- 07Your first repo-shaped setup, start to finishBUILD
- 02
Prompting an agent, not a chatbot
The habits that transfer from chat are the ones that hurt most here.
- 01Why agent prompting isn't chat promptingLESSON
- 02Specifying done: acceptance criteria the agent can check itself againstLESSON
- 03Give it the shape, not the stepsLESSON
- 04When to paste code and when to point at a pathLESSON
- 05Repair prompts: getting out of a bad turn without starting overRECIPE
- 06Asking for a plan you can actually rejectRECIPE
- 03
Commands and skills
One mechanism, two names — and an open standard several vendors now share.
- 01Skills, commands and the merge: one mechanism, two namesLESSON
- 02Anatomy of a skill: frontmatter, arguments, and who invokes itLESSON
- 03Setting /goalsRECIPE
- 04Writing a skill that triggers when it should — and not when it shouldn'tRECIPE
- 05Writing a /review your team actually runsRECIPE
- 06Skills vs MCP: procedural knowledge or live tool accessLESSON
- 07Packaging so a new machine is one install awayBUILD
- 08Skill, rule, or memory file: picking the mechanismREFERENCE
- 04
Tools and MCP
Tools, not prompts. Wiring a model into the systems it has to touch.
- 01MCP without the hype: what the protocol actually gives youLESSON
- 02Your first server: one tool, one schemaBUILD
- 03Tool descriptions are prompts — write them like itLESSON
- 04Scoping and auth: what a server should refuse to doLESSON
- 05Local or remote: where the trust boundary goesLESSON
- 06When not to reach for an MCPLESSON
- 07Too many tools: what a crowded tool list costs youLESSON
- 08Debugging a server the model keeps calling wrongRECIPE
- 09MCP in 2026: stateless, standardised, and what got deprecatedREFERENCE
- 05
Subagents and fan-out
Parallelism you can still review.
- 01Subagents are a config object now, not a trickLESSON
- 02Subagent, background session, or agent team: three things people conflateREFERENCE
- 03Writing a subagent brief that returns data, not proseRECIPE
- 04Adversarial verification: a second agent whose job is to refute the firstRECIPE
- 05Judge panels: when three agents on one answer is worth itRECIPE
- 06Pipeline, barrier, loop-until-dry: orchestration shapesLESSON
- 07Worktree isolation for agents that write the same filesBUILD
- 06
Hooks and guardrails
Determinism around a non-deterministic core. At this speed, the gate is the design.
- 01The moments in a session worth interceptingLESSON
- 02Blocking the commit the agent shouldn't makeRECIPE
- 03Format, lint and test as a hook, not as a plea in the promptRECIPE
- 04Failing loudly: surfacing a refusal the model will act onLESSON
- 05Permission fatigue and the middle pathRECIPE
- 06Secrets and the files an agent must never readLESSON
- 07A guardrail set for a team of sixBUILD
- 07
Cost and control
The loudest pain in the field, and the one the two chapters above create.
- 08
Headless and CI
The same harness with nobody at the keyboard.
- 09
Doing this with other people
Everything above, times a team.
- 01Standardising a setup without a mandateLESSON
- 02Monorepos: scoping instructions to a subtreeLESSON
- 03The repo that explains itself to an agentBUILD
- 04Which agent for which job, and the handoff you still do by handLESSON
- 05Reviewing each other's agent configurationLESSON
- 06Measuring whether any of this is workingLESSON
- 07Anti-patterns we've watched teams adoptREFERENCE