Build1 distinct publisher3 min readUpdated
A dev.to write-up splits agent work into prompts, context and harness. The interesting part is the harness: tool execution, permissions, validation and recovery, all of it code you own.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
A developer write-up on dev.to argues that reliable coding agents are built in three layers rather than one: prompt engineering covers how instructions are expressed, context engineering covers what information the model has at a given moment, and harness engineering covers the system that lets an agent act, verify and recover [1]. The consequence for anyone shipping this stuff is that most of the reliability work lives in code you own and can test, not in a text box you keep rewording.
The example the piece uses is ordinary enough to be useful: add rate limiting to an existing Node.js API without breaking authentication [3]. To do that, the write-up notes, an agent has to understand the repository architecture, inspect the authentication middleware, read the engineering conventions, modify files, run the tests, execute ESLint and TypeScript, inspect the failures, correct its own implementation, and in some cases stop and ask a human before touching sensitive infrastructure [4]. Almost none of that is a wording problem. It is tool calls, exit codes and permission checks. The early habit of improving instructions, adding a couple of examples and hoping for better behaviour holds up for simple tasks and stops there [2].
The middle layer has a known trap. Anthropic describes context engineering as curating and maintaining the optimal information supplied to a model during inference, spanning conversation history, retrieved documents, tools, MCP resources, previous tool results, memory, application state and external data [5]. Anthropic also warns that performance can degrade as more information competes for attention, which makes context a finite resource to be managed [6]. So the naive path of loading the whole repository, sending 200,000 tokens and asking the model to sort it out is not a shortcut [15]; the actual work is deciding what earns a place in the window [7]. Retrieval, memory, repository search, context compression, tool-result filtering and just-in-time retrieval all exist to serve that decision [8].
The harness is where the argument earns its keep. The mental model offered is Agent = Model + Harness [9], and LangChain defines the harness broadly as the code, configuration, tools, infrastructure, state and orchestration surrounding the model [10]. The architecture sketch names seven responsibilities: context management, tool execution, memory and state, permissions, validation, retry and recovery, and observability [11]. Six of those seven concern acting and controlling rather than what the model reads [16].
The test loop shows why that matters. A model can decide it should run the tests, but something outside the model must expose the testing tool, execute the command, capture stdout and stderr, enforce timeouts, return the relevant output, prevent unsafe commands, and hand control back so the agent can choose what to do next [12]. Each of those is a place where an agent quietly stops being trustworthy: swallowed stderr, no timeout, an approval gate that defaults to yes.
The layers are not rivals. Martin Fowler's discussion of coding-agent harnesses treats context engineering as one mechanism through which guides and feedback reach the agent [13], and the dev.to piece frames the three as stacked questions rather than competing approaches [14]. Worth noting what the material does not contain: definitions, examples and diagrams, but no measured error rates or before-and-after comparisons [17]. Treat it as a claim about where to spend engineering time, not as evidence of a specific reliability gain.
Watch whether harness configuration gets versioned and reviewed like application code, whether permission gates default to allow, whether test and lint failures are returned to the model in full or truncated to a useless tail, and whether context is budgeted and monitored the way any other finite resource is [6][11][12].
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
A dev.to write-up distinguishes three layers: prompt engineering tells the model what to do, context engineering gives it the right information, and harness engineering builds the system that helps it act, verify and recover.
The article argues the difficult problem is not retrieving information but deciding what deserves to enter the context window; dumping an entire repository into the model is rarely ideal.
The article's harness architecture sketch lists seven responsibilities around the model: context management, tool execution, memory/state, permissions, validation, retry/recovery and observability.
The article frames prompt, context and harness engineering as layers rather than competing approaches: how should I instruct the model, what should the model know, and how should the complete agent system operate.
The article contrasts a focused-context pipeline with a naive approach of loading the entire repository, sending 200,000 tokens and asking the model to figure everything out.
Early LLM application work revolved around prompts: improving instructions, adding examples and adjusting wording; that approach works well for simple tasks.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Single conceptual explainer, no measurements
One publisher, one item, entirely definitional: taxonomy, a hypothetical Node.js rate-limiting task and ASCII architecture sketches. Third-party grounding exists but only as paraphrase of Anthropic, LangChain and Fowler inside the same article, with no primary text in the cluster. No error rates, benchmarks or before-and-after comparisons are reported, and the supplied body is truncated mid-argument.
No adoption signal in supplied sources
The source reports no release, deployment, benchmark run, pricing or licensing change, or usage disclosure. The Node.js rate-limiting scenario is explicitly hypothetical and the cited tools appear as illustrations, so there is nothing to measure adoption against and none is inferred.
Assertive framing ahead of shown results
The reliability argument is stated with confidence — deterministic verification around probabilistic intelligence, harness as the locus of agent dependability — while nothing in the source measures reliability before or after adopting these patterns. The overstatement is moderate rather than severe because the piece sells a vocabulary rather than a product, attributes its load-bearing definitions to named third parties, and concedes that the layers overlap instead of claiming a novel method.
Low-stakes explainer amplifying vendor vocabulary
The item is a self-published developer-community post with no disclosed commercial stake, product to sell or funding announcement, which limits direct incentive pressure. The residual distortion risk is that its central definitions are drawn from parties that market agent tooling — Anthropic and LangChain — so vendor framing is propagated without independent verification in the cluster.
Internally consistent but unverified and single-sourced
The claims about what the article says are highly reliable and mutually consistent, so the descriptive layer is solid. Confidence in the underlying reliability thesis is much lower: one publisher, zero adoption evidence, second-hand attributions that cannot be checked against the supplied material, and a body that cuts off mid-sentence.
build
A RAG Pipeline in 200 Lines of TypeScript, and the Parts the Frameworks Hide1 distinct publisher
build
A GAN beauty filter is a device budget allocation, not a feature toggle1 distinct publisher
build
Your inference bill is an architecture defect: declare the task before you call the model1 distinct publisher
build
The 2-4 seconds you pay per file: batch tsc once per agent session, not once per edit1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 15, 2026