The provenance gate around your conversational engine

A fabricated quote is caught and held before a reader ever sees it.

The moment a publisher answers a reader from its own archive, it owns the answer, and there is no Section 230 shield for what your system generates. The Standards Desk is the layer around your conversational engine: it grounds every published sentence to a real archive passage, verifies every quote verbatim, and routes anything it cannot prove to the standards desk instead of to readers, with a one-click audit receipt for each answer.

0

Ungrounded answers that can auto-clear

Deterministic gate invariant, unit-tested

6/10

Published without a human touch on the eval set

3 auto-cleared plus 3 sentence-pruned (this eval set's result)

200

Synthetic archive articles, 2014 to 2025

The Riverbend Ledger corpus, fully synthetic, 13 years

This is a runnable demo. The Riverbend Ledger, Mayor Reyes, and every article are labeled synthetic, and there are no live accounts. The deterministic policy gate, the verbatim-quote rule, and the 13 passing tests are real.

Publishers are being pushed to answer readers, and to own every answer

Volume without verification is exactly how a masthead ships a quote that was never said.

Search is no longer sending readers to the story. AI Overviews now appear on 48% of Google searches (theStacc via Search Engine Land, 2026), publisher search traffic fell 33% year over year to November 2025 with a further decline near 43% expected by 2029 (Reuters Institute Trends 2026), and the Daily Mail measured desktop click-through down 89% when an AI Overview surfaced above its link. The pressure is to answer readers directly, from the archive, under the masthead.

The trouble starts the instant you generate that answer. There is no Section 230 shield for content your own system produces from your own archive: you own it. The Washington Post made that concrete when its Ask The Post AI project shipped a podcast in late 2025 that invented quotes, misattributed sources, and inserted commentary as the paper's editorial position, a failure that surfaced when the standards editor's Slack leaked (Semafor, 2025). The technical root cause was a missing citation-verification step.

A stronger model does not fix this. The drafter is the wrong place to look, because a court does not care how confident the model was; it cares whether the quote was real and whether the archive actually said it. The durable answer is a separate layer that grounds every claim in the archive, enforces quotes verbatim, and is honest about what it cannot support.

How The Standards Desk works

The parts that carry the guarantee are deterministic Python. The agents advise. The gate decides.

A reader question runs a six-stage pipeline, live and offline: a temporal-planner decomposes it into time windows, a hybrid retriever (BM25 plus a local embedding) pulls candidate passages, a coverage floor abstains if nothing clears the score threshold, the answerer writes a strictly grounded answer with inline [S#] citations, a deterministic verbatim-quote check matches every quoted string against its cited source, a provenance auditor grades each claim, and a deterministic policy gate issues one decision. Every stage lights up in a console that streams its own latency, so nothing is a black box.

The Riverbend Ledger reader widget with a six-stage pipeline console: temporal planner decomposed into 3 time windows, archive retrieval of 10 passages, grounded answerer with 6 claims drafted, verbatim quote check reading 5 of 5 quotes verbatim, provenance auditor 6 of 6 claims supported, and policy gate reading Auto clear, ending in an AUTO-CLEARED FOR PUBLICATION banner.
The six-stage pipeline runs per question: plan, retrieve, ground, verbatim-quote check, provenance audit, policy gate. Agents advise, code decides.

Two engines, deliberately split

Three agents that advise

The temporal-planner, answerer, and provenance auditor are three Pydantic AI agents with typed per-claim verdicts. They are provider-swappable (default claude-opus-4-8), and the same pipeline runs end to end with no key through a deterministic offline stub or a keyless local Claude bridge, so the gate stays functional either way.

Code that decides

The trust boundary sits outside the agents. The verbatim-quote rule, an exact string match against the cited source text, and the policy gate are plain Python. Publish-safety never depends on an LLM's self-report, because a buyer needs a provable, auditable decision, not a model's say-so.

One of four gate decisions per answer

Every answer resolves to exactly one decision. The two that publish do so only when the answer is fully grounded; the two that do not are honest about why.

Gate decision What it means Decided by
AUTO-CLEARED FOR PUBLICATION Every claim grounded, every quote verbatim, coverage above the floor Deterministic policy gate, no human touch
PUBLISHED AFTER PRUNING An unsupported sentence is dropped and the remaining grounded answer clears Deterministic, counts as published without a human touch
HELD FOR STANDARDS-DESK REVIEW A fabricated or non-verbatim quote, or an unsupported claim Deterministic, blocked from readers and routed to the queue
OUTSIDE COVERAGE Retrieval clears nothing above the score floor Deterministic, honest abstention rather than a guess

The gate invariant and the audit receipt

The one deterministic, unit-tested guarantee is the gate invariant: no answer with an unverifiable quote or an unsupported claim is ever auto-cleared. On top of that, one click exports a JSON audit receipt per answer, recording the query, the decomposed sub-questions, the retrieved sources with article id, date, and url, the published answer, per-claim verdicts with evidence passages, per-quote verbatim checks, the gate decision and reason, the engine and model, and a UTC timestamp. A kill switch on the dashboard pauses the reader widget while the back end stays live.

Three reader questions, three honest outcomes

Every image below is a screenshot of the running app, produced by the live pipeline over the synthetic Riverbend Ledger archive. The publisher, the mayor, and the articles are labeled synthetic.

A 13-year question a vector-RAG widget cannot answer, cleared to publish

Asked how Mayor Reyes's stance on the downtown density ordinance changed from 2014 to 2025, the temporal-planner splits the question across time windows and the answerer assembles a chronological narrative, from "I will not trade Riverbend's character for towers" in 2014 to "I changed my mind, and I'd do it again" in 2025. Every sentence carries an inline [S#] citation, every quote passes the verbatim check, coverage clears the floor, and the gate reads AUTO-CLEARED FOR PUBLICATION. This is the longitudinal synthesis a single-passage widget cannot produce.

The reader widget showing a chronological, fully cited answer tracing Mayor Reyes's shifting position from 2014 to 2025, each sentence carrying inline S-number citations and a Grounded To panel of dated sources, under a green AUTO-CLEARED FOR PUBLICATION banner.
A chronological, fully cited answer synthesized across 13 years, auto-cleared because every claim is grounded and every quote is verbatim.

Every sentence traces to a dated archive passage

The Grounded To panel is not decoration. Each [S#] resolves to the real archive passage it was drawn from, with its date and archive reference, so an editor can read the source behind any sentence before it publishes. The 2019 citation, for example, opens to the actual article in which Reyes reversed her earlier position and said "Our downtown has to grow up, not just out." Grounding is what makes the answer defensible, not just fluent.

The Grounded To and Sources panel of the reader widget, with citation S1 expanded to reveal the full archive passage in which Mayor Reyes endorsed the downtown density measure she had opposed, dated 2019-06-24 with an archive reference.
Each citation opens to its real, dated archive passage. Every published claim is grounded, not merely plausible.

The quote trap: a fabricated quote caught and held from readers

Asked what Mayor Reyes promised developers about the riverfront parcel, the archive records no such promise (one article notes the parcel "was not on the agenda"). The answerer confabulates exactly as a vanilla RAG model would, inventing the line "We're committed to moving riverfront parcel forward for the developers." The verbatim-quote check finds that string in no cited source, claim-grounding coverage lands at 50%, and the gate holds the whole answer. The reader sees only HELD FOR STANDARDS-DESK REVIEW, not shown to readers. This is the Washington Post failure, prevented before publication.

The reader widget for the riverfront-parcel question, with the policy gate reading Review and a red HELD FOR STANDARDS-DESK REVIEW, not shown to readers banner, the drafted answer withheld, and an Export Audit Receipt JSON button.
A fabricated quote drives the gate to Review, and the answer is held from readers rather than published and corrected later.

What the standards desk sees: per-claim provenance and the red-flagged quote

On the Standards Desk dashboard, the held answer is audited claim by claim: one claim Supported, one only Partial, and the offending quote flagged in red as NOT verbatim in any cited source (fabricated or misquoted). The gate decision and its 50% coverage are recorded, and the answer lands in the review queue with its held draft and an exportable JSON receipt. The offending span is highlighted so an editor knows exactly what to fix, and nothing reached a reader in the meantime.

The Standards Desk dashboard provenance audit for the riverfront-parcel answer: a gate decision of review at 50% claim-grounding coverage, per-claim provenance labeled Supported and Partial, a verbatim quote check flagging in red a quote that is NOT verbatim in any source, and a review queue with a held draft and a Receipt JSON link.
The dashboard shows why the answer was held: per-claim verdicts, the verbatim-quote check in red, and the review queue with an exportable receipt.

When the archive has no answer, it abstains rather than guess

Asked for Riverbend's 2026 public transit budget, retrieval finds nothing above the score floor (top relevance 0.12 against a floor of 0.1784), so the pipeline skips the answerer entirely and the gate returns OUTSIDE COVERAGE. The reader is told plainly, "I don't have anything in this archive that answers that," rather than being handed a confident guess. Honest abstention is a feature of the gate, not a failure of the model.

The reader widget for the 2026 transit budget question, the pipeline console showing the grounded answerer, verbatim quote check, and provenance auditor all skipped, the policy gate reading Outside coverage with relevance 0.12 below the floor 0.1784, and an OUTSIDE COVERAGE, not guessing message to the reader.
Nothing clears the score floor, so the answerer is skipped and the reader gets an honest abstention instead of a bluff.

Governance the standards desk can operate: a kill switch

One toggle pauses the reader widget while the back end stays live, so an editor can stop new reader answers instantly during a breaking story or an incident without taking the archive offline. Combined with the per-answer audit receipt, this is the operable governance surface a standards desk actually needs: pause the front, keep the evidence, review the queue.

The full app with the Veriprajna Building True Intelligence header, the Reader widget paused checkbox enabled, and an amber notice reading Paused by the standards desk, the reader widget is offline, new reader questions are not being answered, while the pipeline and audit receipt remain visible.
The kill switch pauses reader answers instantly while the back end and the audit trail stay live.

A vanilla RAG widget versus The Standards Desk

The Standards Desk is not another conversational engine. It is the layer that decides what is safe to publish under your masthead.

Dimension Vanilla vector-RAG widget The Standards Desk provenance gate
Fabricated quote Ships under your masthead, uncaught Caught by a verbatim string match, held from readers
Unsupported claim Published as fact Pruned, or the whole answer is held, with coverage measured
A question spanning years A single-passage answer or nothing Planned across time windows, assembled chronologically with citations
Nothing in the archive A confident guess OUTSIDE COVERAGE, an honest abstention
Who decides to publish The model's confidence A deterministic policy gate in plain Python
Audit trail None A one-click JSON receipt per answer

What this demo does not do

  • ✓ It is not a chatbot, a search engine, or a competitor to Google, Perplexity, FT, or Bloomberg. It is a provenance gate around a publisher's own conversational engine.
  • ✓ It does not claim perfect synthesis or that it never hallucinates. The answerer can confabulate, and the quote trap shows it doing exactly that. The value is that the gate catches it before a reader sees it.
  • ✓ The eval figures (10 of 10 buckets, 6 of 10 published, 200 articles, 13 tests) are this built demo's scope on a labeled 10-query set, not open-world guarantees. Only the gate invariant, no ungrounded answer auto-clears, is a deterministic, unit-tested guarantee. The 60 / 20 / 20 split is this eval set's result, not a universal one.
  • ✓ The Riverbend Ledger, Mayor Reyes, the ordinance, and every article are labeled synthetic. There is no real publisher data and no live accounts, and the corpus quotes are the source of truth for the verbatim check.
  • ✓ Some parts are stubbed and named as such: production entity resolution is a pre-resolved fixture, the temporal knowledge graph is demonstrated with date and entity tags plus the planner, CMS sync is an Arc XP fixture, and the kill switch backs a local flag. Deferred: OCR and microfilm ingestion, full GraphRAG over a live archive, the licensing and revenue dashboard, Intelligence-tier pricing, voice answers, and site-embed hardening.
  • ✓ It carries no customers, testimonials, ROI, or dollar-savings figures. None exist yet. This proves the mechanism; it is not a deployment.

Questions publishers actually ask

Is this a chatbot or a search engine for our archive?

Neither. The Standards Desk is a provenance gate that wraps whatever conversational engine you already run over your archive. It does not compete with Google, Perplexity, or a newsroom search box. Its job is to decide, deterministically, which generated answers are safe to publish under your masthead, which get an unsupported sentence pruned, and which are held for a human, and to leave an audit receipt either way.

The model can still make things up. What exactly does this stop?

The answerer can and does confabulate. Our quote-trap example shows it inventing a quote a vanilla RAG widget would have published. What The Standards Desk stops is that answer reaching a reader. Every quote is matched verbatim against its cited source and every claim is graded against a real passage, so a fabricated quote or an unsupported claim is caught and routed to the standards desk before publication rather than after a correction.

We would own whatever our AI publishes under our masthead. How does this reduce that risk?

There is no Section 230 shield for content your own system generates from your own archive, so a fabricated quote is your liability, not a third party's. The gate never auto-clears an answer that has an unverifiable quote or an unsupported claim, and it exports a JSON audit receipt recording every claim, its cited source and verdict, and every verbatim-quote check. You either publish an answer you can prove, or you never published it.

Will a better model just make this unnecessary?

No, because safe to publish is a governance property, not a model property. A libel plaintiff does not care how confident the model was; they care whether the quote was real and whether the archive actually said it. The durable value, grounding every claim, enforcing quotes verbatim, and abstaining honestly, holds at any model quality, which is why the verbatim-quote rule and the policy gate live in plain Python outside the agents.

Is this running on a real newspaper archive, or is it a demo?

It is a runnable demo that proves the mechanism, not a deployment. The Riverbend Ledger, Mayor Reyes, and all 200 articles from 2014 to 2025 are labeled synthetic, with no real publisher data and no live accounts. What is real: the deterministic gate, the verbatim-quote rule, the temporal planning, retrieval, and the 13 passing tests all run exactly as shown, fully offline. Production entity resolution, the temporal knowledge graph, and CMS sync are stubbed as fixtures and named as such.

What is actually in the audit receipt, and how fast can we pull one?

One click exports a JSON receipt per answer: the query, the decomposed sub-questions, the retrieved sources with article id, date, and url, the published answer, a per-claim record of the claim, cited source, verdict, and evidence passage, a per-quote record of the quote, its verbatim match, and its source, the gate decision and reason, the engine and model, and a UTC timestamp. What a manual session audit might take an hour to reconstruct exports in seconds.

Technical Research

The research behind this demo — the architecture, the verification design, and the enterprise blueprint.

Putting your archive in front of readers with AI?

The provenance gate is the hard part. We build it.

If your newsroom is working out how to answer readers from the archive without publishing a quote that was never said, we would genuinely like to hear how you are thinking about it. The problem is industry-wide and the answers will be too.

Provenance assessment

  • ✓ Map where your conversational AI can publish an unverifiable quote
  • ✓ Define the grounding, verbatim-quote, and coverage rules for your archive
  • ✓ Design the standards-desk review routing and the abstention thresholds
  • ✓ Specify the audit receipt your editorial and legal teams need

Build the layer

  • ✓ A deterministic policy gate and verbatim-quote rule in plain Python
  • ✓ Grounded, longitudinal answers with per-claim provenance
  • ✓ Honest abstention and a standards-desk review queue
  • ✓ Model-swappable, with a JSON audit receipt per answer