Donna does the work you bill for. Donna handles the work you hate.
Open-source Texas family-law assistant for solo divorce attorneys and small-firm paralegals. Drafts pleadings with TX Family Code citations. Walks new-client intake. Knows your local rules in Harris, Dallas, Bexar, Travis, and Tarrant — and flags when she doesn't for the other 249 counties.
- Live: donna.dashable.dev (when deployed — see DEPLOY.md)
- License: MIT
- Forked from: Will Chen's Mike — credit in ATTRIBUTION.md
- Stack: Next.js 16 · TypeScript strict · Tailwind 4 · Anthropic SDK (default) · Cloudflare Pages
- Also available as a Claude Code skill:
~/.claude/skills/donna/SKILL.md(invoke/donnain any session)
- Drafts an Original Petition for Divorce with TX Family Code § 6.001, § 6.301, § 7.001 cites in the right places. Scaffold for Respondent's Answer, Motion for Temporary Orders, SAPCR Petition, and Modification Petition use the same shape.
- Walks new-client intake — matter type, venue, parties, marriage/separation dates, children, UCCJEA flags, protective-order history, conflict-check list — and emits a structured JSON matter record.
- Applies county overrides for Harris, Dallas, Bexar, Travis, and Tarrant: courts that hear family law, standing orders, mediation rules, eFiling notes, caption conventions.
- For the other 249 counties: returns a
populated: falsewarning so the lawyer knows to confirm local rules before filing. - Voice: calmly competent. Never sycophantic. Never invents a statute. Every draft ends with
// Donna draft — review before filing.
These are tracked in brief.md as v0.2 work, not v0.1:
- Voice-match from uploaded prior pleadings (extract style → inject into prompt).
- Conflict-check engine with CSV-import fuzzy matching.
- TX family-law deadline tracker (60-day notice, 30-day temp orders, 6-month residency, etc.).
- Auto-generated case-management chart for first hearing.
- Clio / MyCase / PracticePanther integrations (CSV import works as fallback).
- Gemini and BYO API key toggle (Anthropic is the only enabled provider in v0.1).
- Full 254-county local-rule corpus (only the top 5 are populated).
pnpm install
cp .env.example .env.local # add ANTHROPIC_API_KEY if you have one
pnpm dev # http://localhost:3000Without ANTHROPIC_API_KEY:
/api/draftstill returns the full template scaffold (TX Family Code cited, county overrides applied). You don't get Donna's prose pass./api/intakereturns an "offline" reply directing you to the draft page.
With ANTHROPIC_API_KEY:
- Drafts get a polished prose pass via
claude-sonnet-4-6. - Intake runs as an interactive chat using Donna's intake persona.
See DEPLOY.md. Cloudflare Pages via @cloudflare/next-on-pages.
A companion skill is installed at ~/.claude/skills/donna/SKILL.md. Any Claude Code session can invoke /donna and get the same persona, citation conventions, and county quick-reference inline — no separate runtime, no web app needed.
PRs welcome. Highest-value contributions right now:
- County coverage. Adopt your county. Add a populated
lib/corpus/county-overrides/<county>.tswith the local rules + standing orders. - Pleading templates. v0.1 ships the divorce petition only. The shape is in
lib/templates/divorce-petition.ts; clone it for the other types listed inlib/draft.ts. - Voice match. The hook in
draft.tsaccepts avoiceMatchProfilestring. Build the extractor inlib/voice-match.ts.
- Not a lawyer.
- Not a replacement for your judgment.
- Not legal advice to non-lawyers — this is a tool for lawyers.
MIT © 2026 Stephane Boghossian. See LICENSE and ATTRIBUTION.md.