尚未检测到更新。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]