Harness engineering
Also called Environment engineering · Agent ops
Improving the setup around the model (tools, checks, instructions, permissions) so the same model does better work.
Harness engineering is the practice of improving everything around the model instead of the prompt: the tools it can call, the permission mode, the hooks that run after each edit, the automated checks, the instructions in AGENTS.md, the sandbox it runs in. The harness is what turns a model into an agent; engineering it is how you get better work out of a model you can't change.
Most complaints that 'the model got dumber' are harness problems in disguise. The agent can't find the test command, so it stops running tests. It doesn't know the repo conventions, so it invents its own. Its tool list is thirty MCP servers wide, so it picks the wrong one. Each is fixable in the setup, and none is fixable by a longer prompt in the next session.
The loop is simple. Watch where the agent stumbles, ask which missing tool, check or instruction would have prevented it, add that, re-run. Keep a log of stumbles for a week and the priorities write themselves. Done consistently, this is what people mean by good AX: an environment where an agent can look around, verify its own work, and be told the rules once.
- Claude CodeHooks, permission rules, custom slash commands, skills and CLAUDE.md are the main harness levers; the sandbox is another.
- AntigravityKnowledge items, review policies and workspace setup are the same levers at fleet scale.
- CursorRules files and MCP configuration are where most of the harness lives.
“Every session it forgets to run the linter before committing.”
“Stop reminding it. Put the lint command in a post-edit hook and a line in AGENTS.md. That's harness engineering, not prompting.”
Course 01 puts every one of these terms to work: you install Claude Code, run the loop, and ship a real project — permission modes, compaction, hooks and all.
Start Course 01 →