{"about":"Built when the site was deployed. Verified means the unit tests behind a tool passed at build. No uptime and no success rate are measured.","build":{"date":"2026-10-07","builtAt":"2026-10-07T04:06:00.222Z","commit":null,"tests":{"passed":321,"total":321}},"protocol":{"version":"1.0","since":"2026-10-06","rules":["Every figure shows its value, its denominator, its window and its source.","A figure is marked Recorded with the date of the run it came from. Nothing on this site is live telemetry.","A tool with no run behind it says Not yet measured and names the denominator it will publish.","Verified means the unit tests behind a tool passed when this build was made. It is not uptime and not a success rate.","A change to how something is measured is listed on the changelog with the published figures it invalidates.","Every measurement page states what it does not show, in its own section."]},"tools":[{"name":"AI Shelf Check","path":"/shelf-check","runtime":"server","lastVerified":"2026-10-07","tests":{"files":["url-guard.test.ts","robots.test.ts","scoring.test.ts","controls.test.ts","config.test.ts"],"passed":84,"total":84},"protocol":"Scanner 1.0 (lib/config.ts): robots.txt, one sitemap, the homepage and up to 3 product pages, fetched without JavaScript inside a 20 second budget, 3 MB per page, identifying itself as OptiVis-Labs-Shelf-Check.","failureState":"A scan that cannot complete shows the reason in the form and produces no score. A page cut off at the size limit is reported as truncated, never softened.","receipt":"/api/scan?url= returns the same report as JSON. The print stylesheet is the download.","publishedFigure":null,"denominatorToPublish":"A readiness score per store, out of 100, with six weighted areas. No aggregate across stores is published.","updated":"2026-10-06"},{"name":"Fact Split","path":"/fact-split","runtime":"server","lastVerified":"2026-10-07","tests":{"files":["factsplit.test.ts"],"passed":27,"total":27},"protocol":"Fact Split 1.0 (lib/factsplit.ts): three public surfaces, six fields, raw strings kept. A disagreement is declared only when normalized values differ; a field on fewer than two surfaces gets no verdict.","failureState":"A page that cannot be fetched shows the fetch error. No partial comparison is shown.","receipt":"/api/fact-split?url= returns the same comparison as JSON.","publishedFigure":null,"denominatorToPublish":"Of P product URLs where at least two surfaces stated a price, D had normalized prices that differed. P, D, the fetch date and the sampling rule are published together.","updated":"2026-10-06"},{"name":"Span","path":"/span","runtime":"server","lastVerified":"2026-10-07","tests":{"files":["span.test.ts"],"passed":19,"total":19},"protocol":"Span 1.0 (lib/span.ts): clauses cut at sentence ends, semicolons and \", and\" joints; up to 600 characters and 12 clauses; a clause is verbatim only if it appears exactly, and its UTF-8 byte offset is reported.","failureState":"A page that cannot be fetched shows the fetch error. A paraphrase is a miss, with the nearest sentence shown and labeled not a match.","receipt":"/api/span?url=&s= returns the same stamps as JSON.","publishedFigure":null,"denominatorToPublish":"Of C clauses checked against pages that returned HTTP 200, V were verbatim. V, C, the splitter version and the date are published together.","updated":"2026-10-06"},{"name":"Falsify","path":"/falsify","runtime":"browser","lastVerified":"2026-10-07","tests":{"files":["falsify.test.ts"],"passed":20,"total":20},"protocol":"Falsify 1.0 (lib/falsify.ts, lib/falsify-engine.ts): WebLLM 0.2.85 running Qwen3-1.7B-q4f16_1-MLC on WebGPU; temperature 0.7, top_p 0.9, 160 tokens, seeds 11, 22 and 33, thinking off; four conditions, three runs each; flags are string matches.","failureState":"Without WebGPU the page says so before anything downloads. A model that fails to load shows the loader's error and no result.","receipt":"Export receipt (JSON) on the page, written on your device. It records inputs, outputs, tallies, timings and settings.","publishedFigure":null,"denominatorToPublish":"Answers that state a removed fact, of answers per condition, per named model and prompt, with the control condition reported beside it and the sample of passages stated.","updated":"2026-10-06"},{"name":"Context Cliff","path":"/context-cliff","runtime":"browser","lastVerified":"2026-10-07","tests":{"files":["contextcliff.test.ts"],"passed":34,"total":34},"protocol":"Context Cliff 1.0 (lib/contextcliff.ts, lib/contextcliff-engine.ts): five fixed compression levels written for this page, tokens estimated as ceil(characters / 4); WebLLM 0.2.85 running Qwen3-1.7B-q4f16_1-MLC; temperature 0.7, top_p 0.9, 96 tokens, seeds 11, 22 and 33; repair search capped at 12 trials.","failureState":"Without WebGPU the page says so before anything downloads. A question that never held at full text is excluded from the chart rather than counted as broken.","receipt":"Export receipt (JSON) on the page, written on your device.","publishedFigure":null,"denominatorToPublish":"Answers correct at full text but not at level L, of questions answered correctly at full text, per named model, with the data sample and question sampling rule stated; and repairs found, of failures searched, with the trial cap.","updated":"2026-10-06"},{"name":"Compression Receipt","path":"/compression-receipt","runtime":"browser","lastVerified":"2026-10-07","tests":{"files":["compressionreceipt.test.ts"],"passed":26,"total":26},"protocol":"Compression Receipt 1.0 (lib/compressionreceipt.ts): seven fixed compressors written for this page or taken from Context Cliff levels 1 to 4, budgets of 25%, 50% and 75% of the input's estimated tokens, tokens estimated as ceil(characters / 4); a span is preserved when it appears after the same normalization Falsify uses; no model runs.","failureState":"Empty or oversized input shows a message and no table. Spans that are not in the input are listed as not scored and excluded from the total.","receipt":"Export receipt (JSON) on the page, written on your device. It records a SHA-256 hash of the input, not the input.","publishedFigure":null,"denominatorToPublish":"Gold spans preserved, of all gold spans, per compressor and token budget, with the input sample and the rule for choosing spans stated.","updated":"2026-10-06"},{"name":"Tripwire","path":"/tripwire","runtime":"browser","lastVerified":"2026-10-07","tests":{"files":["tripwire.test.ts"],"passed":31,"total":31},"protocol":"Tripwire 1.0 (lib/tripwire.ts, lib/tripwire-engine.ts): our own deterministic scanner rules; four mocked tools on an in-memory workspace of four invented files; WebLLM 0.2.85 running Qwen3-1.7B-q4f16_1-MLC; temperature 0.4, top_p 0.9, 200 tokens, seed 11, at most 6 steps.","failureState":"Without WebGPU the page says so before anything downloads. Two unreadable model replies in a row stop a run, and the raw replies are shown.","receipt":"Export receipt (JSON) on the page, written on your device.","publishedFigure":null,"denominatorToPublish":"Boundary-crossing attempts, of seeded attack scenarios, and task completions, of benign scenarios, per named model and permission configuration, with raw receipts saved.","updated":"2026-10-06"}]}