Access to justice, as a plugin

Legal intake

oak-domain-legal-intake · PyPI

A second, unrelated domain on the same plugin system. Fair, accountable triage for legal aid, growing into a full access-to-justice service.

Business domain: Legal intake. The application features below apply to this domain.

oak-domain-legal-intake 0.22.0
Package
timber · grove · acorn · sky
Plugs into
intake · routing · guidance · deadlines · programs · cost · documents · fairness audit · directory upkeep · HSDS data layer · referral packets · wallet cards · translation
Live
none
Core edits

Legal intake is the second domain on the platform, and it has nothing to do with investing. That is the point. Legal-aid and pro-bono teams triage far more people than they can serve, and the quality of that triage decides who gets help. This domain is the foundation for doing it fairly and accountably, and it is growing into a full access-to-justice service for the people who need help and the advocates who serve them. Fairness is built into the schema. Today intake, smart routing, multiparty cases, deadline-first workplans, a merged case timeline, plain-language guidance, case-law lookup, staff-reviewed document assembly, legal-aid matching with eligibility and cost transparency, a verified deadline calculator, public self-serve find-help and eligibility tools, in-context conversations, and a full staff case workspace organized around a summary-first, tabbed view are live; the remaining flows below are in design.

What’s inside

Case intake

A matter in triage with operational fields only. No free-text columns of personal data.

Smart routing with an SLA

A ranked, explained suggestion of the right queue and person, routed to a real assignment with a deadline.

Multiparty cases

Every party on a case, applicant, opposing party, dependents, advocate, attorney, interpreter, with a merged timeline.

Deadline-first workplans

A sensible default activity set per matter, with hearings and hard deadlines that land on the shared calendar.

Fairness, observed

Protected attributes are isolated and read only by an admin-only disparate-impact audit, never by routing, and a guard keeps them out of any future learning.

Append-only logs

Event and outcome logs support contestability and audit, with no silent edits.

Unified data layer

A keyless pipeline normalizes public Open Referral and HSDS feeds into one standard, deduped and geocoded and upserted idempotently, so every tool draws from one clean, real dataset.

Why a second domain matters

One domain proves a pattern works for itself. A second, unrelated domain proves the pattern is general. Legal intake shares no code with investing, yet it plugs in the same way: one entry point per layer, models and services in the substrate, a router in the engine, a tool in the front door, no edits to the core.

Fairness in the schema

The design encodes fairness directly. Data is minimized to operational fields. Protected attributes live in an isolated audit field, never in the fields used for routing. A disposition records a referral, never a denial: help, not gate. The event and outcome logs are append-only, so a decision can be reviewed and contested.

What it does today

The instrumentation foundation still holds, cases, an append-only event log, human decisions with override capture, dispositions, and outcomes, so nothing automates a judgment without a record. On top of it, working flows are now live. Intake feeds a triage queue. Smart routing suggests the right queue and person and creates a real assignment with a deadline, reaching grove's shared assignment and SLA infrastructure through the core bridge rather than owning any of it. A case carries all its parties. A deadline-first workplan seeds the right activities for a matter, and hearings and hard deadlines land on the shared calendar. Everything that happens folds into one merged timeline, and staff and applicants can talk in context on the case itself. On top of that, plain-language guidance leads with the deadlines that decide cases, case-law lookup is a click away, and curated documents such as hardship letters and fee-waiver requests are assembled from case facts and held for staff review before anyone relies on them. Legal-aid matching returns real programs to contact, free and pro-bono first, with an eligibility estimate and a plain view of likely cost after free help. A deadline calculator turns the date on a notice into the response window from verified rules, and never guesses. A full staff case workspace, organized as a summary-first set of tabs, brings all of this together: a summary that leads with what to do next, and separate tabs for people, plan, deadline, help and cost, documents, and the timeline. And the same matching and eligibility engine is now open to the public with no account: anyone can find legal help near them by ZIP, or check their likely eligibility for free legal aid, in seconds. And for the people running the service, a fairness audit makes disparate impact observable: an admin-only, deterministic report computes four-fifths-rule ratios across protected axes on routing speed, resolution, and outcomes, honest about small samples, the one place protected attributes are ever read. And the directory keeps itself honest: an admin-triggered link-health sweep probes every URL and marks it ok, moved, or dead, while a scan of a public feed surfaces new programs to review, neither ever deleting or auto-adding anything. Underneath all of it, a unified data layer now stands: a keyless ingestion pipeline pulls public Open Referral and HSDS feeds into one open standard, deduped, geocoded with the free US Census geocoder, and upserted idempotently by source, so every tool above draws from one clean dataset that only ever holds real, authoritative entries. And an advocate can now hand a client something real: one click on a case produces a printable PDF referral packet that composes the ranked local providers, the verified deadline, and a matter-specific what-to-bring checklist, crisis contacts first, rendered by a shared substrate utility so no domain owns a PDF engine. A second click produces a compact wallet card, the two or three key programs plus the standing hotlines on a pocket-sized page an office prints in bulk. And language access is now first-class: an assembled document can be translated into the client's language, Spanish first, through the shared generator, landing as a new staff-review draft so a machine translation is never delivered until a human approves it.

Where it is going

The same foundation carries the rest. The flows below are in design.

For the team

  • A learning loop that learns which programs help which matters, from real outcomes, using operational features only.

The commitments underneath

Help, not gate. Safety first. Equal footing. Fairness, observed. Privacy by design. Not legal advice. These are rules the software enforces, not slogans.

Plugs into