Coding Harness, Less Is More, We Still Re-invent the Wheel inefficiently
What Is a Coding Harness? Agent = Model + Harness. The model is the reasoning engine. The harness is everything else — the guides that steer it before it acts, the sensors that catch it after it does. (Harness Engineering). In practice a coding harness has several moving parts: Context injection — what the agent knows before it writes a line. CLAUDE.md files, system prompts, project conventions. Codebase indexing — a queryable map of the repo. Symbols, call graphs, semantic embeddings. Tool layer — what the agent can do. Read files, run tests, call linters, search the index. Feedback loop — sensors that observe output quality. Type errors, failing tests, lint violations, architecture drift. Memory / sync — persistence across sessions. Hooks that re-index on session start, sync on file write. graph TD A[Developer Intent] --> B[Context InjectionCLAUDE.md · system prompt · conventions] B --> C[Model] C --> D[Tool Layerread · write · run tests · search index] D --> E[Codebase Indexsymbols · embeddings · call graph] E -->|semantic search results| C D --> F[Feedback Looptype errors · lint · test failures] F -->|sensor output| C C --> G[Output] G --> H[Memory / SyncPostToolUse hook · incremental re-index] H --> E The vocabulary here is not new. Russell & Norvig’s AI: A Modern Approach (1995) defined an agent as anything that perceives its environment through sensors and acts upon it through actuators. Chip Huyen applies this directly to modern LLM agents in Agents (2025): the model is the brain, tools are the actuators, observations are the sensors. Böckeler maps the same structure onto coding harnesses — guides are actuators (steer behavior forward), sensors are feedback mechanisms (observe what came out). ...