Why it matters: AI-generated modules can each pass review and every test, then break the moment they interact, because the failure lives in an assumption neither module was ever asked to state out loud.
The Details:
A model writing function A on Monday has no memory of function B written on Tuesday. Each session makes a locally reasonable choice about an ambiguous rule, like whether a null amount means zero or means reject. Both choices are defensible in isolation, both pass their own tests, and both can be wrong the instant they meet.
Human teams historically survived this because senior engineers carried tacit decisions in their heads across sessions: how nulls behave, how errors travel, what an ID looks like. That memory bridge disappears with AI generation, since the model only knows what the code and docs literally say, and will reinvent an answer fresh every single time it is asked.
Passing tests confirm that new code works. They do not confirm that new code agrees with existing code about shared premises. A payment validator that rejects null amounts and a refund validator that treats null as zero can both ship clean, then produce emergent, untested behavior the moment someone chains them together in production.
The fix is structural, not a sharper prompt or a stricter review pass. Shared types that pin down what a valid amount or ID looks like, edge-case tests that lock in tricky decisions, and a written glossary of decisions already made all give the model a canonical place to check before it invents a new answer.
Bottom Line: When AI writes the code, the engineer's real job becomes building the box the generation has to stay inside, not catching every disagreement after the fact.
Enjoy this article?
Listen to the Claude Code Conversations radio show or join the community.