What Threadline is
Threadline is a provenance-preserving argument debugger for contested online claims. A browser agent reads the same investigation a person is reviewing and uses eight in-page WebMCP tools to stage sources, atomic claims, typed relations, non-destructive groups, and a bounded verdict. Agent-authored proposals are visibly noncanonical until a person accepts them. If a person rejects a proposal with a reason, that rationale returns through get_workspace so a later agent call can revise its approach.
The result is not another feed summary. It is an inspectable collaboration in which the agent does the expensive work of researching and structuring an argument, while the person retains authority over what becomes durable truth.
The problem
Fast-moving technical discussion on X and the wider web flattens primary evidence, repetition, interpretation, prediction, and contradiction into one stream. A claim can look independently corroborated simply because many posts repeat the same underlying source. An autonomous summary hides those dependencies and can quietly become the next person's “fact.”
Threadline makes the evidence lineage visible. It separates what a source directly establishes from what people infer, predict, amplify, or dispute.
What people and agents do together
The agent can:
- inspect bounded canonical workspace state and deterministic structural analysis;
- inspect full source evidence inside explicit untrusted-data boundaries;
- research and stage public sources it actually accessed;
- propose atomic claims and typed
supports,contradicts,qualifies, oramplifiesrelations; - propose non-destructive groups for repeated claims;
- propose one bounded verdict and its evidence relations as an atomic patch; and
- focus the visible graph on unresolved or primary-evidence work.
The person can:
- inspect every source trail and staged graph entity;
- accept a defensible proposal;
- reject a weak proposal with a recorded rationale;
- decide which verdict becomes canonical;
- reopen saved investigations after reload; and
- export portable JSON or a Markdown evidence brief with the decision receipt.
Why WebMCP is essential
Threadline registers eight imperative tools with document.modelContext.registerTool:
| Tool | Purpose | Authority |
|---|---|---|
get_workspace |
Compact canonical state, structural analysis, recent human decisions, and rejection rationale | Read only |
inspect_sources |
Full evidence records inside explicit untrusted-data delimiters | Read only |
stage_sources |
Propose public evidence the agent actually accessed | Review queue only |
stage_claims |
Propose small evidence-grounded claims | Review queue only |
stage_relations |
Propose typed claim-to-claim relations | Review queue only |
stage_merge |
Propose non-destructive repeated-claim groups | Review queue only |
stage_verdict |
Propose one verdict and its relations atomically | Review queue only |
set_focus |
Change reversible presentation focus | Presentation only |
This is more than “chat with my site”:
- The registered tool surface enforces proposal-only authority. There is no registered accept, reject, reset, import, delete, rename, or case-switch tool. Acceptance is available only through the person-facing UI. This is a capability boundary, not authenticated proof of personhood.
- The agent and person share one live object. Stable source, claim, relation, group, proposal, and case IDs refer to the exact graph on screen. The agent does not reconstruct graph meaning from pixels.
- Optimistic concurrency prevents silent cross-talk. Every non-discovery call requires
expectedCaseId; every staging call also requiresexpectedRevision. A stale staging call or cross-case call returns structured recovery output before any proposal or canonical mutation. - Rejection becomes protocol feedback.
get_workspaceexposes up to eight recent human decisions, including rationale, for later agent calls. - Schemas and trust boundaries are explicit. Inputs are closed and bounded. Read tools carry read-only and untrusted-content hints, and full third-party evidence is returned only inside named untrusted-data delimiters.
- Staging is idempotent. Equivalent proposals reuse a stable ID, and pending entity IDs are reserved so competing proposals cannot present different content under one identity.
Because the tools live in the page, Threadline needs no backend, database, account, API key, or bundled AI runtime.
A complete product, not a proof of concept
- The primary interface is a responsive, keyboard-accessible provenance graph and review queue—not a chatbot.
- Pending graph entities are visibly marked STAGED — NOT CANONICAL and open their owning proposal.
- Amplification is first-class: repeated claims can be grouped without deleting original wording, relations, or sources.
- A verdict is an atomic patch. Its conclusion and evidence relations enter canonical state together, while only direct claim-to-verdict edges become its basis receipt.
- Up to eight investigations can be created, opened, renamed, reset, removed, imported, and exported.
- When exclusive Web Locks are available, cases labeled Saved survive reload. Otherwise they remain clearly labeled Memory only and exportable before reload.
- Screenshot transcriptions are explicitly labeled human-supplied evidence; Threadline never fabricates a public URL or treats an attributed statement as proof of its underlying claim.
- The deterministic preview is visibly labeled as a checked-in fixture replay, never as a live model response.
Threadline uses dependency-free browser ES modules, semantic HTML, CSS, functional SVG, and Node's built-in test runner. It is hosted on ChatGPT Sites and released under the MIT License.
The bundled challenge case
The main investigation asks: Will WebMCP replace browser automation?
Nine dated public records include Chrome documentation, the WebMCP explainer, a pinned WindTunnel benchmark result, and WebKit and Mozilla standards-position records. The graph separates a large demonstrated efficiency advantage on instrumented sites from task-level parity, explicit fallback guidance, and unresolved cross-browser implementation.
The evidence supports a narrower verdict than the feed does: WebMCP is a semantic fast lane on instrumented sites, not a replacement for browser automation.
The walkthrough deliberately stages one defensible group, one weak group, and one atomic verdict. The person accepts the first, rejects “Adoption and fallback” with the rationale “Same topic, different claim,” inspects the verdict evidence, and accepts the verdict. The unresolved standards claim remains visible after resolution.
Verification
npm test: 226 passing tests covering all eight registrations, phase prompts, prompt-boundary injection, case and revision guards, screenshot provenance, proposal identity, human review, atomic verdicts, reload-safe storage behavior, import/export, evidence briefs, and registered-callback/preview parity.npm run evals: 3 passing deterministic workflow evaluations. Seven live-agent journey definitions are checked in and deliberately markednot-rununtil observed in a compatible live session.npm run smoke: deployable static entrypoint, 2 local assets, 25 JavaScript modules, metadata, accessible landmarks, interaction sizing, responsive guards, and module syntax.
Judge testing instructions
No credentials are required.
- Open https://threadline.jameswirths.chatgpt.site in ChatGPT's in-app browser or Chrome 149+ with WebMCP enabled.
- Open Investigations, select or load the bundled WebMCP example, and choose Reset case. Confirm 8/8 Site tools ready, Saved, Unresolved, 0 pending, and 09 sources. If the case says Memory only, do not rely on the reload check.
- Paste the Exact live fixture prompt from
docs/demo-runbook.mdinto Site tools. It reads bothguidancepages, verifies the case and revision, callsstage_mergeonce andstage_verdictonce, then stops. Expect exactly three pending proposals while canonical state remains unchanged. - Accept Performance amplification. Reject Adoption and fallback with
Same topic, different claim.Inspect the verdict evidence, then accept the verdict. - Confirm Resolved · human accepted, 0 pending, four installed verdict relations, and three direct basis-receipt relations. The Ask card now advances to Investigate what remains.
- Use Focus unresolved and confirm the cross-browser standards claim remains unresolved. Reload the saved case, then export the Markdown evidence brief.
If Site tools are unavailable, Preview example pass provides the same checked-in three-proposal fixture through the production store. It is clearly disclosed in the UI as a deterministic preview and must not be described as a live agent call.
Log in or sign up for Devpost to join the conversation.