Peter Naur's 1985 Microprocessing and Microprogramming essay, from his 1984-08-28 Euromicro 84 keynote, is the source. The public source text is on GitHub Gist. I keep a Reading digest of that essay. This page is not that digest. I am using Naur's claim on the software factory I already run.
Naur's claim is that the proper aim of programming is that programmers build a tacit theory of how a real-world activity is matched by program execution. Code and documentation are secondary carriers. People who hold the theory can map the world to the text, justify each part, and see which modifications extend the design. A program dies when the team that holds the theory dissolves. Revival from documentation alone is strictly impossible.
A software factory that only emits text still dies unless someone holds the theory. Agent transcripts, pull requests, and markdown are more text. Volume does not turn them into the theory.
KB is inspectable memory next to the repo. Agents search plans, write decisions, and keep sources across sessions. A later session can read every note and still propose a patch that wrecks the structure the current holders would repair on sight. The notes are carriers. They are not the theory.
Hra is the loop. The live Codex metaharness keeps parallel sessions from vanishing when a window dies. Direct names repeatable app states so a browser agent can reach a signed-in page without rebuilding setup. I already use both in Building a software factory. They keep work and state cheap to reach again. They do not replace the people who can still modify the work.
Coding agents raise output. They also threaten conceptual integrity, because they produce behaviorally correct patches that ignore the theory. What is an agent harness? names the place a model works. This page is the Naur version of that problem: the product is the theory, and the people who can still modify the work are the ones who hold it.