Qollqa Register · machine-citation findings

Corrections

What happens when the register is wrong.

The commitment

An entry found to be wrong is corrected in the next revision, the correction is described in the revision history, and the superseded revision stays available with its original hash. A correction is never made silently and a superseded revision is never overwritten.

What a correction looks like

Reporting something wrong

Write to [email protected]. A report is most useful with the entry identifier and the document that contradicts it. The register answers; it does not promise to agree.

Where a report concerns a person rather than an entry — a name that should not appear, or a court's anonymization that was not preserved — it is treated as urgent and handled before the next scheduled revision.

What is not a correction

A disagreement with the methodology is not a correction and is not handled here. The methodology is published for comment and changes by version, not by request.

Corrections issued

Every correction the register has made to something it published, in order. The policy above says a correction is never silent; this is where that is kept.

C-2026-001 · issued 2026-09-18 · corrected in revision 3

G.P. v. Jose Hernandez Arevalo — AMC entry matched to the wrong court file

What was published: Matched to a D. Arizona bankruptcy docket of 2024, on a caption whose names had been reordered.

What it now reads: Match rejected, then the entry REFUTED outright: docket 2:26-cv-00284-KKE (W.D. Wash.) was purchased and retrieved in full, 124 entries, and contains no adjudicated finding.

How it was found: Read against the docket rather than the caption.
What was added so it cannot recur: Court agreement required between the matched docket and the entry's stated court.

C-2026-002 · issued 2026-09-18 · corrected in revision 3

Tiffany K. v. Commissioner of Social Security — wrong court file

What was published: Matched to a W.D.N.Y. docket of 2022 on a caption that recurs across the Social Security docket.

What it now reads: Confirmed to 2:25-cv-10319 (E.D. Mich.), CourtListener 69606633, from the opinion itself.

How it was found: The caption is one of the most common in the federal system; it was re-read against the opinion.
What was added so it cannot recur: Non-unique captions are flagged rather than matched on score alone.

C-2026-003 · issued 2026-09-18 · corrected in revision 3

James F. v. Commissioner of Social Security — wrong court file, inside the confirmed set

What was published: Confirmed at match score 0.992 to 2:21-cv-10006.

What it now reads: Re-confirmed to 1:26-cv-10137, CourtListener 72143996, from the opinion itself.

How it was found: Read against the opinion. THE SERIOUS ONE: it sat inside the confirmed set, and the court-agreement guard added after C-2026-001 did not catch it, because both dockets are Eastern District of Michigan.
What was added so it cannot recur: A high score is not identification; the sub-floor and caption-uniqueness rules were both tightened.

C-2026-004 · issued 2026-09-20 · corrected in revision 4

A published verification rate that no build had produced

What was published: 88.3 percent, 323 of 366.

What it now reads: RETRACTED. The figure was reached by taking 319 and adding four entries resolved by hand in prose; the addition was never written into the dataset, so no build could emit it.

How it was found: Reconstructing every figure from the source files: 323 is not reachable under any combination of match class and residual rule.
What was added so it cannot recur: check_figures.py — no document may state a figure the generator did not produce.

C-2026-005 · issued 2026-09-21 · corrected in revision 10

AMC-FED-0292, Perez-Castillo v. Blanche (7th Cir.) — the first amount the register had published that was wrong

What was published: $4,997.

What it now reads: $5,000. The published opinion says so three times, and the reading is now confirmed against the court's own document (21 pp, SHA-256 7833e284…).

How it was found: Not by audit. Another appellate court's sanctions order described this sanction, the description did not match the register, so the opinion was read. One appellate court describing another's sanction is a cross-check nobody designed.
What was added so it cannot recur: amount_status, which records whether an amount has been read against the issuing order. Blank is the honest default and is the state of most amount rows.

C-2026-006 · issued 2026-09-21 · corrected in revision 11

AMC-FED-0101, Mattox v. Product Innovations Research (E.D. Okla.) — an amount that no respondent was ordered to pay

What was published: $29,495, on an entry that carried no docket number at all and stood unresolved.

What it now reads: $29,495.90, and it is an AGGREGATE ACROSS FIVE RESPONDENTS, not a sanction anyone owes: $3,000, $2,000 and $1,000 on three attorneys individually, nothing on a fourth, and $23,495.90 in fees joint and several between two firms at $11,747.95 each. The entry is also now confirmed to its issuing docket, E.D. Okla. No. 6:24-cv-235-JAR, ECF 148, from the court's own order.

How it was found: The order was read at source. The figure is the true total rounded down, which is how a five-respondent order became one number.
What was added so it cannot recur: penalty_respondents, and a companion file carrying one row per respondent. Where penalty_respondents exceeds 1, the amount is a total no single respondent owes.

C-2026-007 · issued 2026-09-21 · corrected in revision 11

AMC-FED-0216, Whiting v. City of Athens (6th Cir.) — an amount that is both an aggregate and an understatement

What was published: $30,000, unqualified.

What it now reads: $30,000 is $15,000 on each of two people, separately and individually. It is also an understatement: the same order requires them jointly and severally to reimburse the appellees' full reasonable fees in three appeals and to pay double costs, neither quantified because the accounting was not yet due. Marked partly_quantified.

How it was found: The order was read at source.
What was added so it cannot recur: amount_status partly_quantified, for an order that imposes further remedy it does not put a number on.

C-2026-008 · issued 2026-09-21 · corrected in revision 11

The 544 — a figure whose number is right and whose label was wrong

What was published: 544 self-represented litigants, 59.8 percent of the 910 US-federal incidents. It appeared under that label in the Rules Committee transmission note and in the canonical figures file.

What it now reads: 544 incidents that are NOT PROFESSIONAL-PARTY. It is a residual, not a count of self-represented litigants: 543 rows carry the party value 'Pro Se Litigant', and one carries no party value at all and falls here only because the professional population excludes it.

How it was found: Reconstructing the US-federal selection rule so that 910 and 544 could be generated rather than carried by hand. The rule reproduces 910 exactly and reproduces the 366-row professional population row for row; the split showed 543 and 1, not 544.
What was added so it cannot recur: The selection rule is written down in emit_figures.py and asserted at build time against the matcher's own population, in both directions. Anyone citing 544 as a pro se figure was citing something slightly different from what they thought.

The number does not move. What moves is what it means — which is the same shape of error this register exists to catch, and is logged here rather than quietly amended.

C-2026-009 · issued 2026-09-21 · corrected in revision 12

AMC-FED-0020, Wadsworth v. Walmart Inc. (D. Wyo.) — a third aggregate recorded as one amount, and the first defect a tool found

What was published: $5,000, unqualified.

What it now reads: $5,000 is the TOTAL of three separate penalties and no respondent owes it: $3,000 on Rudwin Ayala, $1,000 on T. Michael Morgan and $1,000 on Taly Goody, each payable into the Registry of the Court within fourteen days. Ayala's pro hac vice admission was also revoked and he was removed as counsel of record. Both law firms were EXPRESSLY NOT sanctioned — the court declined even to order them to show cause, on evidence of training and verification controls already in place.

How it was found: By the cross-citation check, not by audit and not by hand. It compared what other courts say about this sanction against what the register records and flagged the row twice, from two independent courts — Dodge (D. Ariz.) and Mattox (E.D. Okla.) — each describing $3,000 plus $1,000 rather than $5,000. The issuing order was then read: D. Wyo. ECF No. 181, 24 February 2025, 17 pp, retrieved free from the public docket. The describing courts were right.
What was added so it cannot recur: The cross-citation check itself, now running in the build gate against a baseline so that a NEW disagreement stops the build. This correction is the first it produced.

The number does not move. Its shape does, and the per-respondent breakdown is in amc-registry-respondents-v1.csv. This is the fourth instance of the same defect — after Mattox, Whiting and D'Ambrosio — which is no longer a run of coincidences but the ordinary shape of a sanctions order meeting a single scalar field.

C-2026-010 · issued 2026-09-21 · corrected in revision 14

A claim this register published about itself, in the note announcing a resolution

What was published: Revision 13's note and AMC-FED-0015's adjudication both said that resolving United States v. Hayes closed 'the last row in this register with no docket number at all.'

What it now reads: FALSE. Forty-three rows carry no docket number; forty-two of them are unresolved, which is the honest state for a row nobody has matched. Hayes was one of nine paid-retrieval candidates, not the last row of anything. Everything else recorded about that row stands and was read from the order.

How it was found: By counting, immediately after publishing it. The claim sounded checkable, was not checked, and was wrong — which is the class of error this register exists to catch, made by the register about itself.
What was added so it cannot recur: None yet. A claim in prose about the state of the register is not a figure, so the figure checker does not see it. That gap is recorded rather than closed.

The revision 13 release is anchored and is not rewritten. The correction is carried forward in revision 14 and logged here.

C-2026-011 · issued 2026-09-21 · corrected in revision 14

AMC-FED-0139, Cruz v. United States — a confirmed entry matched to the wrong court file, in the confirmed set since revision 3

What was published: status=confirmed_docket at match score 0.961, with an EMPTY docket number and only a CourtListener docket id.

What it now reads: MATCH STRUCK, NOT REPLACED; the entry returns to the unresolved set. CourtListener docket 62846413 is 'CRUZ, ET AL v. UNITED STATES OF AMERICA', C.D. Cal., FILED 23 JANUARY 2012, and carries no docket number there either. The entry's decision date is 16 December 2025 — a thirteen-year gap on one of the most common captions in the federal system.

How it was found: By guard G10, added one revision earlier for a different reason: a confirmed row must carry the docket number it is confirmed to. It fired on this row and on no other. WHY NOTHING CAUGHT IT FOR ELEVEN REVISIONS: the age-gap guard reads the filing year out of docket_number, so an empty field silently disabled the very rule that would have caught it.
What was added so it cannot recur: G10, a FAIL rather than a warning. An empty field must not be able to switch a guard off.

Confirmed goes 322 to 321 and the seam 323 to 322, which withdraws the 88.3% collision created one revision earlier. Nothing about the 20 September retraction was reconsidered — a row that should never have been in the confirmed set left it.

C-2026-012 · issued 2026-09-21 · corrected in revision 14

The build announced deliverables it had not written

What was published: Nothing was published wrong. But build.sh printed 'built <name>' for each of eight deliverables whether or not the file was produced: pandoc and weasyprint errors went to /dev/null and the line printed unconditionally. At revision 14 two of the eight — the carrier brief and the contributor-report specimen — were left untouched at their revision-12 content while the build reported ALL BUILT.

What it now reads: build_one checks the exit status of each of the three commands and then checks that every output file is NEWER THAN THE MOMENT THE RUN BEGAN. A stale file stops the build with the name of the deliverable and the first lines of the captured error. Deliverables are verified by content time, never by the fact that a command was issued.

How it was found: By checking the deliverables after a passing build instead of trusting the build's own report — the file times showed 04:55 against a 15:49 run.
What was added so it cannot recur: In build.sh: per-command exit-status checks plus a freshness assertion on every emitted PDF and DOCX.

No stale deliverable left this desk: the paper carries its revision in the filename, and the two stale files were caught in the same session they were produced. The defect is recorded because the failure mode — a green report over an unwritten file — is the same one the figure gate exists to prevent, appearing one layer further out.

C-2026-013 · issued 2026-09-21 · corrected in revision 19

AMC-FED-0144 — the register overwrote a source-vocabulary field on its own reasoning

What was published: ai_tool='Unidentified' from register revision 16 through revision 18. The source compilation records 'Implied' for this incident.

What it now reads: ai_tool='Implied', restored to the source value. The finding that prompted the change is kept in the row's adjudication, where it belongs: the words 'artificial intelligence', 'AI', 'generative' and 'hallucination' appear nowhere in ECF 46 or ECF 47, and no court has found AI use in this matter.

How it was found: By reading the definition of the field while assessing a different document. 'Implied' means a machine was inferred and no system was named — which is the accurate description of a matter where no court mentioned AI at all. Revision 16's reasoning was backwards as well as out of bounds.
What was added so it cannot recur: G11 — ai_tool must equal the source compilation's value for the matching (case name, decision date). FAIL, not warning.

NOTHING CAUGHT THIS FOR THREE REVISIONS because 'Implied' and 'Unidentified' are both non-attributions inside the same 283 unattributed total: the edit moved no figure and tripped no rule. A field can be wrong in a way no total can see, and the only thing that sees it is a comparison against the source. The rule this establishes: the register classifies the compiler's values and adjudicates rows beside them; it does not author them. A finding goes in the adjudication, never on top of a source field.

C-2026-014 · issued 2026-09-21 · corrected in revision 19

The published revision history stopped five revisions short of the data it accompanied

What was published: qollqa.org served register revision 19 — correct figures, correct data files, correct manifest — with a revisions page whose changelog table ended at revision 14. Revisions 15, 16, 17, 18 and 19 had no entry saying what changed in them. That covers both sanctions proceedings carried from finding to disposition, the suspension from practice, the discharge, and correction C-2026-013.

What it now reads: The changelog carries a row for every revision from 3 to 19.

How it was found: By reading the deployed page after the upload rather than trusting that the deploy had published everything. The landing figures and the corrections page were both correct, which is what made the gap easy to miss.
What was added so it cannot recur: site/build.py refuses to build when the changelog's highest revision is not the revision being served, or when it skips any revision in between. Negative-tested by removing revision 17: exit 1.

THE FIGURE GATE COULD NOT SEE THIS. A missing changelog row is not a wrong figure, so nothing in the build objected — the same class as C-2026-010, where a false prose claim about the register's own state passed every check. The register's verification machinery watches numbers and the completeness of its own account of itself is not a number. This is the second correction in two days whose lesson is that a published claim about the register is not covered by the gate that covers published figures.

C-2026-015 · issued 2026-09-22 · corrected in revision 19

The entries page served a retracted figure for sixteen revisions

What was published: qollqa.org/register/ — the page that carries the register itself — stated "322 incidents are confirmed to the docket the sanction issued from" and "The broader figure is 323 of 366, 88.3 percent". 323 and 88.3% are the pair this project retracted outright, and 88.3% is named as retracted in the register's own revision history on the adjacent page. The landing page, the methodology page and the revisions page were simultaneously serving 321, 322 and 88.0%, so the site contradicted itself on its central figure. The row data on that page was also frozen at the same earlier revision.

What it now reads: The entries page states 321 confirmed to the issuing docket and a broader figure of 322 of 366, 88.0 percent, taken from canon at build time, with the revision 19 row data.

How it was found: While restyling the site. The entries page was found to carry its own stylesheet, so its generator was re-run to bring it onto the new one — and the regenerated page's figures did not match the deployed page's. The figures, not the styling, were the finding. Confirmed against the live page before anything was changed.
What was added so it cannot recur: site/build.py no longer copies the entries page as-is: it runs registry/page.py, then refuses to build if any "N of 366, R percent" in the result disagrees with canon, or if the confirmed-to-docket count does. Negative-tested by hardcoding the retracted 323 / 88.3 pair into the generator: the build refused and named the figure. (G12)

NEITHER THE FIGURE GATE NOR ANY GUARD COULD SEE THIS. The gate reads prose and canon; this page was neither — it was an opaque input the build trusted, described in the build script itself as "generated separately and reused as-is". Every figure on it was correct on the day it was generated. The defect was not a wrong number written anywhere: it was a generated artifact treated as a source file. A build that copies something it could have produced is publishing a claim about when that thing was made.

C-2026-016 · issued 2026-09-23 · corrected in revision 20

The published manifest names the machine that built it

What was published: qollqa.org/data/MANIFEST.json carries a "source_revision" object whose "path" field is an absolute filesystem path on the machine that built the release — the build host's home directory, the account it runs under, and the directory layout beneath it. The field records the source revision by the path the generator opened rather than by a publication-relative name. Every revision generator from v10 to v19 emits the same line, so it has been published for ten revisions. The path itself is not reproduced here: a correction that discloses a leak should not republish it.

What it now reads: Unchanged at revision 19, and deliberately so. The revision 19 manifest, SHA-256 7c0726fa2b3f843bcb972de3fb107897ebabd8804ab16a25c2270eaf1f2ce7f0, is committed by Bitcoin block 968,034. This project does not overwrite an anchored release, and editing the file to remove the path would invalidate a confirmed attestation in order to tidy a field that carries no proof. The path is disclosed here instead and removed at revision 20, whose manifest records its source revision by a publication-relative name. The sha256 beside the path is what anchors the chain; nothing in the project reads the path, and the published verification instruction uses only sha256sum and ots verify.

How it was found: A sweep of every public-facing surface for proprietary and internal information, run on 22 September 2026 at the reader's instruction. The register's own pages, stylesheet and robots.txt were clean; the leak was in the data directory, which the first pass of the sweep had not covered because it swept rendered pages rather than published files.
What was added so it cannot recur: G13. The build refuses to publish when any file bound for the served directory names a build-host path — home directories, the superuser's directory, Windows user profiles, container scratch mounts, temporary directories or environment-file references. Negative-tested in both directions: it catches all six leak shapes tried and stays clear on the published system registry's vendor names, statutory citations and CourtListener docket URLs, which a blunter pattern would have flagged. The anchored revision 19 manifest is exempt by an entry pinned to its exact sha256, so any change to those bytes re-arms the gate, and that entry is to be deleted rather than updated when revision 20 ships.

The gate is scoped to filesystem paths only. This register's subject matter is AI systems and it publishes a registry naming them, so widening the pattern to vendor strings would make the build refuse to publish the register's own content. The gate first fired on this correction: the entry as originally written quoted the offending path verbatim and named the pattern's own elements, and the build refused it. Disclosure of a leak is not republication of it, and the entry was rewritten to describe the field rather than reproduce it.