For defenders
It watches the footage the way the charge requires.
Hand it the discovery and the docket. Per case and per issue, it derives from the charged elements how to watch the footage and read the record, forms its own theories, and proves or holds each one.
See it work
Nobody touches the keyboard from here.
A replay of a real engine run on People v. Demo, a synthetic case, compressed in time so you don’t sit through the compute. Every fact, citation, and status came from the actual derivation.
Nobody types a question. The record changing is the instruction.
Case file · People v. Demo
Reviewed material
waiting for new material…
Or drag the file into the case file.
Step 11 of 11 · The gates
What gets caught, and why.
Each drafted sentence runs the gates. A cited line renders; an uncited one is quarantined; an unproven inference is struck. Nothing is dropped silently.
Legal · what the step produced
- “Entry was unlawful. The door was pried.”Bates 1–6 · p.3
- “The evidence establishes intent to steal.”STRUCK
- Why: the inference doesn’t hold. No grounded chain reaches intent (presence ≠ intent). Kept as CONTESTED, not proven.
- “The State’s case is fundamentally weak and any jury will see through it.”QUARANTINED
- Why: no citation to the record. Pulled into quarantine, labeled, never rendered as analysis.
Engine feed
- [17:11:04] result: charge NOT MADE OUT, triable
- [17:11:20] [drafting] narrative sections drafted
- [17:11:31] cite check: 1 sentence had no citation → quarantined
- [17:11:31] inference check: 1 conclusion unproven → struck (kept as CONTESTED)
- [17:11:32] memo rendered, bound to the computed result
Or pick any step above to jump to it.
How it sees
Nobody tells it what to look for. The elements do.
The charge selects the jury instruction, and the instruction’s own words become the coordinate system for that case. What the engine watches for changes with the issue, because the thing the State has to prove changes with the issue.
One case · three issues
- On a suppression issue, it watches the footage for the basis of the stop: when the stop began, and what was known before it.PER CASE · PER ISSUE
- On an identification issue, it watches the show-up: how the witness was brought to it, and what was said to them there.PER CASE · PER ISSUE
- On intent, it reads the client’s own statements on every edge they cut — against intent, as an admission, and as raising a defence nobody typed.PER CASE · PER ISSUE
None of that is a saved search or a keyword list. It is derived, per case, from the authority that governs the charge — and every fact it lifts out of the footage or the file comes bound to the page and timestamp it came from.
The deliverable
The memo re-wrote itself.
Nobody asked a question. The pawn ticket arrived, and the engine changed its own conclusion, because the record changed. Every status line carries the citation that justifies it.
Living memo · Count 1: Burglary
BEFORE THE DROP
- Unlawful entry / breakingPROVEN
- A building or occupied structurePROVEN
- Intent to commit a crime insideNOT PROVEN
Interior undisturbed; nothing missing; gate photo only “resembles” someone. Where the record is silent, the memo says silent. A proof gap is a finding, not a blank.
Living memo · Count 1: Burglary
AFTER THE DROP
- Unlawful entry / breakingPROVEN
- A building or occupied structurePROVEN
- Intent to commit a crime insideBates 10–12 · p.1CONTESTED
The status cite is the pawn ticket page. And the engine carried the defendant’s “I only went in to get warm” on all three of its edges: against intent, as an admission of entry, and as raising necessity (the statute), a defense nobody typed. Impeachment: 0 → 11 code-surfaced facts, including Demo denying the pawn that’s on a ticket in his own name.
Quarantined by code · model wrote it without a citation
“The State’s case is fundamentally weak and any jury will see through it.”QUARANTINED
Removed from the analysis and shown here, labeled. Never rendered as analysis, never silently deleted. The model can always try to speak unverified. It cannot land unverified.
It doesn’t stop at one memo
An engine that knows your calendar, takes instructions, and proposes motions.
Hearing memos, from the court calendar
The engine reads the docket. A pretrial conference on Thursday means a PTC memo exists by Thursday — scoped to that hearing type, current to the record, cited. What that looks like on a real week is inhearing memos from the docket.
- Thu · PTCPretrial-conference memo — plea posture, proof gaps, exposure
- Mon · MotionsMotions-hearing memo — live challenges and anchors
- Trial · Day 1Trial-prep memo — impeachment grid, element walk
Instructed drafting, under the same gates
“Draft the suppression motion.” “Prep a memo on the Reyes timeline.” Instructions are welcome, and the output passes the identical citation gates as everything else. Instructed doesn’t mean unguarded.
- Draft: Motion to Suppress — ID procedurecited
- Memo: Reyes timeline and impeachmentcited
- Draft: discovery-gap letter to the DAcited
Motions proposed from the facts
The surviving challenges aren’t just listed. They are triaged into the motions they support, each anchored to the record pages that justify filing it.
- Motion in limine — pre-existing damageBates 1–6 · p.6
- Challenge ID — “resembles,” partial imageBates 1–6 · p.4
- Chain of custody — bootprint exhibitBates 1–6 · p.2
And the hours get captured
Discovery review, drafting, filings — logged as the work happens, under rules, never invented, and not logged twice into a range already submitted. The work you currently do for free.
- Discovery3-page supplemental reviewlogged
- Draftingmemo update after new evidencelogged
The examples above come from People v. Demo, a fully synthetic demonstration case: no real client, no real filing.
Runs in your office
On your hardware, behind your door.
- Local modelIt installs on a machine in your office and the narrative layer runs there, on weights sitting on that machine.
- Nothing leaves the buildingNo client data leaves the building to be analysed. There is no upload step to opt out of — which is the whole of the confidentiality question, worked through inclient data, local models, and why on-prem is the default for defense.
- It ships with a modelA pinned, tested open-weight model comes with it, so the install is complete on day one and every install behaves the same way.
- Frontier optionalFrontier models are optional and governed identically, on synthetic or consented material. The gates don’t change when the model does.
If you already have a tool
If you already use a transcription or flagging tool, keep it.
Keep it. Those tools turn footage into text and mark the moments that match what you asked them to look for, which is genuinely useful and a different job. Apodicta decides, per case, what matters in that footage — from the elements charged — and proves what it concludes, with no one prompting it. What it can’t prove, it holds, and names the gap.