The popular story about coding agents is mostly about intelligence: stronger models, larger context windows, better planning, and more capable tools. Those improvements matter. But they do not solve the most ordinary problem in software development: every repository is operated differently.
The operational gap
An agent can understand a TypeScript function and still fail to launch the application. It can write a migration and still run it against the wrong database. It can add a test and still leave the repository in a dirty state that another agent cannot safely use.
This is not primarily a reasoning failure. It is an infrastructure failure. The project contains operational knowledge, but that knowledge is often fragmented across documentation, shell history, CI configuration, and the memory of experienced teammates.
Reliable agentic development requires a stable operating interface around the model.
A project-owned contract
A harness makes the unwritten workflow explicit. In HAR, that contract lives in a .har/ directory inside the repository. It describes how to create an isolated slot, launch the stack, verify changes, collect artifacts, reset state, and tear everything down.
$ har env launch 1
✓ worktree created
✓ environment allocated
✓ services healthy
$ har env verify 1 --full
✓ lint 5.3s
✓ unit tests 25.7s
✓ browser e2e 41.2sKeeping the contract in the project matters. The team can review it, adapt it to the stack, and use the same interface from a terminal, an MCP-capable agent, or a local dashboard.
Evidence as an output
An autonomous system should not finish with “the task is done.” It should finish with evidence: which checks ran, which artifacts were produced, which tree was validated, and what the reviewer can inspect next.
This changes the handoff from a confidence claim into a reviewable record.
A narrow boundary
HAR does not choose the coding model, replace your test runner, or become your CI platform. Its job is smaller: expose a predictable operating contract that all of those systems can use.
That narrow boundary is what makes the harness portable. Models can change. Hosted platforms can change. The repository still knows how it should be operated.
