The code runs. The code breaks. The code is what production uses.
Specs and docs can help, but they often become stale. So we learned not to trust them too much.
Code is honest in a way documents are not. It may be wrong, but it does exactly what it does.
But I think there was another reason we trusted code so much.
For a long time, code was manual work. We wrote it ourselves. We spent time with it. We were not only typing syntax; we were thinking through the system while writing it. The thinking and the implementation were almost the same activity.
That is why code deserved this level of trust. Not because code was perfect. It was not. But because the code carried a lot of the human judgement that produced it.
With agentic coding, this starts to change.
The code is still real. It still runs. But now the thinking can be distributed across prompts, specs, agent sessions, generated plans, reviews, and the human who is steering everything.
And if the thinking moved, maybe the source of truth moved as well. Or at least it became less obvious.
This is what I tried to explore in this article.
As an individual contributor, I can move incredibly fast with tools like Claude Code. I can start with a rough idea, steer the agent while it builds, change direction during implementation, and let the code teach me what the spec should have been.
I like this. A lot.
But it works best while the system still fits inside one brain.
The experienced person knows the edge cases, dependencies, fragile interfaces, strange behaviours, and old production scars. The agent is not really working from a complete spec. It is working with a human who carries the missing context.
But real systems grow. They get delegated. Teams split. People leave. New people join. Agents improvise. Humans improvise too.
If something was never described, why do we expect the agent, or another human, to implement it the way we imagined?
Maybe this is where requirements become interesting again.
Not as a new idea. Regulated industries already use requirements this way. It is normal for them to have large requirement sets which can be turned into multi-hundred-page documents. But underneath, it is not just one big document. It is a graph of requirements, sub-requirements, interfaces, tests, evidence, owners, dependencies, and links.
I do not think normal software teams need to copy all the heaviness.
But maybe agentic engineering makes some lighter version of this much more important.
Code is still the runtime truth. It tells us what the system does.
But requirement is the intent truth. It tells us what the system is supposed to mean.
And evidence is what connects them.
I do not have the full answer yet. But I think the real risk of agentic engineering may not be bad code.
It may be bad intent, implemented quickly.