{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreihjrftbnzplt3zxrdogljeh4x4dm7ksz4lig73bpbtod5olhj63iq",
    "uri": "at://did:plc:lk3jfj3zq4k4wxnk474axylu/app.bsky.feed.post/3mftxgj6gyyj2"
  },
  "path": "/t/making-llm-conversation-structure-visible-for-heavily-revised-workflows/1375306#post_1",
  "publishedAt": "2026-02-27T13:47:01.000Z",
  "site": "https://community.openai.com",
  "textContent": "I’ve been thinking about how LLM chat interfaces expose conversation structure.\n\nWhen working through:\n\n  * Iterative prompt refinement\n\n  * Topic divergence\n\n  * Multiple response branches\n\n  * Deep planning / research sessions\n\n\n\n\nThe underlying interaction becomes tree-like.\n\nEvery edit creates a branch and every refinement shifts the downstream context. But the frontend presents everything as a linear scroll.\n\nThere’s no persistent structural map of user turns. Revisiting earlier prompts requires manual scrolling and visual scanning.\n\nFor light use this is fine, for heavy iterative workflows, it becomes tedious.\n\n### Idea\n\nIf users had explicit visibility into session structure: prompts, divergence points, branch counts, would iteration quality improve?\n\nSpecifically:\n\n  * Faster non-linear navigation\n\n  * Clearer awareness of prior context\n\n  * More deliberate branching decisions\n\n  * Reduced “context drift”\n\n\n\n\n### Experiment\n\nI built a lightweight Chrome extension to test this hypothesis.\n\nMy approach was:\n\nCreate a minimal structural index of user prompts and expose it as a persistent sidebar for navigation.\n\nNo API integration.\nNo content storage.\nRuns entirely locally.\n\n### Technical Approach\n\n**DOM Observation**\n\n  * Mutation observers detect new message nodes\n\n  * Identifies user turns and branch controls\n\n  * Extracts minimal metadata (prompt text + branch indicators)\n\n\n\n\n**Structural Index**\n\n  * Maintains in-memory mapping of:\n\n    * User prompts\n\n    * DOM references\n\n    * Branch position markers (< 1 / n >)\n\n\n\n\nEffectively builds a session map from the rendered UI.\n\n**Shadow DOM Injection**\n\n  * Sidebar injected via shadow DOM\n\n  * Avoids CSS collision\n\n  * Does not mutate host layout\n\n  * Maintains isolation from upstream changes\n\n\n\n\n**Navigation**\n\n  * Clicking an indexed prompt scrolls directly to its DOM node\n\n  * No rewriting of the conversation tree\n\n  * Pure augmentation layer\n\n\n\n\n### Observation\n\nEven this minimal indexing layer changes how long sessions feel and improves context-awareness.\n\nMaking divergence points visible (instead of hover-dependent) and instantly navigable helps to organise and review topics within conversations.\n\nIt changes user understanding and prepares them better for their next prompt.\n\n### Open Question\n\nIf users treat ChatGPT or other LLMs as:\n\n  * A reasoning surface\n\n  * A planning environment\n\n  * A drafting workspace\n\n\n\n\nThen tree-aware features may be necessary to reduce cognitive load.\n\nCurious how others here are thinking about:\n\n  * Branch visualization\n\n  * Session mapping\n\n  * Non-linear navigation in LLM tools\n\n  * Whether chat UIs are the right abstraction long-term\n\n\n\n\nThis experiment currently exists as a **Chrome Extension - NavGPT** to validate structural indexing before exploring API-level implementations.\n\nWould appreciate feedback from anyone experimenting with interface-level LLM augmentation.",
  "title": "Making LLM conversation structure visible for heavily revised workflows"
}