How I built the library

Acquisition

I found each opinion through CourtListener and downloaded the court's own copy. For the Supreme Court that's the slip opinion from supremecourt.gov or, for some opinions, the page proof the Court publishes as its preliminary print. For the Tenth Circuit it's the PDF on the court's website, at the address CourtListener recorded, or govinfo's copy where that address no longer worked. The books and papers are copies I supplied by hand or took from Wayback Machine captures. Each source page records how and when I got the file, its size and its SHA-256, and the table at the foot of this page counts the files by where they came from. For a public-domain source whose text I publish in full, the source page also links to the original, byte for byte as I got it; a source I've replaced with a better copy links to the copy that replaced it instead.

Extraction

Docling reads each file into text blocks. For a PDF it records the page and position of every block; an HTML page has no pages, so its blocks have no page positions. Each source records the Docling version that read it, and the table below counts the sources by version.

The text I serve

The text I serve is Docling's text after a fixed set of repairs. The normalizer takes curly quotes, dashes and section signs from the characters the PDF prints. In the page proofs, it puts back the letters a dropped ligature took out ("affirmed" where the extraction read "affrmed"), and it checks each repair against a dictionary. It removes running heads, page numbers, filing stamps and the page proof watermark, and it joins a word or paragraph that a page break split. Where the rules leave a word wrong, or would change one the court printed correctly, I fix that one occurrence by hand, and the changes page lists every such correction. Past those repairs, the text keeps the court's spelling, punctuation and citations, and every paragraph's position refers to the repaired text.

Each source's record pins the SHA-256 of the text I serve, and validation fails for any source whose text no longer matches its pin. A correction that would change a pinned text waits until I can move the works drawn from that source onto the corrected text along with it.

Segmentation

A Supreme Court document usually holds several opinions, and a Tenth Circuit one sometimes does. The segmenter proposes where each of his opinions starts and ends, from the captions the court prints ("JUSTICE GORSUCH, dissenting."). A boundary stays a proposal until I confirm it by hand, and the table below counts how many I've confirmed.

The page view

For a public-domain PDF whose text I publish in full, I read the position of every word on each page and tie it to the text I serve, so a passage on an opinion page opens the court's page with the same words marked. A source gets a page view only when every character of its text maps to a word on the court's page, each of those words prints the text it's tied to, and the words under each work give back the work's own text. Where a source falls short (a word the PDF draws as an image, or a dash the extraction lost between italic and roman), it keeps its text and the download of the court's file, and it has no page view until I fix the alignment or look at the page and record why it can't align. The table below counts the sources that have one. A link made against an earlier version of the text still opens, with a notice that the passage it marks may not be the one the link pointed to.

The build

I build the site from the corpus with gorsuch-library, which is under the PolyForm Shield License 1.0.0. Every page is a file the build wrote, and nothing runs code on a server when you load one.

This build

Sources read by docling 2.113.0391
Files from www.ca10.uscourts.gov197
Files from www.supremecourt.gov158
Files from www.govinfo.gov17
Files I supplied by hand10
Wayback Machine captures with no address recorded5
Downloads with no address recorded2
Files from static.case.law1
Pages saved through a browser with no address recorded1
Boundaries I've confirmed0 of 335
Corrections to the text12
Sources with a page view141
Corpus commit133f93be68c2, October 2, 2026