Unseal.legal reads court records the way a careful clerk would — case by case, exhibit by exhibit — and surfaces the structural anomalies, statutory violations, and ethics flags that the courthouse can't afford to see.1
Read the methodology →A docket is a record of motion. Every filing, every order, every continuance has a date and a signature — or, conspicuously, doesn't. Read enough of them and patterns emerge that no individual lawyer in the room would ever notice: a judge who issues TROs that quietly outlive their fourteen-day statutory life;2 ripe motions that wait one hundred and twenty days for a ruling; cases that pass between courts without an order of transfer.
These aren't theories. They are arithmetic. The records exist. The statute exists. The Code of Judicial Conduct exists. What hasn't existed, until now, is the instrument that reads them all together and shows its work.
Unseal.legal is that instrument. It is built for attorneys, for judicial-reform researchers, and for the journalists who already know that something is wrong but cannot prove it in a form a State Commission will read.
Every finding passes through four layers of escalating scrutiny. Each layer produces its own artifact; each artifact is human-auditable; nothing is believed because a model said so.3
Every finding begins as a deterministic match against the literal text of the Texas statute, rule, or canon that governs it. No interpretation, no model judgment — each finding ships with its criteria, its absence checks, and its exclusions, and is fully reproducible from the same docket snapshot every time.
A pre-review agent reads the underlying PDFs, tests each Layer 1 claim against what the documents actually say, and assembles a marked-up review list. The reviewer never starts from a blank page.
An attorney or paralegal works the review list inside the Workbench. Each claim is confirmed, refuted, partially accepted, or escalated — with the reviewer's annotations preserved next to the original evidence, so every verdict is auditable.
The same checks run against adjacent judges' dockets so that every finding lands in statistical context. A pattern is only meaningful relative to a baseline; the baseline ships with the brief.
Fifteen patterns, four statutory and ethical domains. Every pattern is anchored to a specific section of the Texas Family Code, the Rules of Civil Procedure, or the Code of Judicial Conduct — never to a vibe.
TRCP_680_TRO_14DAYTRO exceeds 14 days without extension or order.TFC_6502_TEMP_INJMediation referral delays hearing >30 days.TFC_263401_DFPSDFPS one-year dismissal deadline.TFC_156_MOD_FINDModification orders missing required findings.CANON_3B1_HEARRipe motions unruled >120 days.CANON_3B8_EX_PARTEOrders entered without opposing-party notice.CANON_3B2_DILIGENCECases languishing past reasonable time.CANON_3C_RECUSALJudge hearing an associate's case.STRUCT_TRUE_LIMBOSix-criteria stuck-case definition.MEDIATION_DEAD_ENDTwo or more mediations, no Final MSA.HEARING_DRIFTThree or more continuances without orders.CHRONIC_RELITIGATIONThree or more post-decree modifications.STATUS_MISMATCHAdmin status disagrees with docket.MISSING_FILING_DATENo filing date in export.PARTY_DATA_INCOMPLETERequired party fields blank.IIngest → IIBuild → IIIDetect → IVAgent pre-review → VHuman review → VIJudge review.
build_sqlite.py → dockets.db (cases, parties, events, documents, text).agent_pre_review.py → review_todo_<case>.json (PDF-validated claims, agent-emitted).generate_brief.py → SCJC-formatted brief.A purpose-built UI for Layer 2 review. Each detector finding arrives at the reviewer as a structured dossier — never a chat transcript, never a wall of model output. Confirm, refute, partial, escalate. Move on.
# Mounts read-only data,
# writes Layer 2 to named volume.
export DOCKET_DATA_PATH=/path/to/docket_analysis
cd unseal-legal-workbench/docker
docker compose up --build -d
volumes: # read-only source - ./data:/data/ro:ro # Layer 2 write target - unseal-data:/data/rw
Source data never leaves your network. No cloud API calls.
# Open workbench open http://localhost:8000/app/ # API health curl http://localhost:8000/health # Run Layer 1.5 agent docker exec unseal-legal-workbench \ python /app/backend/agent_pre_review.py --all