AI coding agent context drift happens when an agent keeps producing plausible code after it has lost the actual operational constraints of the task. Bigger context windows help, but they do not solve the durable-state problem. The missing piece is not more text in a prompt. It is repository memory tied to accepted changes.
In a normal AI coding session, the agent sees files, instructions, and maybe a few notes. What it usually does not see is which files were deliberately out of scope, which review comments were already resolved, what the previous agent learned, or why a broad refactor was rejected. That is where drift starts.
flowchart TD
A[Task intent] --> B[Agent edits files]
B --> C{Operational memory?}
C -- No --> D[Scope drift and repeated review]
C -- Yes --> E[nool learn and findings]
E --> F[nool debug blast-radius]
F --> G[nool propose]
G --> H[nool solidify]
Nool treats context drift as a change-control problem. A transition should connect intent, implementation, findings, impact analysis, and final repository state. The useful workflow is concrete: start with `nool status --compact`, inspect tasks with `nool task list --compact`, record durable lessons with `nool learn --about ... --content ...`, and retrieve them later with `nool findings <subject>`.
Before accepting a change, run `nool debug blast-radius <path> --compact`. That gives reviewers and future agents a signal about whether the change stayed inside the task boundary. Then use `nool propose --all --intent "..." --fast` and `nool solidify --fast` or `nool solidify --full`, depending on risk.
The practical lesson: context drift is cheapest to fix before the pull request. Once the branch exists and the chat is stale, review becomes archaeology. Durable operational memory turns each session into input for the next one, across Claude, Codex, Cursor, and human maintainers.
The test for a good workflow is whether a different agent can resume without asking the human to replay the story. If the next agent can run `nool thread show <name> --full`, inspect `nool findings <subject>`, and understand the accepted blast radius, the context survived. If it needs pasted chat history and a tour through old PR comments, the repository still has amnesia.