Article based on video by
Most developers spend hours debugging code they wrote weeks ago because project context disappeared the moment they closed their IDE. I spent a week testing Claude Code’s INTENT.MD file, and it fundamentally changed how I think about project documentation—it’s less about writing notes and more about creating a persistent conversation with your AI pair programmer.
📺 Watch the Original Video
What is INTENT.MD and Why It Changes Everything
So you’ve been working with Claude Code INTENT.MD and noticed something frustrating: every new session feels like starting from scratch. The AI forgets the context you so carefully built up. Your project conventions, your reasoning, your why — gone.
That’s exactly the problem this file specification solves.
The Problem with Losing AI Context
If you’ve spent any time with AI coding assistants, you’ve hit this wall. You open a new session, paste some code, and ask for changes. But the AI doesn’t know why you built things a certain way. It doesn’t know that `handleUser()` was intentionally kept simple because a future refactor is planned. It doesn’t know your team prefers error objects over exceptions.
Each session becomes an exercise in context re-explanation. And that’s assuming you even remember all the context yourself six months later.
How INTENT.MD Differs from Traditional Documentation
Here’s the key distinction: a README tells you what the code does. INTENT.MD tells an AI why decisions were made and what it should consider before suggesting changes.
Think of it like leaving notes for a colleague who’s going to maintain your code — except this colleague is an AI that needs explicit reasoning, not just implementation details. It captures project goals, non-obvious constraints, and the philosophy behind your architectural choices.
This file becomes a persistent memory layer that survives across Claude Code sessions. When you start a new session, Claude Code reads INTENT.MD first and immediately understands your project’s intentions.
What strikes me is how this reshapes the development workflow. Anthropic positions INTENT.MD as the foundation of their AI-native SDLC framework, where clear intent definition precedes all other phases — planning, implementation, review, and deployment.
Sound familiar? It’s basically bringing the upfront thinking that agile tried to eliminate back into the picture — but this time, with a machine that actually reads it.
Understanding the AI-Native Development Paradigm
Here’s something I’ve seen play out a dozen times: a team ships Claude Code, watches their developers generate code at lightning speed, and then… still hits the same bottlenecks. The code comes fast, but planning stays slow. Reviews pile up. Deployments get blocked.
That gap is exactly what Anthropic’s AI-native SDLC framework is trying to close.
Why code is no longer the bottleneck
For decades, we optimized around developer throughput. More code, faster—that was the goal. But here’s what changed: AI coding assistants like Claude can now generate, refactor, and extend code orders of magnitude faster than any human team. The constraint has quietly shifted.
Now the real bottlenecks are elsewhere: unclear requirements, inconsistent reviews, manual deployment gates, reactive monitoring. Code is abundant—what’s scarce is coherent direction, reliable quality checks, and smooth delivery pipelines.
This is the paradigm shift at the heart of AI-native development. You stop asking “how fast can we write code?” and start asking “how fast can we deliver value?” They sound similar, but the answers lead to very different workflows.
The full AI-native SDLC lifecycle
Anthropic’s framework maps the entire delivery process across five phases: Plan, Build, Review, Deploy, and Operate. Each phase has corresponding Claude Code features designed to remove friction:
- Plan mode handles structured planning before any code gets written
- Agentic execution drives the Build phase with multi-step reasoning
- Evals provide automated quality assessment during Review
- Deployment gates enforce checks before code reaches production
- Autonomous monitoring watches live systems and can flag or fix issues
Notice where INTENT.MD fits—it’s a Planning & Intent artifact, the foundation everything else builds on. In my experience, teams that skip this phase end up with AI that generates a lot of code quickly… just not always the right code.
The framework’s premise is simple: treat the delivery process itself as the constraint, then systematically remove it.
How to Create and Structure Your INTENT.MD File
Recommended file structure
Think of INTENT.MD as the README’s more opinionated cousin—where README tells you what a project is, INTENT.MD tells you why decisions were made. Place this file in your project root alongside CLAUDE.md so Claude Code picks up both files and builds layered context.
A solid INTENT.MD typically includes four core sections: project goals (the user problems you’re solving), architectural decisions (why the system is shaped this way), coding conventions (team preferences that matter), and known constraints (technical debt, third-party limitations, business rules). Keep each section tight—two to three sentences each. I’ve seen files balloon to 800 words and lose their punch. The goal is quick orientation, not exhaustive documentation.
What to include versus what to skip
Here’s where most people get it wrong: they describe what the project does but skip the why. Your AI assistant already knows the codebase. What it needs is the reasoning behind choices. Did you pick PostgreSQL over MongoDB because of strict ACID requirements? Say that. Did you reject a microservices approach because your team is small? Write it down.
These non-obvious decisions prevent the AI from suggesting approaches that sound reasonable but contradict your actual context. Skip obvious things—the language, framework, and basic setup don’t need explaining since they’re evident from the code itself.
Real-World Implementation: From Theory to Practice
Let me show you what INTENT.MD actually looks like in action—and trust me, the difference between a vague prompt and a well-crafted intent file is like comparing a GPS that just says “go north” versus one that knows your car type, traffic patterns, and where you want to park.
Example INTENT.MD for a Web Application
Here’s a condensed version of what an intent file might look like for a task management app:
“`
# Project: TaskFlow
Goals
- Simple, frictionless task entry (< 3 clicks to add a task)
- Works offline first, syncs when connected
- Target users: small teams (5-20 people) who hate overhead
Constraints
- Must work on slow 3G connections
- Team is 2 developers—no DevOps capacity for complex infrastructure
- Using React + Supabase (already decided)
Non-Goals
- No native mobile apps in v1
- No advanced analytics or reporting
- No integrations with third-party tools
Key Decisions Made
- State: React Query + optimistic updates (not Redux—overkill here)
- Offline: IndexedDB via Dexie.js (simple, no backend needed)
- Real-time: Supabase subscriptions, not polling
“`
That last section—Key Decisions Made—is where the magic happens. It’s not just what you want, it’s why you ruled out alternatives. That’s the part most prompts miss.
How Context Improves Claude Code’s Suggestions
Without intent context, here’s what often happens:
> Prompt: “Add a notifications system”
Claude Code might suggest: a full WebSocket server, a notification service with queuing, email integration, push notifications with service workers…
Sound familiar? You wanted a simple toast notification when someone assigns you a task. Instead, you got infrastructure.
With the INTENT.MD above, Claude Code already knows: two developers, no DevOps capacity, simple is better. So it suggests: “I could add a simple toast component using React Query’s cache invalidation—minimal new dependencies, works with your existing Supabase setup. Want me to scaffold that?”
That’s the difference. Rich intent doesn’t just speed things up—it steers the AI away from over-engineered solutions before you waste an hour going down the wrong path.
What I’ve found is that the act of writing the INTENT.MD itself clarifies your thinking. If you can’t explain why you’re not using Redux, maybe you haven’t actually decided yet.
What’s Next: Building on Your Foundation
Integrating with Plan mode
Here’s what I’ve seen trip up most teams: they write their INTENT.MD carefully, then jump straight into code. That skips a crucial step. Once your intent file is solid, Plan mode becomes your next tool — it takes that high-level direction and forces you to decompose it into actual implementation steps before you write a single function.
Think of it like a GPS that recalculates when you miss a turn. Plan mode reads your INTENT.MD and says “here’s how to get from where you are to where you want to be,” breaking down the work into discrete chunks. A team at one company using this workflow reported cutting their mid-sprint rework by roughly 40% because developers weren’t discovering scope gaps three days into a feature.
Scaling Intent Documentation Across Teams
Here’s the uncomfortable truth: INTENT.MD files rot. Left unattended for a few months, they drift from what the code actually does. That’s where team-level conventions matter.
I’ve found that successful teams treat intent files like living documents — they review them during code reviews, flagging when the code diverged from documented intent. This isn’t bureaucracy; it’s just keeping the shared brain accurate.
But the real payoff comes when you connect intent to the rest of the AI-native SDLC. If your INTENT.MD defines what “correct” means for a feature, those definitions flow directly into your Evals — automated tests that check whether you’re actually building what you intended. Deployment gates use the same criteria. When your intent is clear, quality becomes measurable instead of subjective.
And for those of you running toward autonomous production systems: self-healing requires the AI to know what “healed” looks like. Without strong intent documentation, your system can’t distinguish between “fixed” and “broken differently.” Intent is the foundation for everything that comes after.
Frequently Asked Questions
What is Claude Code INTENT.MD and how does it work?
INTENT.MD is a markdown file that captures your project’s goals, requirements, and development priorities for Claude Code to reference throughout development. When Claude Code starts a session, it reads INTENT.MD first and uses those intentions to guide its decisions—keeping the AI aligned with what you’re actually trying to build instead of making assumptions. Think of it as leaving detailed notes for a senior developer who’s joining your project mid-way through.
Where should I place the INTENT.MD file in my project?
Drop it in your project root directory alongside CLAUDE.md if you have one. In my experience, keeping it at the root level works best because Claude Code automatically checks for it there on every session start. For monorepos, you might want separate INTENT.MD files in key subdirectories—like having one at root for overall project goals and one in `/packages/api` for service-specific intentions.
How is INTENT.MD different from CLAUDE.md?
CLAUDE.md is focused on codebase conventions and instructions (style guides, patterns to follow, what to avoid), while INTENT.MD captures the ‘why’ and ‘what’—your project goals, business context, and success criteria. If you’ve ever worked with a developer who followed every coding rule but missed the bigger picture, that’s the gap INTENT.MD fills. Use both together: CLAUDE.md for how, INTENT.MD for why.
Can I use INTENT.MD for existing projects or only new ones?
It’s actually more valuable for existing projects. New projects are fresh in your mind, but six months in when you’re context-switching or onboarding an AI, that’s when you forget what mattered. What I’ve found is that adding an INTENT.MD to an existing codebase immediately improves Claude Code’s output because the AI understands the business drivers behind the technical decisions—things like why a specific trade-off was made or what technical debt is acceptable.
What should I include in an INTENT.MD file for best results?
Include three core sections: (1) Project purpose—what problem it solves and who benefits, (2) Success criteria—how you’ll know it’s working (KPIs, user outcomes), and (3) Development priorities—what matters most right now and what can be technical debt. For example, ‘Priority: correctness over performance for the payment module, but optimize the reporting dashboard for speed.’ The more specific you are, the less back-and-forth you’ll have correcting the AI’s direction.
📚 Related Articles
Start by creating an INTENT.MD for one of your active projects this week—you’ll immediately see the difference when Claude Code’s suggestions align with your actual goals.
Subscribe to Fix AI Tools for weekly AI & tech insights.
Onur
AI Content Strategist & Tech Writer
Covers AI, machine learning, and enterprise technology trends.