In 2026 the discipline split in two: casual prompting (models infer intent well now) and context engineering — the production skill of deciding what goes in the context window, what lives in application state, what comes from retrieval, and what must never be left to model guesswork.
Karpathy's framing: the LLM is a CPU, the context window is RAM, and your job is to be the operating system — loading working memory with exactly the right code and data for each task. The real production failure mode isn't a bad prompt — it's the wrong context.
[3 hours into an architecture discussion]
Before we continue, here is the pinned decision log — these are settled, do not reopen them:
Given decisions 1–3 as fixed constraints, compare the two caching options for the OPEN question only.
Context engineering for a bug fix — load only what the task needs:
IN CONTEXT (the working set):
NOT in context (deliberately excluded):
Prompt: 'Fix the nil pointer in ProcessOrder. The repository can return (nil, nil) when no order exists — see repo.go interface. Follow the error-handling pattern from the working handler. Do not modify any other function.'
Claude's 200K window handles large working sets, but precision still wins. Use XML tags to label each context block so the model knows what each piece is for.