When Code Becomes Cheap, Context and Proof Become the Product

Nan Wang

Hatched by Nan Wang

Aug 14, 2026

11 min read

91%

0

What if the most important skill in software is no longer writing code, but knowing what must be true before the code is written?

That question becomes unavoidable when an AI coding agent can inspect a repository, modify several files, run tests, explain its choices, and iterate faster than a human can type. The obvious conclusion is that programming is becoming obsolete. The more accurate conclusion is more unsettling: the visible labor of programming is becoming cheaper, while the invisible labor of judgment is becoming more valuable.

This is not merely a change in tools. It is a change in where competence lives.

For decades, software expertise was often measured by fluency in implementation. Could you write the function? Could you debug the exception? Could you understand the framework? Those abilities still matter, but they no longer define the whole profession. An agent can now produce a plausible implementation before its human collaborator has fully understood the problem.

That creates a new danger. The bottleneck moves upstream, from typing to thinking, and downstream, from generating to verifying. The person who wins is not the person who asks an agent to build the most features. It is the person who can supply the clearest reality for the agent to operate inside, then detect where the result quietly diverges from that reality.

The Great Inversion: Implementation Is Cheap, Understanding Is Not

Imagine a restaurant in which the kitchen has acquired a machine that can prepare almost any dish instantly. The machine can follow recipes, substitute ingredients, and produce attractive plates. What becomes more valuable: the cook who can chop fastest, or the person who knows what the guests actually need, which ingredients are unsafe, what the menu is trying to accomplish, and whether the finished dish is fit to serve?

The answer is not that cooking disappears. It is that coordination, taste, quality control, and responsibility become the scarce capabilities.

AI coding agents create a similar inversion. They are unusually good at local transformations. Give them a well defined task, relevant documentation, examples, constraints, and access to the surrounding system, and they can often produce a useful result. But local competence does not guarantee global correctness. A function can pass its tests while violating a business rule. A database migration can be syntactically valid while destroying an operational assumption. A user interface can look finished while making the most important action harder to discover.

The agent is not necessarily failing when this happens. It is executing an incomplete model of the problem.

This distinction matters because many teams respond to AI by increasing output. They celebrate how many files were changed, how quickly a prototype appeared, or how much code was generated. But generated volume is a weak measure of progress. A better measure is the amount of verified understanding created per unit of human attention.

When implementation becomes abundant, the scarce resource is not code. It is a trustworthy specification of reality.

A specification of reality is more than a list of desired features. It includes the rules that cannot be violated, the users who will be affected, the systems that must remain compatible, the failure modes that matter, and the evidence that would count as success. Most of this knowledge is not written in a ticket. It lives in conversations, habits, historical incidents, regulatory requirements, and tacit assumptions.

The central task of the new workflow is therefore not simply prompting. It is making implicit knowledge explicit enough to be acted upon and tested.

Context Is Not Background Information. It Is the Operating Environment

People often treat context as something added to a request. They paste a few files into a prompt, describe the feature in a paragraph, and hope the agent will infer the rest. This is like handing a contractor a photograph of one room and asking for a safe renovation of the entire building.

Useful context has structure. It tells the agent what the system is, what it is not, which decisions are fixed, which decisions are open, and how a proposed change will be judged. It connects abstract intent to concrete evidence.

Consider a request to add a refund feature to an online marketplace. A shallow instruction might say:

Add a button that lets customers request a refund.

A context rich instruction would surface questions such as these:

  1. Is a refund allowed after the item has shipped?
  2. Who pays for return shipping?
  3. Can a customer request multiple refunds for the same order?
  4. How are partial refunds represented in accounting?
  5. What happens when the payment provider is unavailable?
  6. Which staff members can override the normal policy?
  7. What does the customer see while the request is pending?
  8. Which existing reports and notifications depend on order status?

The difference is not verbosity for its own sake. The second version exposes the system's actual shape. It gives an agent boundaries within which it can be productive.

This is why context engineering is more important than clever prompting. Prompting focuses on the wording of an individual request. Context engineering focuses on constructing the information environment that makes reliable work possible across many requests. It includes repository conventions, architecture notes, examples of correct behavior, domain terminology, test commands, decision records, and explicit constraints.

A well prepared context reduces two kinds of waste. First, it reduces the number of incorrect paths an agent explores. Second, it reduces the amount of review required to determine what the agent believed it was doing. In effect, context acts as a compression layer for organizational knowledge.

There is also a deeper implication: the quality of an organization’s context determines how much value it can extract from intelligent tools. A company with undocumented exceptions and contradictory business rules will not become more coherent merely by adding an agent. It will produce incoherence faster.

AI exposes the quality of the system around the code.

The Verification Gap: Plausible Is Not the Same as Correct

The second scarce capability is verification. This is easy to underestimate because generated code often looks convincing. It may use familiar patterns, have clean names, and pass a narrow test suite. Its danger is not obvious incompetence. Its danger is credible partial correctness.

A human reviewing a small code change can ask whether the syntax is valid and whether the test passes. A human reviewing an AI generated change must ask a more difficult question: does this change preserve the behavior of the larger system under the conditions that matter?

That requires several layers of verification.

Specification verification asks whether the task itself was understood correctly. Did the implementation solve the actual business problem, or merely the most literal interpretation of the request?

Behavioral verification asks whether the system behaves correctly for normal cases, edge cases, and failure cases. What happens with an empty input, a duplicate request, a timeout, an expired permission, or a partial outage?

Integration verification asks whether the change cooperates with neighboring systems. Does it preserve database assumptions, event formats, access control, reporting, caching, and observability?

Operational verification asks whether the change can be safely run in production. Can it be rolled back? Is the new failure mode visible? Does it create unacceptable latency, cost, or support burden?

These layers reveal why testing is becoming a form of product thinking. A test is not only a mechanical check. It is a statement about what the organization considers important enough to protect.

Suppose an agent builds an appointment scheduling system. A basic test may confirm that a user can select an available time. A stronger test asks whether two users can select the same time under concurrent requests. A still stronger test asks what happens when the confirmation message fails after the appointment has been reserved, or when daylight saving rules change the displayed time. Each test encodes a model of reality.

The verification specialist is therefore not simply the person who finds bugs after the fact. This person designs the evidence that distinguishes a correct system from a persuasive imitation of one.

The future belongs to people who can turn vague confidence into inspectable evidence.

This changes the social meaning of expertise. In the old workflow, a senior engineer might demonstrate value by producing difficult code. In the new workflow, they may demonstrate value by identifying the untested assumption that would make an otherwise elegant implementation dangerous.

Architecture Becomes the Art of Preserving Meaning

If agents can handle more implementation, architecture becomes less about drawing boxes and more about managing boundaries. The critical architectural question is no longer only where code belongs. It is also: what meaning must survive as information moves between people, models, services, and time?

Every system has boundaries where meaning can be lost. A user’s intent becomes a database record. A database record becomes an event. An event becomes a report. A report becomes a business decision. At each transition, something can be omitted, transformed, or misinterpreted.

AI agents introduce new boundaries. A product manager’s request becomes an agent’s working context. That context becomes a plan. The plan becomes code. The code becomes behavior. If the original intent is not represented clearly at each stage, the system can drift while every individual step appears reasonable.

This suggests a useful mental model: treat an AI assisted workflow as a chain of semantic handoffs. At each handoff, ask three questions:

  1. What must be preserved?
  2. What may be transformed?
  3. What evidence confirms that the meaning survived?

For a payment system, the amount, currency, customer identity, authorization state, and idempotency behavior may need to be preserved. The internal data structure may change. The evidence might include contract tests, reconciliation reports, and failure simulations.

For a medical intake tool, the exact wording of a symptom may be essential, while the presentation format can change. The evidence must include privacy checks, clinician review, and tests for ambiguous or incomplete descriptions.

This is where system architecture and integration become more valuable, not less. Someone must decide which components are allowed to infer, which must remain deterministic, where human approval is required, and how failures are isolated. An agent can implement a boundary, but it cannot independently determine what the boundary means to the organization unless that meaning has been made explicit.

The most effective engineers will increasingly act as designers of decision surfaces. They will decide where the system should ask for clarification, where it can automate, where it must refuse, and where a human must inspect the evidence before proceeding.

A Practical Workflow for the New Scarcity

The transition does not require abandoning programming. It requires reorganizing the sequence of work.

Begin with a commodity skill audit. List the activities that consume your time and separate those that require judgment from those that mainly require translation. Repetitive interface code, routine tests, documentation drafts, small refactors, and familiar integrations may be suitable for delegation. Ambiguous requirements, architectural tradeoffs, risk analysis, and business interpretation usually are not.

Next, build a context packet before asking for implementation. Keep it concise but structured. Include the goal, relevant system components, constraints, examples of expected behavior, forbidden changes, validation commands, and unresolved questions. If the packet cannot be written clearly, the problem is probably not ready for delegation.

Then ask the agent for a plan before asking for code. A plan creates a cheap checkpoint. It exposes misunderstandings while they are still inexpensive to correct. Ask what assumptions it is making, which files it expects to change, what could break, and how it will validate the result.

After implementation, run a verification ladder rather than relying on a single test command. Start with automated checks, then inspect behavior at the boundaries, then compare the change against the original business intent. For important work, ask a second pass to look specifically for missing cases, security weaknesses, compatibility risks, and rollback problems.

Finally, capture what was learned. If the agent repeatedly needs the same explanation, that explanation belongs in the system’s durable context. A repository should gradually become not just a collection of code, but a usable map of its own assumptions.

This creates a feedback loop:

  1. Clearer context improves delegation.
  2. Better delegation reveals hidden assumptions.
  3. Verification turns assumptions into explicit rules.
  4. Explicit rules improve future context.

The organization becomes more capable not because the agent remembers everything, but because the system remembers what matters.

Key Takeaways

  • Audit your work by judgment density. Delegate tasks with clear inputs and outputs. Protect time for ambiguity, tradeoffs, and responsibility.
  • Write context as an operating manual. Include constraints, examples, terminology, architecture, failure modes, and validation steps, not just a feature request.
  • Require plans before changes. A short plan reveals incorrect assumptions earlier than a long code review.
  • Verify at multiple levels. Check the specification, behavior, integrations, and operational consequences. Passing tests are evidence, not proof.
  • Treat every handoff as a risk. Ask what meaning must survive from request to plan, from plan to code, and from code to production.

The phrase coding obsolete captures the spectacle of the transition, but it misses the substance. Code was never the whole of software work. It was the most visible artifact of a larger activity: understanding a world well enough to build a reliable machine inside it.

AI changes the economics of that activity. It can make construction astonishingly fast while making misunderstanding astonishingly cheap to scale. The organizations that benefit will not be those that generate the most code. They will be those that create the clearest contexts, design the strongest verification systems, and know exactly where automation should stop.

The defining question of technical work is becoming less, Can you build this? It is becoming, Can you state what this must mean, prove that it means it, and preserve that meaning when the system changes?

That is not the end of engineering. It is engineering moving closer to its real subject: turning human intent into dependable reality.

Sources

← Back to Library

Hatch New Ideas with Glasp AI 🐣

Glasp AI allows you to hatch new ideas based on your curated content. Let's curate and create with Glasp AI :)

Start Hatching 🐣