The Litigation Workbench
A grounded litigation platform on Twenty CRM: every AI answer stands on the full case substrate — documents, ontology markups, the knowledge graph, and the house rules — and passes an internal Gate-Counsel before anyone reads it.
Executive Summary
LegalPresence began as a monitor of official court postings that extracts and structures legal information. It has since grown a working litigation reasoning console: a set of role-specific AI seats (lead counsel, opposing counsel, the presiding justice, the client advisor) that answer questions grounded in the live case record, then run every answer through a verification gate before it is shown.
The Workbench turns that console into a complete product. It keeps the discipline that makes the current system trustworthy — nothing is asserted that the record does not support, and nothing reaches a human un-reviewed — and wraps it in the full litigation lifecycle: intake, docket watch, evidence collection, timeline and deadline management, collaborative analysis, and client reporting, all as native objects and views inside Twenty CRM.
What already exists shipping today
The differentiators below are not aspirational — most are running in production and simply need to be productized. This spec is explicit about the state of each so the roadmap is honest.
Key differentiators
| Differentiator | What it means | State |
|---|---|---|
| Multi-substrate grounding | Every question is answered against semantic document retrieval plus the CRM's reviewed fact-assertions, the RDF knowledge graph, and the encoded house rules — not a single vector store. | Live |
| AI Reasoning Engine | Structured, multi-step reasoning under explicit litigation objectives: element mapping, counterfactuals, argument scoring, outcome simulation. | Evolve |
| AI Internal Gate-Counsel | An adversarial second set of eyes that runs before any output is shown — grounding verification, overconfidence and privilege checks, rule enforcement. | Evolve |
| Flag, never suppress | The gate annotates and scores; it never silently rewrites. Humans see the answer and its verdict. | Live |
| Native to Twenty CRM | Evidence, parties, motions, hearings and analyses are first-class CRM objects with views, permissions and audit — not a bolted-on silo. | Evolve |
| Privilege-aware by construction | Consulting-vs-testifying expert posture, work-product tagging, and privilege flags travel with every artifact. | Build |
Personas & User Journeys
| Persona | Goal | Primary surfaces | What the AI does for them |
|---|---|---|---|
| Lead Attorney | Win the motion; avoid unforced errors | Reasoning console, motion drafts, timeline | Element-by-element analysis, argument scoring, adversarial stress-test before filing |
| Associate / Paralegal | Build the record; keep it clean | Evidence browser, markups, deadlines | Extract fact-assertions, flag contradictions, draft cite-checked summaries |
| Litigation Support | Ingest & authenticate evidence | Intake, OCR, chain-of-custody | Encrypt→store→hash-stamp, auto-tag parties, surface duplicates and gaps |
| Client / GC | Understand exposure, cost, timeline | Client portal, plain-language briefings | Jargon-free status, outcome ranges, next steps — gated for over-promising |
| Reviewing Partner | Sign off with confidence | Gate verdicts, audit trail | Gate-Counsel report: what's supported, what's overstated, what's unverified |
Core workflow — question to gated answer
flowchart LR A[Attorney asks
from a seat] --> B[Assemble substrate
docs · markups · graph · rules] B --> C[Reasoning Engine
element map · counterfactuals] C --> D{Gate-Counsel} D -->|grounding · perturbation| E[Verdict + score] D -->|privilege / overconfidence| E D -->|rule compliance| E E --> F[Answer shown
with citations + flags] F --> G[Attorney accepts,
edits, or overrides] G --> H[Saved to CRM
as aiAnalysis + audit]
Second journey — evidence intake to insight
flowchart LR A[Drop docs /
docket pull] --> B[OCR + encrypt] B --> C[Store ciphertext in R2
DEK in SecureVault] C --> D[Hash-stamp +
evidenceItem in Twenty] D --> E[Ontology extraction
fact-assertions + RDF] E --> F[Human review
APPROVE / REJECT] F --> G[Enters the substrate
every seat can now cite it]
Functional Requirements
3.1 Docket & court-posting monitoring evolve
- Poll official sources (NYSCEF and equivalents) on a schedule; diff against the last snapshot; open a
timelineEventfor every new filing. - Classify each posting (order, motion, affirmation, notice) and route to the right matter by index number.
- Alert owners on filings that touch a tracked deadline or the enjoined subject-matter.
3.2 Evidence collection & ontology markups live
- Ingest pipeline: OCR → encrypt → object store (ciphertext) → data-encryption key in the vault → content hash-stamp →
evidenceItemin Twenty. - Ontology extraction produces
factAssertionrows — the machine-readable markup layer over each document (who / what / when / affected party / source doc). - Every assertion carries a
reviewStatus(HUMAN_VERIFIED,COUNSEL_APPROVED) and a confidence; only reviewed assertions are treated as settled in reasoning.
3.3 Knowledge-graph management live
Parties, legal persons, correspondents, property units, and artifacts live as an RDF graph (parsed from the ontology + per-matter instance TTL). Relationships — counselFor, ownerOf, plaintiffIn, authoredBy, custodianOf — are queryable and visualized. The graph is both a browsing surface and a reasoning input.
3.4 AI Reasoning Engine evolve
A structured reasoning layer that operates under the six litigation objectives and thirteen house rules, not free-form. Capabilities:
Burden decomposition
Break a motion into its statutory elements; map each to supporting and contradicting record items with a per-element strength read.
Parallel theories
Generate competing case theories, score each against the objectives, and synthesize from the strongest while grafting the best of the rest.
What-if & as-of
Re-reason as of a prior date, or under an assumed fact, to test how fragile a conclusion is to the contested premises.
Adversarial weighing
For each argument, rate admissibility, burden fit, and the strongest rebuttal the opponent can mount.
Ranges, not verdicts
Produce best / modal / adverse outcome bands with the evidentiary conditions that move between them.
Reasons under rules
Every chain is checked against the encoded objectives and rules — the engine explains which rule drove which move.
3.5 AI Internal Gate-Counsel evolve
An adversarial reviewer that runs on every answer before a human sees it. It annotates and scores — it does not silently rewrite. Three independent controls plus a single honest verdict:
| Control | Question it asks | Mechanism | State |
|---|---|---|---|
| Perturbation verification | Is each factual claim grounded and stable under perturbation? | Decompose the answer into atomic claims; re-ask K perturbed ways; grade grounding + reproduction; quarantine the unstable. | Live |
| Counsel-QA | Does anything overstate, mis-cite, or conflate distinct questions? | A hostile single-pass review keyed to the case context; flags unsupported / overstated / bad-citation / conflation. | Live |
| Authenticity | Do the citations resolve to real record rows? | Linkify against the citation index; flag references with no backing document. | Live |
| Privilege guard | Would this waive privilege or expose work product? | Consulting-expert posture check; work-product tagging; no written positions on flagged topics. | Build |
| Ethics / candor | Any duty-of-candor or Rule-3.3 risk? | Rule-driven checks against a jurisdiction ethics ruleset. | Build |
3.6 Calendar, deadlines & lifecycle live
- Return dates, answer dates, and CPLR-computed deadlines as CRM
caseDeadlines with path-ICS export and reminders. - Procedural clock · dependency DAG — HARD_BLOCKS propagates risk; Next 3 actions with Assign owner (responsibleRole).
- Stage tracking across the full lifecycle: pre-litigation → pleadings → motion practice → discovery → hearing → resolution → appeal.
- Deadline changes propagate: an adjournment moves the dependent dates and notifies owners.
3.7 Collaboration & client portal build
- Shared matter workspace with role-scoped visibility; internal work product never leaks to the client view.
- Client portal: plain-language status, gated for over-promising, with a documented approval step before anything is sent.
- Every mail-out goes through an admin-approval gate and a faithful audit log.
3.8 Research & adversary intelligence live
- Ranked precedents. Candidate authorities are surfaced against the matter's posture and ranked by relevance and interest.
- Verified vs candidate, on every row. Each authority is badged
Verified · on file(a real opinion held in the register) orCandidate · verify(model-surfaced, unconfirmed). An unverified citation never passes as usable authority. - Adversary profiles. Opposing-party litigation history and prior-matter patterns — for strategy, settlement posture, and vexatious-litigant analysis.
- Charted in the case graph. Every imported precedent is emitted as a
PrecedentCasenode carrying citation, court, holding and the issue it bears on, linked to the matters it was imported for; the Obsidian export renders it as a navigable graph with node labels on hover. - Suggested element support. Where a precedent's posture maps to a statutory element on the record (vacatur / fraud → CPLR §5015(a)(3); spoliation → CPLR §3126), the graph carries a suggested precedent→element edge, flagged for counsel confirmation rather than asserted as settled.
Paper Workbench — shipped product surface
The live Litigation Workbench is the paper-command seat for a CRM draft (aiAnalysis). CRM is source of truth; Word/Google Docs is a handoff via clean DOCX — not a second SoT. Studio path: /studio/workbench?id=<draft> (counsel-gated on crm.legalpresence.com). This public page is the product specification only — no case data.
Partner jobs on the page live
Work product · Filing preview
Edit with SIGNOFF / NOTE / PIN markup in Work product. Filing preview strips internals for a filing-shaped read without changing CRM until counsel promotes clean text.
FILE / NO-FILE
R6 citations + open SIGNOFF markers + gate banners. Mechanical blockers fail loud. Counsel still decides; AI never auto-files.
R6 · Next/Prev · inspect
Register + CourtListener authority check. Good-law demotion of unconfirmed cites. Does not invent authorities or save on scan.
Recipe · court pack
Package recipe runs Gate, shows a pre-file checklist, exports filing-clean DOCX. Court pack seal is hard-blocked on dirty gates (break-glass only).
DOCX export / import
Filing-clean DOCX out; re-import as a new CRM version. Companion page at /studio/word-bridge. Office.js add-in is later; this loop is supported today.
Southern default · pause
🔊 Read / ⏸ Pause / ⏹ Stop via /studio/tts (ElevenLabs). Default voice Wyatt — Southern / rustic (Texan-leaning). Speakify expands CPLR/NYSCEF for speech. Selection-only mode; ⌘/Ctrl-Shift-R.
Markup discipline
- Structured tags only:
[[LP:NOTE]],[[LP:PIN evidence=… page=…]],[[LP:SIGNOFF role=…]], approval stamps. Markdown**is not used for comments — it breaks emphasis and filing-clean. - Fact pins link a sentence to an evidence id + page for the evidence rail.
- Every Save that changes the body snapshots a CRM version first.
What is deliberately not on this public URL
The interactive Workbench editor, Command home, and Discover run under counsel auth on crm.legalpresence.com. legalpresence.com/studio/workbench-spec is intentionally un-gated and carries no matter record.
Technical Architecture
4.1 The substrate assembler
Each question triggers a fail-safe assembler that fuses four stores into one context. Any single store can be slow or down and the answer still returns — the section is simply skipped and labelled.
flowchart TB
Q[Question + persona seat] --> ASM[Substrate assembler]
subgraph S[Four grounded stores]
D[Documents
semantic RAG over corpus]
M[CRM markups
fact-assertions via GraphQL]
G[Knowledge graph
RDF nodes + relations]
R[Rules engine
objectives + house rules]
end
ASM --> D & M & G & R
D & M & G & R --> CTX[Fused context
+ governance dump]
CTX --> LLM[Reasoning Engine]
LLM --> GATE[Gate-Counsel]
GATE --> OUT[Answer + citations + verdict]
4.2 Reasoning Engine & Gate-Counsel
flowchart LR CTX[Fused context] --> GEN[Generate answer
thinking-budget managed] GEN --> CLM[Decompose into
atomic claims] CLM --> P1[Perturb ×K] --> SC[Grounding +
stability score] GEN --> QA[Counsel-QA
hostile pass] GEN --> AUTH[Authenticity
citation resolve] SC & QA & AUTH --> V[Single honest verdict
clean · flagged · unreviewed] V --> UI[Rendered with
badges + links]
4.3 Thinking-budget management
4.4 Twenty CRM data model
The Workbench is expressed as custom objects so it inherits Twenty's views, permissions, relations and audit. Content differs per matter; the schema is identical across all.
| Object | Key fields | Purpose | State |
|---|---|---|---|
matter | name, court, matterNumber, judge, status, stage | The case; root of every relation | Live |
evidenceItem | name, ocrText, nyscefDocNumber, hash, r2Key, privilegeFlag | A stored, authenticated document | Live |
factAssertion | factText, factDate, affectedParty, reviewStatus, confidence, sourceDocument, contradicts | The ontology markup layer | Live |
caseTheory | thesis, objectiveRef, strength, rulesApplied | A scored theory of the case | Evolve |
motion | sequence, relief, returnDate, standard, elements[] | A motion and its elements | Live |
aiAnalysis | question, actor, answer, verdict, perturbationScore, citations[] | A gated AI output with its audit | Live |
timelineEvent | date, kind, matterRef, deadlineType, source | Filings, hearings, computed deadlines | Evolve |
erDiagram
matter ||--o{ evidenceItem : holds
matter ||--o{ motion : has
matter ||--o{ caseTheory : advances
matter ||--o{ timelineEvent : schedules
evidenceItem ||--o{ factAssertion : yields
factAssertion }o--o{ caseTheory : supports
motion ||--o{ aiAnalysis : reviewed_by
caseTheory ||--o{ aiAnalysis : scored_by
4.5 Citation linker & perturbation — near-term improvements
| Item | Before | After | State |
|---|---|---|---|
| Statute references | Pattern defined but never applied — statutes unlinked | Statutes linked/annotated as citations | Fixed |
| Party names in prose | Only NYSCEF doc-numbers resolved → many answers cited nothing | Party/person names from the graph linked to their record, tag-guarded so links never nest | Fixed |
| Perturbation re-asks | Verifier's re-asks starved by extended thinking → empty → spurious quarantine | Verifier calls run thinking-disabled → real perturbations, honest scores | Fixed |
| Prose document mentions | Descriptive names ("the Berry affidavit") don't resolve to a row | Fuzzy name→evidence resolution against the citation index | Next |
4.6 Self-hosting & security
- Ciphertext at rest in object storage; data-encryption keys isolated in a dedicated vault; documents never stored in plaintext.
- Per-workspace isolation in Twenty; the AI substrate is scoped to the active matter and never imports another matter's facts.
- All model keys are vault-sourced and injected at runtime; services fail loud on a missing secret rather than degrading silently.
Design Concepts & UX
The interface is timeline-centric and evidence-first. The spine of every matter is its chronology; everything else — a document, an assertion, an AI analysis — hangs off a point in time and is one click from its source.
Matter cockpit
Next deadlines, open gate flags, recent filings, and the readiness scorecard — what needs a human, surfaced before the detail.
Paper command
Dual view, Gate, Citations, Package recipe, Word bridge, Southern read-aloud with pause — CRM SoT for every draft version.
Timeline canvas
Filings, hearings and computed deadlines on one axis; click any node to open the evidence, the markup, or the analysis tied to it.
Document + markup browser
The document beside its extracted fact-assertions, each with review status and confidence; contradictions highlighted inline.
Party & artifact map
Interactive knowledge graph — filter by relationship, trace a chain from a party to the document that binds them.
Grounded AI seat
Ask from a role; the answer arrives with inline citations, a confidence read, and the gate verdict attached — never a bare wall of text.
Gate-Counsel report
Per-claim grounding, overstatement flags, and unresolved citations — with accept / edit / override, each logged.
Non-Functional Requirements
| Dimension | Requirement |
|---|---|
| Privilege protection | Work-product and consulting-expert material is tagged and withheld from client-facing views and un-gated outputs by default; conversion to disclosable state is an explicit, logged action. |
| Auditability | Every AI output persists with its question, context digest, verdict, and citations; every human override records who, when, and why. |
| Explainability | Each answer traces to its grounding — which document, which assertion, which rule — and each gate flag states its basis. |
| Reliability | Substrate assembly is fail-safe per-source; generation retries on empty/incomplete; a store outage degrades gracefully with a visible label. |
| Performance | Retrieval is bounded and cached; gated answers target a predictable latency envelope; the ungated fast path is available for low-latency/voice use. |
| Security & compliance | Encryption at rest, vault-isolated keys, per-workspace tenancy, fail-loud on missing secrets, and no silent fallbacks. |
Roadmap & Implementation
| Phase | Theme | Ships |
|---|---|---|
| MVP | Grounded console, productized | Substrate assembler, 7 personas, 3-control gate, evidence pipeline, citation + perturbation fixes — hardened and packaged as a Twenty extension |
| Waves 0–4 | Paper Workbench · partner spine | Shipped: Next 3 + owners, Matter Gate, dependency DAG + path-ICS, Workbench dual view, R6 Citations, Package recipe, DOCX Word bridge, Southern read-aloud (pause/stop), Discover advanced research |
| Phase 2 | Reasoning Engine + Gate-Counsel | Element mapping, tree-of-thought theories, outcome simulation; privilege & ethics gate controls; per-claim review UI |
| Phase 3 | Lifecycle & collaboration | Docket monitor, deadline engine, timeline canvas, client portal with approval gate |
| Phase 4 | Scale & multi-jurisdiction | Jurisdiction rulesets, multi-matter analytics, firm-level dashboards |
gantt dateFormat YYYY-MM-DD axisFormat %b section MVP Harden substrate + gate :a1, 2026-07-20, 40d Package Twenty extension :a2, after a1, 30d section Phase 2 Reasoning Engine :b1, after a1, 55d Gate-Counsel (privilege/ethics):b2, after a2, 45d Per-claim review UI :b3, after b1, 30d section Phase 3 Docket + deadline engine :c1, after b2, 45d Timeline canvas + portal :c2, after b3, 50d
Risks, Dependencies & Success Metrics
Risks & mitigations
| Risk | Impact | Mitigation |
|---|---|---|
| Model overconfidence reaching a human | High | Gate-Counsel runs pre-display; flag-never-suppress; verdict badge always shown |
| Privilege waiver via an AI output | High | Privilege guard control; work-product tagging; no written positions on flagged topics |
| Substrate drift across matters | Med | Per-workspace scoping; assembler never imports another matter's facts |
| Thinking-budget truncation | Med | Policy-level budget management + retry; monitored as a reliability metric |
| Citation resolves to nothing | Med | Authenticity control flags unresolved cites; fuzzy name resolution on the roadmap |
Success metrics
| Metric | Definition | Target |
|---|---|---|
| Grounded-answer rate | Answers where every claim resolves to a record item | > 95% |
| Gate catch rate | Overstatements/mis-cites caught before display, on a seeded set | > 90% |
| Citation resolution | Referenced documents/parties that link to a real row | > 90% |
| Empty/truncated answers | Gated answers returning incomplete text | < 0.5% |
| Deadline miss rate | Tracked deadlines missed without an alert | 0 |
| Attorney acceptance | AI outputs accepted or lightly edited vs discarded | > 70% |









