A decision you didn't write down isn't a decision
DEV Community

A decision you didn't write down isn't a decision

AI Harness Engineering ยท Essay Three ยท derek wang (derekwang85)

The most expensive failure in AI coding isn't a wrong decision. It's a decision that was made, then forgotten, then quietly unmade by the next generation. Here's the raw version of that law: a decision that lives only in conversation does not persist. It evaporates the moment the context window closes. If making it stick matters at all, it has to leave the chat and land in a file every session reads. That file is the architecture layer of the pyramid - the ADR set. In Essay One I gave you the skeleton; in Essay Two the top. This essay is the layer that stops the drift no one notices until it's cost a week. The decision that survived a lunch break I've lived the failure too many times to count. You and an agent go forty exchanges deep and finally converge: "OK, hexagonal pattern, the domain layer never touches the database directly. Locking that in." It is, in fact, locked in - as chat history. Locked in about as securely as a candle against a hurricane. Next session opens fresh. The model regenerates, nothing tells it the hexagon was decided, so it wires the domain layer straight to a repository. Nobody spots it until the deviation has spread across twenty files. By then the why is gone - the reasoning that justified the pattern is buried in a conversation nobody will scroll back through. What you're really watching is this: a conversation is not a contract. It's a one-time instruction stream - no history, no archive, no power to bind the next session. A decision that stays in the chat thread is as good as undecided. Only a decision that lands in a file anyone - especially any future model - must read is actually in force.

The Three Kinds of Rot

Three kinds of rot, one hole When decisions have nowhere to live, three distinct failures follow, and I've seen all three in real projects:

  • Memory drift. The humans remember a decision; the AI doesn't, because the decision was never written where the model could read it. So every regeneration quietly re-argues a question you thought was settled.
  • Architecture drift. Each generation makes a small, innocent-looking deviation from the design. Twenty regenerations later the code sits half a project away from intent, and no single change is identifiable as the point of failure. The boundary didn't vanish - it just stopped being pinned and started being random.
  • Repeated-argument drift. Because nothing is recorded, the same debate happens again with
Read on DEV Community ↗ ← Back to News

Comments

No comments yet. Start the discussion.