You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Goal (per project charter): a database the ND Supreme Court could adopt as
authoritative — every opinion's text verbatim to what the court published,
metadata validated, the citation graph correct, the companion corpora certified,
and standing checks that keep it that way. This document is the complete open-item
inventory (reconciled against the TODO-* files, whose stale entries are flagged
at the bottom) and the phased plan to get there.
Definition of done ("fully validated"):
Every opinion's text_content verified against its authoritative source
(court PDF ≥1997; West .doc/bound reporter pre-1997), with a recorded
verification status.
All deterministic defect classes closed or reduced to documented,
individually-adjudicated holds.
Citation graph re-extracted under current jetcite with manual queues drained.
Metadata (captions, dates, dockets, panels, citations) validated against
independent authority.
Companion corpora (const/statutes/rules/admin/AG/figures) pass their own
validation suites, incl. second-engine extraction diffs.
A % validated metric wired into get_database_stats and an invariant
dashboard that regresses to zero on every mutation.
Phase 0 — Ship what's done (user action + hours)
#
Item
Notes
0.1
Release + server deploy DONE: v1.7.0 released 2026-07-15; server deployed by JT 2026-07-16 (verified live: 19,825 opinions, JEAC corpus, validated_by_decade).
0.2
Prune .bak-* snapshots
6 new backups from 07-14/15.
0.3
Retire TODO-distribution.md; refresh stale TODO items (list at bottom)
Bookkeeping so the open-item surface is honest.
Phase 1 — Opinion text fidelity, modern era residuals (days)
The modern era (7,232 opinions, P1–P80) is fleet-proofed. Residual classes:
Injected U.S.+S.Ct.-only pairs, S.Ct.+L.Ed.2d-without-U.S., first-series L.Ed., X U.S. at N, Y S.Ct. at M short-forms (id12428 class). Same hardened PDF gate. Plus re-check the 16 scotus window-only holds + 114 ndnw holds under phase-3 patterns.
1.3
[[Image here]] text restoration applyTEXT SIDE COMPLETE 2026-07-17: 1,141 ellipses applied 07-12, holds drained 07-15, and the 14 no-PDF 1997 opinions (19 placeholders) drained via archive evidence 07-17 (batch fix-imagehere-1997-archive-2026-07-17; incl. 2 KAT trademark figures → figures.db). Residue: 24 PDF-backed figure-side opinions → 5.7.
done
—
1.4
Footnote Phase 2cCOMPLETE: the 19 losses were restored 2026-06-23 (detector PRESENT=178/MISSING=0; this row was stale); 2222/4906 locality redos done 07-17 (batch footnote-locality-redo-2026-07-17). Remaining: Phase 2d analyzer fix (scraper repo) + parser span-bounding for the 59 mid-text westlaw footnotes.
done
—
1.5
1997 no-PDF cohortCOMPLETE 2026-07-16: C-Track PDFs LOST in migration (JT); archive-HTML gate + full queue drain + JT rulings 1–3 (West corrections govern ≤1997; Pavek = West; West omissions restored from archive). ~2,100 fixes, 101 sig blocks, 6 Dated/ATTEST blocks; all 125 promoted court_archive_html. Corpus 99.96% validated — remainder is the 3 Emmons 1900 bound-volume items (2.5) + 4 Westlaw shared-page flags (4.x).
CHANGELOG-data.md 2026-07-16
1.6
C1 em-dash holds
109 instances
Per-instance manual (line-wrap/ambiguous); or image-verify.
Phase 2 — Pre-1997 text fidelity (the big block, weeks)
Post-seg-B reality: 11,991 of 12,593 pre-1997 opinions are West-.doc-primary
(95%) — the deterministic diff method covers nearly everything; only 584
markdown (seg C) need LLM+human.
#
Item
Size
Method
2.1
Seg A close-out: ws-insensitive body-clean confirm (use gtimeout), front-matter strip pass (~237 diverged), 7 residual diverged, 8 promote-holds (merged-record class)
Ratify what the canonical body includes (syllabus, counsel lines, "Opinion of the Court by X") so the diff has a contract. Syllabus-cutoff question (§1): sample .docs at 1955/65/75/85/95.
2.3
Seg CDONE 2026-07-15 (evening): fleets segC1–2 sampled 215 (94% clean) → JT ruled deterministic for the rest (segc_md_db_diff.py): 577/584 DB==source, 7 KNOWN-OK, 1 print-verified fix (Bauer/Nestos); 579 promoted single_source_accepted. Quality ceiling = SOURCE OCR → N.W. page-scan acquisition is the upgrade path; 418 fleet flags feed the star-page/markup passes. See HANDOFF-2026-07-15b.md §3.
584
done
2.4
Cite-spacing pre-1997
~4,820 opinions deferred
Blocked on .doc space-drop (textutil). Options: RTF-native parser for spacing, or N.W.2d print spot-checks per (abbrev,year) class.
2.5
Bound-volume residuals
—
Hassen v. Salem N.D.-cite conflict (50 N.D. 825 vs 813) vs bound vol; 1890–1924 text-merge triage (455 rows).
2.6
Pre-1953 “Syllabus by the Court” completeness
—
Verify restored syllabi coverage vs Westlaw .docs (most restored in seg-A promotes; audit the remainder).
Const structural (#2): apply the 4 structural amendments upstream in ingest_constitution_history (done on scratch); clean 54 ndconst.org extraction artifacts; amendment-event dedup (#3); external census cross-check (#4, Blue Book/SoS); snapshot-harness filed holes (#5: art VII pre-1982 heads, art IV stubs, art V §14, art X decimals; 1942 BB acquisition).
5.3
Statutes/NDAC: regenerate ~/refs markdown with fixed converters + commit scraper fixes (PL-1b/c, PL-2) — re-ingest safety; PL-3 table-split tail (~5 sections); NDAC freshness pass (§20-03-01-02 may be stale); request native XML/ODT source from Leg Council (PL-SOURCE-FILES — retires the PDF-extraction bug class).
Prevention: pilcrow-OCR detection at ingest; scraper freshness heartbeat (>3wk alert); letter-spaced header cleanup in scraper; optional re-ingest tombstone guard.
6.5
SCHEMA.md data dictionary + db.py create_schema reconciliation (§11).
Decisions — RULED by JT 2026-07-15
Release v1.5.0 — SHIPPED 2026-07-15 (tag 355acb6, all 7 assets, marked
Latest). Server deploy: HOLD on v1.4.0 — do NOT run update-db.sh yet;
deploy with a later release at JT's call.
Citation hygiene: strip LEXIS only. Remove the CL-injected proprietary
LEXIS pointers (15,253 frontmatter). KEEP L.R.A. (real parallel reporter)
and A.L.R. (finding aid) — both reflect real historical publication.
Admin-order phantom cites: investigate then ingest. Fetch the ~14
documents from court records, ingest with a document-type flag (the
precedential_status pattern) so they're excluded from opinion statistics.
Seg-A front-matter contract: syllabus + counsel + body — the full
official report as the bound reporter printed it, minus West editorial.
Matches the existing pre-1953 syllabus policy.
Star-page mid-word convention: AFTER the word (informing [*214]) —
marker moves to the first word boundary after the true break; the split
word attributes to the earlier page; no-mid-word invariant preserved.
Replacement Vol 13: JT scans/photographs the disposition-table pages
from a library copy → ~/Downloads; we extract and build the lineage table.
C-Track PDFs: JT fetches manually. We generate the docket worklist
(triage/ctrack-pdf-worklist.tsv); JT pulls from C-Track and drops PDFs
in; we stage into ~/refs/nd/opin/pdfs/<year>/ and re-verify the
no_pdf-deferred fleet items.
Suggested sequence
Phase 0 immediately (release). Then run Phase 2.1 (seg A) as the backbone —
it's deterministic, covers 95% of pre-1997, and every other track can interleave:
Phase 1 items during seg-A batch waits; Phase 3.1 (cite re-extract) after any
big text wave lands; Phase 4/5 as evening/queue work; Phase 6.1 (the metric)
EARLY, not last, so progress toward "fully validated" is visible from now on.
Cursor as of 2026-07-16 (v1.8.0): THE VALIDATION LEDGER IS COMPLETE —
19,825/19,825 opinions carry an earned status; validated_by_decade reads
100.0% in all 14 decades. Phases 0–2, 1.5, 2.5's Emmons tail, and 6.1
are DONE (modern P1–P80, segs A/B/C, the 1997 no-PDF cohort via the
archive gate + JT rulings 1–3, the Emmons 1900 trio vs the vol 9 scan,
and the last 4 westlaw-receive flags). v1.8.0 released (all 8 assets);
server deploy of v1.8.0 pending (JT). REMAINING: Phase 1 residuals
(1.2 parallel Phase 3, 1.3 [[Image here]] holds — the 1997 placeholders
now have archive evidence, 1.4 footnote 2c), 2.4/2.6 residuals, Phase 3
(cite re-extract NOW STALE-DRIVEN: today's text wave touched ~130
opinions), Phase 4 metadata (+ execute the ruled LEXIS strip), Phase 5
companion certification, 6.2–6.5; JT style-slice decision (archive-style
edits applied pre-ruling-1). See HANDOFF-2026-07-16.md §3.
Stale TODO entries to prune (verified done as of 2026-07-15)
TODO-validation §17 item 3 "next = P46" → fleets DONE through P80; modern era complete.