SnapshotJuly 2026a point-in-time write-up, left as written

Managing context

The context budget is the mechanism. This chapter is the practice.

You manage context at two levels:

Both matter. The persistent layer sets the floor; session hygiene determines whether each run gets the best of it.

Inside a session

The model sees what’s in the window. Anything stale, conflicting, or irrelevant degrades output. A short list of rules-of-thumb:

Across sessions: AGENTS.md and CLAUDE.md

AGENTS.md and CLAUDE.md are the permanent prompt. Claude Code loads them into every session in a project. They let you avoid re-explaining the same conventions, constraints, or local facts every run.

A quick note on the two names: CLAUDE.md is Claude Code’s native memory file; AGENTS.md is the cross-tool convention that Cursor, Codex, and others read. The common pattern is a one-line CLAUDE.md that imports AGENTS.md (@AGENTS.md), so every tool reads the same instructions.

The files layer:

Most projects use the project-level file. The user-level file is useful for cross-cutting personal preferences (e.g., “I prefer concise commit messages,” “I’m on macOS”). Avoid putting project-specific content in user-level files, and vice versa.

What belongs

What doesn’t

Keeping them sharp

Every line in these files is taxed against the context budget on every turn. Treat them the way you’d treat a Dockerfile or a CI config: tight, deliberate, pruned.

Skills as the next layer

For more elaborate, load-on-demand context (workflows, templates, deep references), use Skills rather than stuffing everything into AGENTS.md. Skills load only when a matching task appears, which keeps the default context budget lean while still giving Claude access to the larger corpus.

The pattern: AGENTS.md for what Claude should always know. Skills for what Claude should be able to load when it’s relevant.

What good context actually gets you

A concrete example from writing this course.

I’m in a Claude Code session that’s been open for a couple of hours, iterating on /learn/ with a friend. The session already knows:

With that context loaded, I can double-tap the Wispr Flow key and just talk: rambling about terminals, Wispr, markdown viewers, the IDE of the future, whatever. Some of it is content worth keeping. Some is conversational filler. Some is throwaway. The transcript is messy.

And it works. Claude figures out what to keep, what to rephrase, and where to put it. Not because the prompt was precise (the prompt was a wall of freeform dictation) but because the context was well-primed. The model had enough scaffolding to tell signal from noise.

Resources