Dossier — Product Scope
Feature inventory grouped by logical area. Every row is tagged with the phase it belongs to.
Phase tags:
- MVP — must-have for launch. The product isn't credible without it.
- P1 — Phase 1: LLM Case Assistant. AI-powered intake, document understanding, validation, drafting.
- P2 — Phase 2: court integration, enterprise, integrations, advanced platform.
At a glance
| Phase | What it unlocks | Headline features |
|---|---|---|
| MVP | A firm runs their bankruptcy practice end-to-end: intake → forms → filings → daily ops | Engine, cases, filings, datasheet, tasks/calendar/contacts/billing, branded portal with wizard intake, root admin, public site |
| P1 — LLM Case Assistant | AI handles intake conversation, extracts data from uploaded documents, drafts summaries, flags issues | Chat + voice intake, document auto-extraction, conversational case Q&A, smart validations, auto-drafted summaries |
| P2 — Future | Paperless filing pipeline, enterprise deployment, third-party integrations, full reporting | E-filing, PACER sync, hybrid deployment, granular roles, calendar/email/payment integrations, analytics |
Core Engine
The IP. Domain-agnostic. Everything else is built on top.
| Feature | Description | Phase |
|---|---|---|
| Expression engine | Tokenizer, parser, evaluator with type coercion; 28 Excel-style functions; AST cache; cycle detection; $child.field / $.field / array [] syntax |
MVP |
| Schema (data vocabulary) | Named collections of typed data points; groups, namespaces, imports; flatten + validate; schema registry | MVP |
| Form model | Recursive composition (leaf with PDF + composite with children); AcroForm field extraction (key, type, page, rect, label) | MVP |
| Binding resolver | Routes schema keys → form fields; source-of-truth merge across entries | MVP |
| Condition checker | Gates fields/forms based on expressions | MVP |
| Validator | Severity-graded validations; readiness scoring | MVP |
| PDF fill | pdf-lib AcroFields (text, checkbox, radio, dropdown) | MVP |
| PDF export | Merged PDF and ZIP-of-PDFs | MVP |
| Form content library | 69 federal leaf forms + 19 composites + GA/IL/TX local forms (PDFs + JSON definitions) | MVP |
| Schema content library | 26 bankruptcy concept JSONs + shared concepts (address, signature, state, district) | MVP |
| Data sources (import recipes) | Reusable adapters: credit-report, Clio API, 4 intake configs | MVP |
| Dynamic PDF renderer | Generate PDFs from scratch for variable-length tables (creditor lists, claim schedules) where AcroForm fails | P2 |
Case Management
The runtime where firms actually do work. Built on the engine.
| Feature | Description | Phase |
|---|---|---|
| Cases | Client matters: schema, status, references (Case #, Docket #), key dates | MVP |
| Filings (Files) | Filed documents within a case; draft → filed snapshot model; amendments and conversions | MVP |
| Entries | Batch data changes, source-tracked, audit-ready | MVP |
| Datasheet (data entry) | Split-pane: form fields left, live PDF preview right, validation panel, drift indicators | MVP |
| Field ↔ PDF coordination | Click a field, the rect highlights on the PDF preview | MVP |
| Cases list | Status filters, search | MVP |
| Case detail shell | 11-tab transforming sidebar (Core / Support / Tracking / Actions), nested routes | MVP |
| History (audit trail) | Auto-generated entries on every mutation: data changes, imports, status transitions, filings | MVP |
| Forms library | Per-case + tenant-wide form browsers with tag filters | MVP |
| Dashboard | Stats, quick actions, recent cases, activity feed, upcoming deadlines | MVP |
Daily Workflow
What makes a case-management product, not just an assembly engine.
| Feature | Description | Phase |
|---|---|---|
| Tasks | To-dos with assignee, deadline; surfaces in calendar | MVP |
| Notes | Freeform timestamped entries on a case | MVP |
| Events / Calendar | Case-level + firm-wide; Google-style week/month, upcoming sidebar | MVP |
| Contacts (Associated Parties) | Tenant-wide directory; schema-defined roles (Debtor, Attorney, Trustee, Judge); role filters | MVP |
| Documents / Attachments | Required-document checklist (schema-driven) + ad-hoc uploads; category tagging | MVP |
| Billing | Per-case fees, payments, time entries; firm-wide receivable/collected/overdue/outstanding | MVP |
Client-Facing (Portal & Intake)
External-facing data collection.
| Feature | Description | Phase |
|---|---|---|
| Branded client portal | Tenant-branded shell, theme resolution, login, dashboard, complete page | MVP |
| Wizard intake | Multi-step + review (primary mode) | MVP |
| Grid intake | Compact tabular entry for paralegals doing manual transcription | MVP |
| Embeddable widget | <script> drop-in on tenant sites; bubble + entry + panel; cross-origin loader |
MVP |
| Shareable intake links | Per-case link with permissions | MVP |
| Spread intake | Spreadsheet-like bulk entry mode | P2 |
| Chat intake | LLM-driven conversational intake — natural-language Q&A drives schema entries | P1 |
| Voice intake | LLM + speech recognition — debtor speaks answers, system fills schema | P1 |
LLM Case Assistant
The Phase 1 wave. AI augments — never replaces — the firm's judgment.
| Feature | Description | Phase |
|---|---|---|
| Document auto-extraction | Upload pay stubs / tax returns / IDs / bank statements → entries appear in schema with provenance | P1 |
| Court notice understanding | OCR + extraction on uploaded notices to create tasks, calendar events, history entries | P1 |
| Conversational case Q&A | Ask "what's missing on this case?", "explain this exemption", "what should be on Schedule J?" — answers grounded in case data | P1 |
| Smart validations | LLM cross-checks data against case narrative — flags inconsistencies a rule-based validator misses | P1 |
| Auto-drafted summaries | Case briefs, hearing prep, status reports generated from case data | P1 |
| Suggested next actions | "You're missing two pay stubs", "Consider claiming homestead exemption", "Schedule a 341 hearing" | P1 |
| Form suggestion | Recommend which forms apply given case facts (Ch. 7 vs Ch. 13, which schedules, which local forms) | P1 |
Court Integration
Closing the loop with the court system. Paperless practice.
| Feature | Description | Phase |
|---|---|---|
| E-Filing pre-flight | Checklist UI + document list before submission | MVP |
| E-Filing submission | Validate → upload to CM/ECF → receive case # + receipt | P2 |
| PACER sync | Import docket entries as a DataSource with side effects (history, tasks, calendar, attachments) | P2 |
Platform & Multi-Tenancy
Cross-cutting plumbing.
| Feature | Description | Phase |
|---|---|---|
| Authentication | JWT access + refresh, BCrypt, sign-in/up/out, /me |
MVP |
| Multi-tenancy | tenantId scoping on every query, require-root policy |
MVP |
| Observability | OpenTelemetry traces + metrics, Pino structured logs, Aspire dashboard | MVP |
| Roles & permissions | Granular per-tenant access (attorney, paralegal, admin, read-only); control filing/edit/delete/export | P2 |
| Hybrid deployment | Cloud (SaaS), Vault (firm Docker + cloud processing), Sovereign (full on-prem); requires request-scoped DB connections | P2 |
Admin & Marketplace
Tools for managing the platform itself.
| Feature | Description | Phase |
|---|---|---|
| Root admin app | Schemas, forms, tenants, data sources management; specialist tooling (expression-input, pdf-field-overlay drag-to-rect, graph-canvas, test runner, tree visualizer, upload + PDF field overlay) | MVP |
| Marketplace | Tenant-visible catalog of published platform forms; clone-to-tenant on adoption | MVP |
| Reports / Analytics | Firm-wide metrics: cases filed/month, aging, fill progress, revenue; dashboard widgets | P2 |
Tenant App Surface
The standard SaaS surface area.
| Feature | Description | Phase |
|---|---|---|
| Layout & navigation | Collapsible sidebar with icon rail, top action bar, theme toggle (light/dark), layout toggle (sidebar vs topbar) | MVP |
| Search | Top-bar search with results dropdown | MVP |
| Notifications | Top-bar dropdown with notification items | MVP |
| Quick Actions | + New menu (New Case, Quick Note, Log Time, New Contact) | MVP |
| Settings | 8 sub-pages: Profile, Appearance, Firm General, Users & Permissions, Import Sources, Subscription, Payment Method, Invoices | MVP |
| Help | 30 articles across 14 sections; searchable, section-filterable | MVP |
Integrations
External systems Dossier hooks into.
| Feature | Description | Phase |
|---|---|---|
| Calendar integration | Google / Outlook OAuth, bidirectional sync; sovereign firms bring own credentials | P2 |
| Email integration | SMTP/IMAP per case; sovereign firms bring own credentials | P2 |
| Invoicing / payment processing | Stripe; payment plans; balance tracking | P2 |
| Client messaging | Secure SMS/email tied to case history | P2 |
Marketing & Documentation Surfaces
External and internal-facing static sites.
| Feature | Description | Phase |
|---|---|---|
| Public website | Marketing home, features, for-lawyers, solutions, pricing, deployment, security, compare, legal; 5 vertical case studies | MVP |
| Surfaces index | Single static hub linking every Dossier surface | MVP |
| Private docs site | Internal docs/*.md rendered for team/contributors/investors; noindex,nofollow |
MVP |
Form Processing Pipeline (Internal Tooling)
| Feature | Description | Phase |
|---|---|---|
domain_tools/ |
Scripts and prompts that turn raw court PDFs into form JSONs with bindings; not customer-facing | MVP |
Cross-cutting dimensions
Not features per se, but every feature in every phase respects them:
| Dimension | What it means |
|---|---|
| Schema-driven | All domain knowledge lives in schemas/forms/data-sources, never in app code |
| Multi-vertical | Bankruptcy is the first vertical; immigration/insurance/etc. plug in via schema configs (see docs/comparisons/domain-comparison.md) |
| Law-first UI | Client app hardcodes law terms ("Cases", "Attorney", "Trustee") — no abstraction layer for labels |
| Auditable | Every data change is an Entry; every case mutation logs a HistoryEntry |
| Snapshot integrity | Filed documents freeze case data at filing time — viewing a filing never shows live values |
Vertical roadmap
Phases describe the product. Verticals describe the domain it serves. Adding a vertical reuses the engine with new schemas, forms, intake configs, and UI configs — no engine or app changes needed.
Ranked next verticals (see docs/todo/next-verticals.md):
- Immigration — IND forms research-complete; bindings done
- Family law
- Eviction
- Probate
- Workers' comp
docs/scope.md