Context Engineering Is Not Prompt Engineering
Two years ago, the hot skill was prompt engineering: crafting the perfect instruction to get an LLM to do what you want. I think that era is ending. What's replacing it is more important and less understood.
The shift happened gradually, then all at once. In 2023, every AI influencer was teaching you to write better prompts. "Be specific." "Use few-shot examples." "Tell the model to think step by step." There were entire courses, certifications, and job titles built around the art of writing instructions for language models. And it worked -- at the time.
But the models got better. The instructions mattered less. And the thing that started mattering a lot more was something most people still aren't paying attention to.
What Prompt Engineering Was
Prompt engineering was the discipline of squeezing better outputs from language models through better instructions. It was a real skill, and it mattered because early models were brittle. You had to hold their hand.
The core techniques were straightforward. Few-shot examples: give the model three examples of the output format you want before asking your actual question. Chain of thought: tell the model to reason step by step so it doesn't skip ahead and make mistakes. Role-playing: "You are a senior Python developer" to prime the model's behavior. System prompts: setting up behavioral constraints before the conversation starts. Instruction tuning: carefully wording requests so the model would interpret them correctly.
These techniques existed because models were less capable and needed explicit guidance. GPT-3.5 without chain-of-thought prompting would routinely fail at multi-step reasoning. Without few-shot examples, it would guess at output formats. Without role priming, it would default to a generic, overly helpful tone that wasn't useful for specialized tasks.
Prompt engineering was the art of compensating for model limitations through cleverer instructions. And for a while, it was the highest-leverage skill in AI.
Why It's Not Enough Anymore
Here is what changed: the models got good at following instructions.
Modern frontier models -- Claude, GPT-4-class and above -- don't need you to say "think step by step." They reason through complex problems by default. They don't need few-shot examples to understand output formats. You can say "return JSON with these fields" and they'll do it. You don't need to tell them to "be a senior developer." They write competent code out of the box.
The bottleneck shifted. It moved from "can the model understand what I want" to "does the model have the right information to work with."
This is the distinction that most people miss. The prompt is the instruction. The context is the information. When models were bad at following instructions, optimizing the instruction was the highest-leverage move. Now that models are good at following instructions, the instruction is often the least important part of what you send them.
Think about it this way. If you ask a brilliant developer to build a feature, and you give them a perfectly worded specification but no access to the codebase, no knowledge of the existing architecture, no understanding of the conventions the team uses -- they'll build something. But it probably won't fit. It won't follow the patterns. It might duplicate existing functionality. The quality of the instruction was perfect. The quality of the context was zero.
That's the state most people are in with AI tools today. They spend all their time optimizing the prompt and almost no time thinking about what else the model can see.
What Context Engineering Is
Context engineering is the discipline of curating, structuring, and managing everything that reaches the model at inference time. Not just the prompt. Everything.
That includes retrieved documents -- what a RAG system pulls in and how it's formatted. It includes conversation history management -- what previous turns to keep, what to summarize, what to drop. It includes tool call results -- the output of function calls and API responses that get fed back into the conversation. It includes system state -- user preferences, session metadata, application state. It includes persistent memory -- what the model "remembers" across sessions through external storage.
Context engineering is building the information environment the model operates in. It's not wordsmithing the instruction. It's curating the world the model can see.
The analogy I keep coming back to is office work. Prompt engineering is writing a clear email to your colleague asking them to do something. Context engineering is making sure that when they sit down to do it, they have access to the right documents, the right tools, the right background information, and the right history of previous decisions. The email matters. But the environment matters more.
This is a systems problem, not a writing problem. And that's why it's harder, more valuable, and less understood than prompt engineering ever was.
The CLAUDE.md Example
I'll make this concrete with my own experience. I've been using Claude Code as my primary development tool for months. The quality of output is 90% determined by context and 10% determined by the prompt.
My best prompts are often embarrassingly simple. "Add dark mode to the settings page." "Fix the bug where the window doesn't resize." "Write a blog post about X." Short, direct, no tricks. No chain-of-thought instructions. No role-playing. No elaborate few-shot setups.
What makes those simple prompts work is everything else Claude can see. My CLAUDE.md files tell it the tech stack, the conventions, the constraints. The codebase itself is in context -- Claude can read the relevant files. My memory system via claude-mem gives it persistent knowledge from past sessions. The tool integrations let it run builds, check linting, verify that code compiles.
When the context is right, a two-word prompt produces excellent output. When the context is wrong, a two-paragraph prompt produces garbage. I've tested this repeatedly. I can write the most detailed, carefully crafted prompt imaginable, but if Claude doesn't have the right files in context, doesn't know the project conventions, and can't verify its work -- the output will be wrong in ways that no amount of prompt optimization can fix.
The CLAUDE.md hierarchy is a pure context engineering tool. Global preferences in ~/.claude/CLAUDE.md. Project conventions in the repo root. Directory-specific rules in subdirectories. None of these are "prompts." They're context. They're the information environment that makes simple prompts effective.
This is why I tell people: if you want better results from Claude Code, don't rewrite your prompt. Rewrite your CLAUDE.md. Add more context, not more instructions.
Practical Context Engineering
If context engineering is the skill that matters, what does it look like in practice? Here are the areas I think about.
Retrieval quality over prompt quality. If you're building a RAG system, the single most impactful thing you can improve is what gets retrieved and how it's presented. Bad retrieval with a perfect prompt gives bad results. Good retrieval with a mediocre prompt gives good results. Invest in chunking strategies, embedding quality, re-ranking, and metadata filtering. These are context engineering problems.
Memory systems. Models are stateless by default. Every conversation starts from zero. Memory systems -- whether it's CLAUDE.md files, vector databases, or purpose-built tools like claude-mem -- give models persistent context across sessions. This is the difference between a tool that forgets everything and a collaborator that learns from experience. I use claude-mem to persist lessons learned, project-specific knowledge, and decisions made in past sessions. That persistent memory is context that makes every future session better.
Tool integration for real-time data. A model answering questions about your production system is useless if it can't see your production system. MCP servers, function calling, API integrations -- these are all mechanisms for injecting real-time context into the model's information environment. The model doesn't need a cleverer prompt to answer "why is the API slow right now." It needs access to the metrics dashboard.
Context window management. This is the hardest part and the most underappreciated. Context windows are finite. Every token you include is a token you can't use for something else. The discipline of context engineering is deciding what to include, what to summarize, and what to drop. Not everything is equally important. A 200-line file that's directly relevant to the current task is worth more than 2000 lines of tangentially related code. Conversation history from twenty turns ago is probably less useful than the last three turns. Knowing what to cut is as important as knowing what to include.
Structured context over unstructured dumps. How you present information matters. A wall of raw text is harder for a model to use than the same information organized with headers, bullet points, and clear labels. My CLAUDE.md files are structured for a reason. Short sections. Bold labels. Bullet points. No prose where a list will do. This isn't about aesthetics. It's about making context machine-parseable.
The Skill Shift
I think the reason prompt engineering was so popular is that it felt accessible. Anyone could learn to write a better prompt in an afternoon. It was a writing skill, and most knowledge workers already know how to write. You didn't need to understand systems architecture or information retrieval or token economics. You just needed to be clearer with your words.
Context engineering is harder. It requires understanding how models process information, how retrieval systems work, how to manage finite resources like context windows, how to build persistent memory, how to integrate external tools. It's a systems engineering skill dressed in AI clothing. It's closer to building a good CI/CD pipeline than to writing a good email.
But that's exactly why it matters more. The easy thing is rarely the high-leverage thing. And the people who figure out context engineering -- who build excellent information environments for their models -- are going to see dramatically better results than the people still tweaking their prompts.
The Bottom Line
The era of prompt engineering isn't completely over. Clear instructions still matter. You shouldn't write sloppy prompts. But the marginal return on prompt optimization has dropped to near zero for modern models. The marginal return on context optimization is enormous.
Stop optimizing your prompts. Start optimizing your context pipeline.
Build better CLAUDE.md files. Invest in retrieval quality. Set up memory systems. Integrate real-time tools. Learn to manage context windows. Structure your information for machine consumption. These are the skills that separate people who get mediocre results from AI from people who get extraordinary results.
The prompt is what you ask. The context is what the model knows when it tries to answer. And in 2026, what the model knows matters a lot more than how you ask.
Related Posts
Red/Green TDD with Coding Agents: Why Test-First Matters More
When AI writes your code, tests become the spec. Red/green TDD isn't just a practice anymore. It's the interface between intent and implementation.
Vibe Coding Is Real but Not What You Think
Everyone's talking about vibe coding. After years of using AI to write code, here's what it actually is, what it isn't, and why understanding the code still matters.
The EU AI Act Is Here: What Developers Need to Know
The EU AI Act was finalized this year. As an engineer who builds CV and AI systems, here's my practical take on what it actually means for us.