Home › Use Cases › Check every quotation in a brief against the passage it cites
Use caseUC0441
🧪 Use-case kit · runnable

Check every quotation in a brief against the passage it cites

A small, forkable project that does one job end to end. Run once for real, and every figure on these pages captured from that run.

The business caseThe problem this solves

A brief quotes an authority and gives a pin page, and before it is filed somebody has to check every quotation against the passage it cites. Most of that is mechanical: is the source in the set supplied, are the words there, are they there verbatim, does the pin page hold them. The hard part is not. An ellipsis can stand for a harmless aside or for the limit the rule depends on; a bracket can fix a pronoun's case or name the wrong party. Every word can be in the source, every mark correctly printed, and the quotation can still say something the passage does not. nothing. It is a reading step in front of the cite-check that happens anyway; an attorney still reads every referred passage and signs every filing.

Audience

the attorney who signs the brief, and whoever cite-checks it before it reaches them Every number on these pages came from one real run of this code, not from a vendor page.

The inputThe actual brief extracts

The corpus is 62 brief extracts, 0.37 MB (txt 62). Quotation checking needs two things a public corpus cannot give at once: a quotation and its source with a KNOWN relationship between them, and the freedom to plant exactly the alteration that makes a quotation misleading. Real briefs and real opinions cannot be reproduced here, and a real case name on a page is the failure this corpus is built to make impossible. So the MECHANISM — a quotation, a pin page, ellipses and brackets, a supplied source set — is carried into an invented jurisdiction, and the relationship is DECIDED before any text exists: every mark is planted with its judgement, so the key is computed and there is nowhere in the generator to type one.

The corpus

  • The 62 brief extractsgenerated from a fixed seed, so no real record, person or institution appears in it.
  • Where each came fromNowhere — every one of the 62 brief extracts, every supplied source and the whole answer key is generated. Nothing here is fetched, scraped, licensed or derived from anything that was.

Swap this folder for your own material and the kit is pointed at your brief extracts. That is the whole change — there is no database to migrate.

One brief extract, as the model receives itBRF-0001.txt · 1 of 62
BRIEF EXTRACT - CITATION VERIFICATION PACK

PACK HEADER
  Pack               BRF-0001
  Matter             Quellby Supply Co. v. Sallowfeld Carriers Ltd
  Filing             Opening brief of the appellant
  Court              Court of Appeals of Halvern (a fictional court)
  Notice             Every matter, party, court, source and quotation in this pack is fictional.

TABLE OF AUTHORITIES
  SRC-A   Fenwolde Estates Ltd v. Wynsteadle Carriers Ltd
  SRC-B   Thornbecke Carriers Ltd v. Iverleigh Insurance Co.
  SRC-C   Tamsett Holdings Ltd v. Brannoch Holdings Ltd
  SRC-D   Penhallick Mills Assn. v. Lanmorrow Farms Co.

BRIEF TEXT
  [CIT-1] It has been held that "The shipper should give the carrier a fair chance to inspect, in the panel's words, before it rejects any goods other than perishable goods that arrive damaged." Tamsett Holdings Ltd v. Brannoch Holdings Ltd, SRC-C at 354.
  [CIT-2] The authority is plain: "The right to cure may never be waived by conduct though the shipper did not argue the point below and it [must] be exercised before the term ends." Fenwolde Estates Ltd v. Wynsteadle Carriers Ltd, SRC-A at 639.
  [CIT-3] As the panel held, "The limitation period runs from the date of the breach for claims under the second schedule and therefore not from the date the policyholder discovered it." Thornbecke Carriers Ltd v. Iverleigh Insurance Co., SRC-B at 605.
  [CIT-4] The authority is plain: "[F]igure that was not disputed, and to interest from the date of judgment." Thornbecke Carriers Ltd v. Iverleigh Insurance Co., SRC-B at 604.

Abridged — the file continues.

The outcomeWhat a good result looks like

One citation report per brief extract: for every quotation, whether its source is supplied, whether the words are found verbatim or one word away, what each ellipsis and bracket stands for in the passage, whether the pin page holds it, one verdict under QVR-2026 with the rule that decided it, the citations referred and one status — VERIFIED-AS-QUOTED or REFER-TO-SIGNING-ATTORNEY.

And when it cannot

A meaning-changing mark called harmless, or a harmless mark flagged. The first sends a quotation out VERIFIED that says something its source does not; the second sends an attorney to re-read a passage that was fine, and enough of those is how a referral list learns to be ignored — which produces the first. The two are counted apart and never averaged.

Where it fitsWhat did work

Every line below is a measured result from this kit's own runs, with the figure that supports it. The headline above is not softened by any of them.

  • The cited source is not in the set supplied, the quoted words are nowhere in it, or they are one unmarked word away — src/pack.py's aligner and src/rules.py's Q-3, Q-8 and Q-9, with no model at all
    236 of the 372 citations here are settled by the aligner and the engine together, at $0.00 and with no network, and the station puts them right after every arm.
  • The pin page may not hold the passage, including a near-duplicate sentence planted on the pin page — the aligner's page tracking and Q-11, still with no model
    the pin is compared with the pages the passage actually touches. BRF-0006 CIT-5 was answered VERIFIED by the call on a wrong pin, and the station restored PIN-PAGE-WRONG.
  • An ellipsis drops a stretch that may be a limit, an exception or a harmless aside — the paid call, behind the station
    omission readings 70 of 80 against the keyword floor's 55; the meaning-change half holds at p = 0.013 and the false-alarm half at p = 0.0037 against that floor.
  • A bracket replaces a pronoun with a party's name — a human, reading the sentence before the quotation
    all 6 meaning changes the call misses are pronoun brackets naming the wrong party: 10 of 16 caught. The antecedent here is never more than one sentence back.

And where nothing here is good enough:

  • You cannot tolerate a single false alarm — neither arm — and not the null floor either
    the null floor flags 0 of 74 harmless marks and beats the call on that column (p = 0.000061), by catching 0 of 62 meaning changes.

At a glanceHow the whole thing runs

90%rechecked meaning changed caught pct
2,599 msp50, end to end
$4.89per 1,000 brief extracts · google/gemini-3-flash

Run once, for real, on 2026-09-12. Every figure on these pages was captured from that run — nothing is written from intent.

14 steps, grouped by the question that sends you to them rather than by build order. Each tile carries the one figure that step is about, and opens the page behind it.

Should you use this?What you bring, where it stops, and when not to use it

Before you commit an afternoon to this, these are the answers that decide it. Each one is rendered from the record it lives in — and links the page that holds it in full.

What do I have to bring?Point data/corpus/ at your own brief extracts in the same panel shape — header, table of authorities, citation lines, source set, and each supplied source page by page — and the aligner, engine, station and board run unchanged. The answer key is DERIVED from the generator's own planted operations. Corpus lens →
When is this the wrong choice?Avoid: Paying for a call whose answer an aligner and a string comparison already produced. That is the case against the best-fitting scenario (“The cited source is not in the set supplied, the quoted words are nowhere in it, or they are one unmarked word away”). 5 scenarios scored in all, each with its own. Eval lens →
Where does it stop working?a real brief or opinion, which arrives as a PDF or a word-processor file — no OCR, no PDF reader, no layout model. 6 recorded failure modes, each from a run rather than a guess. Corpus lens →
What was never verified?THE KEY ON THE 136 READING CITATIONS. There the key is the generator's own planted judgement, decided before any text existed. 6 items this kit says it could not check. Eval lens →
Can I run this on a model I control?The shipped adapter is one provider, one key, reached only through src/adapters/; the Prompt lens states what swapping it costs. The published figures come from 1 model on the fast tier. Prompt lens →
And if it fits — what do I stand up?4 artifacts with a stated home and a stated egress, and 3 decisions each with what you provision past its ceiling — plus what was not measured. That is the next page, not this one. step 14 — Run it in your environment →

Not asked of this kit — 2 questions: clone (a fresh clone of this kit runs with nothing fetched); judge (nothing here is graded by a model).

Last verified 2026-09-12 — r001-citation-check. Every figure on these pages was captured from that run.

Run itHow this reaches your data

Every result on this page was produced by pure code over checked-in files, with no API key — which is why you can read the numbers before anyone spends anything.

Run this on your own data

  • The pipeline, its eval harness and the runs behind every numberdeployed inside your environment, on your own model endpoints, against your own documents.
  • The corpus above is the shape, not the limitit is a folder swap, and there is no database to migrate.

Talk to us →

Checked before this shipped — A clean copy of the kit folder, with no .env and no key in the environment, scored the keyword floor over all 62 brief extracts in 0.30 s of wall time and reproduced the committed b000-citation-check-rules scores exactly; no package was installed and no network was reached. The board renders every panel with no key, as the no-key frame shows.

A living map of modern AI — kept current every morning