SOURCE CHECKS / REPRODUCIBLE EVIDENCE
CONTROLLED FIXTURES · 2026-10-26

Source reliability and the cost of a citation workflow

Fourteen controlled source cases and seven ways to check three quotations. Inspect the evidence, request counts, body sizes, and explicit limits.

14 of 14 selected cases passed. This is a regression check with local measurements.

Observed source evidence

Fourteen controlled cases; real extraction and matching, simulated source transport
CaseOutcomePassed
Unicode punctuation and emoji offsetsexact_matchYes
Straight quotes differ from curly quotesnot_foundYes
Changed count in article textnot_foundYes
Navigation is not article evidencenot_foundYes
A row extracted from an HTML tablenormalized_matchYes
Line breaks normalize but the passage is preservednormalized_matchYes
Left PDF column, page 1exact_matchYes
Right PDF column, page 1exact_matchYes
PDF table cells, page 2exact_matchYes
PDF sentence, page 2exact_matchYes
Redirected article keeps final URL provenanceexact_matchYes
Missing quotation beyond the fetched output limitsource_truncatedYes
HTTP 404 keeps quotation uncheckedupstream_errorYes
A robots denial keeps quotation uncheckedrobots_disallowedYes

Three quotations, seven workflows

Body bytes exclude headers and compression. Local timings exclude network and production routing. Already-held text excludes its prior retrieval.

One warm-up excluded; five samples per workflow
WorkflowAPI requestsSource requestsRequest bytesResponse bytesLocal p50 msLocal p95 ms
HTTP: three separate URL checks363047,4557.119.92
HTTP: one URL citation batch123675,7374.276.52
HTTP: read once, then check supplied text221,0638,6214.947.29
HTTP: source text already held101,4355,3611.762.42
MCP 2026: direct URL batch1257412,2364.206.48
MCP 2026: discover, then URL batch2274914,3934.315.27
MCP 2025: initialize, notify, URL batch3268614,1534.025.14
01 / METHOD

What was checked

The corpus adds two-column PDF text, separately positioned PDF table cells, an HTML table, curly quotation marks, accented text, emoji offsets, whitespace, a redirected article, a robots denial, an HTTP 404, and a quotation beyond the reader’s 100,000-character output limit. The checker must preserve a distinction between absence, incomplete text, and unreadable sources.

These are selected BOZOS-owned fixtures containing fictional data. The capture runs the real parsers and matching functions with a controlled source transport and DNS resolver. It is an offline regression evaluation, not an independent publisher benchmark or a production availability test. Matching remains literal apart from whitespace normalization.

02 / METHOD

Requests and bytes

Every measured workflow checks the same three quotations: two present, one with a changed number. The separate URL checks retrieve the same article three times. The citation batch groups the URL into one retrieval. Source-request totals include robots.txt checks.

Read-once/reuse includes the initial reader response and the supplied-text check. Already-held text measures only checking text the caller has; its prior retrieval is outside the measurement, and it does not verify publisher provenance. Modern MCP can call the batch directly. The cold legacy workflow includes initialization and its notification.

Each workflow has one excluded warm-up and five measured samples. Times are local handler elapsed time; HTTP envelopes are simulated and MCP runs the real handler. They exclude network, TLS and production routing, and must not be read as a production speed ranking or SLA. Bytes are UTF-8 request and decoded response bodies, excluding headers and compression. MCP response totals include both JSON text and structuredContent; bytes are not model tokens.

03 / METHOD

Reproduce and inspect

The complete capture includes per-case evidence, per-call measurements, source-file and fixture hashes, Node version and timestamps. The downloadable corpus generator builds the exact fixture bytes without dependencies. The PDF was rendered and visually inspected.

The Python verifier runs all fourteen cases through the public HTTP API or modern MCP. It checks outcomes, fixture hashes, redirect provenance, passages, span lengths and PDF pages, saves the raw replies, and stops on any mismatch. It uses Python’s standard library, sends no feedback, and does not retry. These reruns are internal test activity, not adoption evidence.

python3 verify-live.py --transport http --output http-results.json
python3 verify-live.py --transport mcp --output mcp-results.json
04 / METHOD

What these cases do not establish

The PDF uses a column-major content stream. Other PDF reading orders, scans, ligatures, and hyphenated line breaks can behave differently. A match inside flattened table text does not verify the table’s semantic relationships. HTML extraction can omit context even when the returned representation is not truncated.

The long-source case exercises output truncation after a successful fetch; it does not exercise the download byte limit. The tests do not establish truth, claim support, source credibility, publisher coverage, independent demand, or production latency. All corpus material and captured results are CC0.