尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證A navigator for the public record — state appellate court opinions, organized.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
A navigator for the public record — state appellate court opinions, organized.
State appellate research has historically been dominated by paid databases.
DocketDrift collates published opinions from official sources, normalizes them
into a structured archive, and makes patterns in judicial decisions easier to
find and read together. It is a solo project, and it is free to use.
DocketDrift does not generate text. There is no chat box, no "summarize
this for me," no synthesized holdings, no drafted prose anywhere on the site.檢視完整 README ↗A navigator for the public record — state appellate court opinions, organized.
Live: docketdrift.com · Minnesota · New Hampshire · Arizona
State appellate research has historically been dominated by paid databases. DocketDrift collates published opinions from official sources, normalizes them into a structured archive, and makes patterns in judicial decisions easier to find and read together. It is a solo project, and it is free to use.
DocketDrift does not generate text. There is no chat box, no "summarize this for me," no synthesized holdings, no drafted prose anywhere on the site.
That is a deliberate architectural commitment, not a roadmap gap. Generative legal tools have been documented to fabricate case citations at meaningful rates; the failure mode is the same behavior that produces the fluent prose in the first place. A system that cannot produce text cannot produce a fake citation.
Machine learning appears in exactly two places:
voyage-law-2 embeddings (1024-dim) stored in
MariaDB's native VECTOR column. A query vector is compared to opinion
vectors by cosine similarity; the output is an ordered list of real opinion
IDs. No text is generated.AUTO_APPLIED for audit; below it, the suggestion
enters a human review queue.Everything else — case number, release date, disposition, panel composition, statute citations, holdings — is deterministic extraction over the published text. Either the pattern matches or it doesn't.
The "The holding" panel is the one surface that looks generated and isn't: it quotes the court's own holding sentence verbatim (courts announce holdings in a small, stable phrase set — "we hold that…", "we conclude that…"). When no such sentence exists, the panel does not render. A blank holding is honest; a guessed one is not.
Users are lawyers, and a lawyer's research trail is work product that can be subpoenaed. The posture is architectural rather than promissory: we cannot produce what we never stored.
DocketDrift stands substantially on the work of the Free Law Project:
Free Law Project's eyecite is vendored but not wired into any production code path — a measured bake-off against our extractors found it would add about 1% of resolved citation targets while losing docket-format citations entirely (the only key that reaches unpublished opinions). The write-up lives in the project notes; the decision is revisitable if treatment quality ever outranks graph size.
As of August 2026 — 128,000+ opinions across the three live states, all embedded for semantic search.
| Minnesota | New Hampshire | Arizona | |
|---|---|---|---|
| Opinions | 69,607 | 20,682 | 37,834 |
| Date range | 1851–present | 1843–present | 1866–present |
| Dispositions parsed | 97.9% | 78.4% | 64.2% |
| Reporter cites | 80.4% | 90.2% | 74.9% |
| Judges | 119 | 37 | 169 |
| Panel votes | 32,291 | 17,736 | 29,195 |
Plus a 1.45-million-edge citation graph (bulk-derived breadth + text-extracted edges carrying verbatim citing passages and treatment classification) and ~45,000 verbatim-extracted holdings.
Stated plainly, because silence reads as completeness:
Django 5.2 · MariaDB 11.7 (native VECTOR) · PyMySQL · gunicorn · HTMX where it
earns its keep. No SPA, no build pipeline, no JavaScript framework. Server-rendered
templates and server-rendered SVG charts.
Deployed on NearlyFreeSpeech.NET shared hosting, which shapes several design decisions — no numpy (the FreeBSD wheels are broken), no resident daemons (a ~10-minute wallclock cull), and a 25-second statement timeout that batch commands must lift explicitly.
Requires Python 3.11 (production pins to it; 3.12+ f-string syntax will not run there). Local dev defaults to SQLite, so no database server is needed.
python -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env
python manage.py migrate
python manage.py runserver
State subdomains are resolved by middleware from the Host header, so to see a
state site locally, browse via a hostname like mn.localhost:8000 (the apex
localhost:8000 renders the state picker).
python manage.py check runs the project's own system checks, including a
deploy-blocking guard against multi-line {# … #} template comments — Django
only supports those on a single line, and a multi-line one renders as raw page
text to the user.
Issues and pull requests are welcome. Two standing constraints on any change:
New dependencies with C extensions need a FreeBSD-compatibility check before they can ship.
GNU Affero General Public License v3.0 — the same license CourtListener uses. If you run a modified version of this software as a network service, the AGPL requires you to offer its source to your users.
Opinion text itself is the public record and is not covered by that copyright.
Errors in an opinion record, a judge bio, or a search result: [email protected]