Using cafe material for a blog post requires moving between two tabs. If the last tab read becomes the writing destination, research can accidentally turn into writing at the source. I retained reading location and writing destination as separate roles.

One selected tab cannot describe the whole workflow

The visibly active tab may only be the immediate research surface. The work destination needs a longer lifetime. Routing data therefore separates source tab, destination and references. Selecting a reference is not conceptually an update to the stored destination.

Without that distinction, an agent could read successfully and still type into the wrong editor. Research completion and destination resolution cannot share one state. Work roles must be retained so reading order does not determine writing location.

Separate reference language from destination language

Site parsing distinguishes reference and destination using surrounding expressions. An article about a blog differs from writing on a blog. The eventual use of an image or video can also differ from the service currently generating it. Known expressions receive a lightweight first classification.

Explicit title-and-body manuscript fields are separated from routing instructions too, reducing changes caused by site names inside the manuscript. This is not a complete semantic parser for every sentence. Ambiguity still needs the actual request and relevant page inspection.

An exact tab ID can still be only a reference

A precise ID does not become a destination when its role is to supply reference material. The test supplies a specific ChatGPT tab as reference while keeping the current cafe as destination. What the identifier means matters more than its precision.

References exclude the destination and are bounded in count. This retains relevant roles rather than copying every open body. Metadata connects the tabs first; actual material is read when needed. A large reference list must not silently imply permission or a requirement to collect everything.

Separate navigation data from descriptive metadata

Route metadata uses real destinations for local matching while exposing a reduced origin-and-path description rather than session queries and fragments. A complete navigation value and a conversation-facing identifier have different purposes.

Titles and account labels are not proof of successful live login. Roles can distinguish source and destination accounts while identity still needs checking from the page when required. Reduced metadata is not universal anonymization either; publicly shared material needs separate review.

Record what the historical test actually did

The earlier cafe-and-blog test read the cafe while retaining the blog editor as destination and returned a one-sentence draft. It created no new tab and changed no manuscript. That supports role retention, not an invented live blog-input or publication success.

Current external conversations use MCP context and explicit scope. Historical composer cards and embedded-CLI behavior cannot be assumed to remain identical installed UI. This account reads routing functions, tests and historical evidence; it does not send new material or alter a live manuscript.

Apply the distinction to company workflows using many sources

Reading contracts and account documents to create a report faces the same issue. Opening a reference must not change the final storage destination or recipient account. Separate values for source material and retained output make intermediate movement easier to reason about.

I defined tab roles before focusing on tab count. An agent should be able to read several places without forgetting where the result belongs. The linked synthetic context module includes actual local records of separated destination and references, without actual account control.