
Why Intent Matters More Than Code
There is a quiet pattern in every AI-collaborative codebase we've worked on. The code arrives faster than ever. The pull requests are clean. The tests pass. And six weeks later, no one can quite explain why the system is the shape it is.
We used to think the bottleneck in software was typing.
It wasn't.
The first wave got the easy half right
The first wave of AI-assisted development promised to remove the slowest part of the work: writing code. By that measure, it succeeded. A senior engineer working with a capable AI assistant produces working code at a multiple of their previous rate. We can argue about exactly what the multiple is. We can't argue that the gain exists.
But productivity is a system property, not a per-keystroke one. If the rate of writing code goes up by 5x and the rate of correcting code goes up by 3x, the system has gotten faster on net. If the rate of writing code goes up by 5x and the rate of making decisions about what code should exist stays the same, the system has gotten worse — because the design decisions are now being made implicitly, by whichever piece of code happens to land first.
This is the pattern we keep seeing: not bad AI-generated code, but undirected AI-generated code. Code written without an answer to a question that nobody bothered to ask.
The bottleneck moved. It used to be typing. Now it's intent.
What "intent" actually means
Intent is the answer to: "Why is the system this shape and not another shape?"
It is not requirements ("the system must do X"). It is not architecture ("the system uses pattern Y"). It is the chain of reasoning between them — the constraints, trade-offs, ruled-out alternatives, and unstated assumptions that turned a problem into this specific solution.
In a pre-AI codebase, intent was usually undocumented. It lived in the heads of the senior engineers who shaped the system. This was a problem, but a manageable one: those engineers could be asked, code review caught design drift, and changes to the system happened slowly enough that tribal memory could keep up.
AI-assisted development changes that math in two ways:
-
Code change rate exceeds tribal-memory rate. Decisions that used to take a week now take an hour. Tribal memory updates on weekly time scales, not hourly ones. Drift compounds before anyone notices.
-
The AI assistant has no tribal memory at all. Each session starts fresh. The "why" of the system's current shape is invisible to it, and invisible to anything it produces.
The result: the design decisions you made last quarter are being quietly contradicted, in good faith, by every AI-generated PR that doesn't know about them.
The honest moment
Most engineers who have worked with AI assistants for any length of time have had this moment.
You ask the AI to design a feature. It produces a credible answer.
You ask it to explain why it made the choices it did.
It can't.
Not because the AI is bad — but because the choices weren't made. They were generated. The output is a plausible design, but it lacks a defended rationale, ruled-out alternatives, and a record of trade-offs. It's a shape without intent.
If you ship that, you've added a feature. You've also added a piece of system shape that nobody in your organization can defend or evolve. The next person who touches it — AI or human — has to reverse-engineer the intent or guess at it.
This is not a tooling problem. The AI did exactly what it was asked to do: produce a design. It cannot produce intent because intent is the work that you haven't done yet.
Documentation is now the prompt
For a long time, documentation has been treated as a tax. Something you write after the work is done, for compliance or for new hires — often skipped, often outdated.
In AI-collaborative development, that framing is obsolete. Documentation is no longer the artifact you produce after the work. It is the artifact that directs the work.
Every AI-assisted code generation is, at its root, a documentation-to-code transformation. Whether the documentation exists explicitly or only as a hasty paragraph in a chat window, the AI is reading from it. The richness, precision, and reasoning of that documentation determine the code's richness, precision, and reasoning.
If your design intent is a sentence, you get a sentence's worth of design.
If your design intent is a structured argument — a problem statement, a set of constraints, a recommendation, a recorded decision, an enumerated set of trade-offs — you get a structured solution.
The investment that used to feel optional ("we'll document it later, if there's time") is now load-bearing. Documentation is the prompt.
Intent-First Development
Intent-First Development is the methodology we've built around this observation. It is not a process framework. It does not replace your sprint planning, your testing strategy, or your code review.
It is, in one sentence: the discipline of capturing design intent in a structured, AI-readable form before any production code is written, and treating that capture as the design itself.
Concretely, this means:
-
Design happens at altitudes. A protocol that moves a design from 50,000 feet (vision) down through 30k (capabilities), 10k (architecture), 5k (component design), and 1k (implementation), with explicit gates at each level. Premature commitment to detail is the most expensive mistake in AI-collaborative design; the protocol prevents it.
-
Decisions are formal artifacts. When a choice is made among real options, it is recorded as a Design Decision Document — with the recommendation, the decision, and the reasoning each captured separately, not blurred together. The recommendation and the decision are not always in the same field.
-
Intent is embedded throughout, not stored separately. Every explanation document carries reasoning. Every how-to carries the why behind the pattern. There is no "intent doc" — intent lives where it's relevant.
-
AI behavior is governed by Skills. The conventions and constraints that emerge from design work become Skills — short, AI-readable rules that shape every future session. The methodology applies to itself.
-
Existing code is a corpus, not an obstacle. Brownfield adoption does not begin with a blank page. An intent-extraction pass reads the existing codebase and produces a Diataxis-shaped seed corpus — evidence-cited and organized by quadrant — that serves as the starting point for IFD documentation. Teams curate and extend the seed rather than authoring from scratch.
-
Code is the executable expression of the design. Not the design itself. The design is the documentation corpus. Code follows.
Diataxis
A documentation framework that organizes content into four quadrants based on what the reader is trying to do: Explanation (why things work the way they do), How-To Guides (how to accomplish specific tasks), Reference (facts and specifications), and Tutorials (guided learning paths). IFD uses Diataxis as its structural framework because each quadrant serves a distinct cognitive mode — keeping the corpus navigable by both humans and AI assistants without requiring every reader to understand the whole.
The pieces are not new. ADRs have existed for years. Design docs have existed for decades. Documentation-driven development is older than that. What's new is the recognition that AI collaboration changes which artifacts are load-bearing — and that the methodology has to be designed around what AI can read, not just what humans can.
Why this matters now
AI-assisted development is not going away. The rate at which code is written will keep climbing. The rate at which design decisions need to be made and captured will climb with it.
You can address that gap by accident — by writing more code, generating more PRs, and accepting that nobody can defend the system's shape three months from now.
Or you can address it on purpose. You can decide that the new bottleneck is intent, and that intent is worth the same engineering discipline as code.
That's the whole methodology. The rest is patterns and practice.
Frequently Asked Questions
Isn't this just ADRs with a new name?
ADRs record one decision at a time. IFD treats the entire documentation corpus as the design — explanation docs, recorded decisions, captured assumptions, all of it together. ADRs sit inside an IFD project; they're one artifact type in a broader practice. The real difference isn't vocabulary: it's that IFD asks you to make documentation the directive for implementation, not its audit trail. A codebase with a healthy ADR repo but no documentation that AI sessions read as context still has the problem IFD addresses. The test is simple: if your AI assistant produces code that contradicts a decision you made last quarter, your documentation isn't directing implementation. It's record-keeping.
You claim the bottleneck moved to intent. That's an empirical claim. What's the evidence?
The diagnostic is something you can run right now: ask your AI assistant to design a feature, then ask why it made the choices it did. If it can't answer — if the choices were generated rather than made — you've found the gap. The broader pattern: teams with heavy AI-assisted development report faster code delivery alongside slower design coherence. PRs arrive clean, the system accumulates shape, and six weeks later nobody can defend why a particular boundary was drawn or what the design was optimizing for. We're not claiming this happens uniformly; we're claiming it happens, it compounds, and it's worth addressing before it does.
What does "AI-readable documentation" actually mean? Context injection? System prompts? Something specific to Claude?
In Claude Code, markdown files are loaded into the conversation context — the AI reads them as direction before generating code. In other tools, the mechanism varies: system prompts, retrieval-augmented context, tool calls against a knowledge base. The mechanism matters less than the principle: documentation is "AI-readable" when its reasoning is explicit enough that an AI session can produce aligned code without the practitioner re-explaining the design from scratch. A document that describes what the system does is not enough. A document that explains why it's shaped this way — what was considered, what was ruled out, what constraints apply — is directive. That's the distinction the methodology builds on.
I'm moving fast. What's the minimum viable first step?
One document before the next feature. Not a full corpus — one decision, the next real one you have to make. Write: what you're choosing between, what you're choosing, and why. It takes twenty minutes. Hand it to your AI assistant before the implementation session, then check whether the output aligns with the decision. If it does, the document worked. If it doesn't, the document showed you where the gap is. The value compounds with every session. The cost of the first document is a single focused conversation before you start typing.
Does this require Claude or Claude Code specifically?
No. IFD is AI-tool agnostic. Claude Code is a strong fit because it loads markdown files into the conversation context window, making the documentation corpus directly readable. But any AI assistant that can take a document as input — GPT-4, Gemini, open-source models via a system prompt — can work from a corpus shaped this way. The corpus outlasts specific tools; the decisions you document today will be legible to whatever assistant you're using two years from now.
Series
Adopting Intent-First Development

Introduction to Intent-First Development
Read article →
Applying Intent-First Development on Existing Projects
Read article →
Using Intent-First Development on a Greenfield Project
Read article →
Intent-First Development for Engineering Managers and Directors
Read article →
