Skip to content
Architecture · How one question becomes a memorandum

Eleven steps between a question and counsel’s answer.

A subscriber pastes instructions to counsel and gets back a memorandum in senior-counsel register, with every cited authority checked against a curated corpus. Below, the question travels the line: the retrieved bundle is the model’s only permitted source of citations, a streaming gate holds every sentence until its citations resolve, and verification writes evidence that the register then decides how to express. Scroll, or press play.

11 Steps319 s · 366 s Two captured runs≈ seconds To first frame
Step 01 · Instructions arrive
EVIDENCEVOICErefusal card · no spendthin corpus modecontrary authority · self-auditRESEARCH TRACK · REPORTS · CI GATES · NEVER THE CUSTOMER’S SCREEN01Instructions arrivePOST /API/CHAT02Jurisdiction fixedSKILL · CORPUS SLICE · LIVE SOURCE03RetrievalLIB/KNOWLEDGE-RETRIEVER.JS04Prompt strataREGISTER-PROTECTED COMPONENTS05GenerationSTREAMING CITATION GATE06Follow-up passesCONTRARY AUTHORITY · SELF-AUDIT07VerificationCITATION_VERIFICATIONS08ConfidenceSCORE · CEILING · REGISTER BAND09AssemblyLIB/MEMO-ASSEMBLER.JS10DeliverySERVER-SENT EVENTS11Research trackML/ · LIB/REASONING/
Step 01 / 11 · t ≈ 0 s
Step 01 · POST /api/chat · t ≈ 0 s

Instructions arrive.

A subscriber pastes instructions to counsel. The server checks the session token, the tier budget (Starter, Advocate, Chambers), the rate limit, then runs the drafting filter: a request to draft a pleading is refused before any model is called.

Artefact on screenThe raw question.
Failure branchA refusal card, no spend.
ComposerPOST /api/chat
Our client holds a London arbitral award for £6.2m. Since the award, the respondent has routed funds through a BVI holding company to accounts in Singapore and Hong Kong. Can we obtain a worldwide freezing order without notice, and will it reach the assets abroad?
session token✓
tier budget · Advocate✓
rate limit✓
drafting filterpass
Failure branch“Please draft the application.” → refusal card. Drafting is refused on self-serve tiers before any model is called. No spend.
Step 02 · skill · corpus slice · live source · t < 1 s

The jurisdiction is fixed.

One of five (UK, HK, SG, AU, US). It chooses the skill file, the corpus slice, the court hierarchy, the live-verification source, and the spelling.

Artefact on screenThe locked jurisdiction and everything it selects.
MismatchEnglish law cited to a Singapore question is flagged later, not silently accepted.
Step 02 · awaiting the question
Jurisdiction selector
England & WalesHong KongSingaporeAustraliaUnited States
Skill fileEngland & Wales jurisdiction skill
Corpus sliceEW authorities · 15,300+
Court hierarchyUKSC / HL → Court of Appeal → High Court
Live sourceFind Case Law (National Archives) · BAILII
SpellingBritish English
MismatchEnglish law cited to a Singapore question is flagged later in verification — not silently accepted.
Step 03 · lib/knowledge-retriever.js · t ≈ 1–3 s

Retrieval assembles the bundle.

The corpus (about 44 MB of curated authorities, mirrored into SQLite with embeddings) is searched lexically; dense semantic retrieval by vector and rerank is available as an optional hybrid arm when enabled, and is not the default production path. Alongside the case law, a practitioner-insight layer — 2,900+ law-firm and chambers case notes linked to the authorities they discuss — can inform the analysis, and is only ever cited as commentary, never as authority. Out comes a ranked bundle of a handful of authorities, each tagged binding / persuasive / overruled with a doctrinal status, plus jurisdiction procedural knowledge, optional matter documents the user uploaded, and any stored judgment text.

Artefact on screenThe bundle forming as cards.
Failure branch“Thin corpus mode”, where the memo is told it has little to stand on.
Step 03 · awaiting the question
Retrieved bundle · rankedlexical · vector · rerank (flagged)
Lakatamia Shipping Co Ltd v Morimoto[2019] EWCA Civ 2203binding · good law
Brink’s Mat Ltd v Elcombe[1988] 1 WLR 1350binding · good law
Babanaft International Co SA v Bassatne[1990] 1 Ch 13binding · good law
Mareva Compania Naviera SA v International Bulkcarriers SA[1975] 2 Lloyd’s Rep 509persuasive · origin
ProceduralCPR Part 25 · without-notice duties
Matter documentsOptional · none uploaded
Stored judgment textStore mostly empty today
Failure branchThin corpus mode — the memo is told it has little to stand on, and says so.
Step 04 · register-protected components · t ≈ 3 s

The prompt is built in layers.

Fixed order, cached at the boundaries: the shared preamble (voice, register, the four SECTION markers), the tier file (how much effort and length), few-shot exemplars of the register, the legacy operational rules and citation integrity, the jurisdiction skill, then dynamic appendages: the retrieved bundle inside a retrieved_authorities wrapper, matter evidence, temporal as-of date, counsel style block, and on memo turns an uncached addendum with citation tokens, the five opinion headings, and the claims channel.

Artefact on screenStrata stacking.
Protected layerThe register is decided here and nowhere downstream.
Step 04 · awaiting the question
Prompt strata · fixed orderregister-protected
01Shared preamble — voice, register, the four SECTION markerscached
02Tier file — effort and lengthcached
03Few-shot exemplars of the registercached
04Legacy operational rules · citation integritycached
05Jurisdiction skill — England & Walescached
06retrieved_authorities — the bundleper turn
07Matter evidenceper turn
08Temporal as-of dateper turn
09Counsel style blockper turn
10Memo-turn addendum — citation tokens · five headings · claims channeluncached
Step 05 · streaming citation gate · first frame ≈ 5 s · streams for minutes

Generation streams, gated sentence by sentence.

One model call with extended thinking scaled to tier. Output must land in four marked sections: short answer, analysis, an authorities JSON array, and a machine-only claims block. The streaming citation gate holds each sentence until the citations in it resolve against the corpus, so an unknown citation is never painted on screen.

Artefact on screenText arriving, pausing at a citation, a badge snapping on, text continuing.
Meanwhile, on screenPhase frames the client shows: pre-filter, live tier, verifying citations, finalising.
Step 05 · awaiting the question
pre-filterlive · Advocateverifying citationsfinalising
Voice · short answer
Strong grounds for a worldwide freezing order. On a good arguable case plus a real risk of dissipation — and the post-award transfers are direct evidence of that risk — the court can restrain the respondent’s assets globally: Lakatamia Shipping Co Ltd v Morimoto [2019] EWCA Civ 2203. The English order binds the respondent personally but does not by itself attach assets in Singapore or Hong Kong.
Streaming citation gateidle
§ short answer§ analysis§ authorities JSON§ claims (machine)
Step 06 · contrary authority · self-audit · after the main pass

Two follow-up passes.

If the memo omitted the opponent’s best case, a contrary-authority re-prompt generates that section from the same bundle. A self-audit pass may splice in a revision, only at sentence boundaries and never introducing an authority that is not in the bundle.

Artefact on screenA second voice challenging the first.
RuleThe passes argue from the bundle; they do not retrieve.
Step 06 · awaiting the question
Voice · first pass
On a good arguable case and a real risk of dissipation, the court can restrain the respondent’s assets worldwide. The post-award transfers are direct evidence of that risk.
Contrary-authority re-prompt · same bundle
The opponent’s best caseThe respondent will say the transfers were ordinary treasury movements, that the award is under challenge at the seat, and that a without-notice order was sought when notice could have been given.
Self-audit passSplices a revision only at sentence boundaries.
Hard ruleNever introduces an authority that is not in the bundle.
Step 07 · citation_verifications · alongside and after generation

Verification runs on every citation.

Each authority is resolved against the corpus, checked live where a source exists (BAILII, HKLII, AustLII, CourtListener, National Archives, eLitigation, SG LawWatch), joined to stored judgment text when the store has it, and given an existence band, a confidence, a treatment (good law, overruled, superseded, questionable), and a currency verdict. Where judgment text exists, each proposition is bound to a pinpointed passage and scored entails / partial / contradicted.

Artefact on screenA ledger filling row by row.
The honest state todayThe judgment-text store is mostly empty, so “citation exists” is the common outcome and “supports the point” is rare.
Step 07 · awaiting the question
Evidence · verification ledgercitation_verifications
Lakatamia Shipping Co Ltd v Morimoto[2019] EWCA Civ 2203 · Court of Appeal
✓ verifiedconf .93 · good law · Find Case Law
Babanaft International Co SA v Bassatne[1990] 1 Ch 13 · Court of Appeal
✓ verifiedconf .90 · good law · BAILII
Brink’s Mat Ltd v Elcombe[1988] 1 WLR 1350 · Court of Appeal
◍ citation existsconf .78 · good law · source not recorded
Mareva Compania Naviera SA v International Bulkcarriers SA[1975] 2 Lloyd’s Rep 509 · Court of Appeal
◍ citation existsconf .74 · superseded in part · source not recorded
Cited authority not resolved[2011] EWHC •••• · —
⚠ verifyconf — · not in corpus · no live match
✓ verified◍ citation exists⚠ verify✗ contradicted“source not recorded”
TodayPropositions bound to pinpointed passages: 0 of 6 — the judgment-text store is mostly empty. “Citation exists” is the common outcome; “supports the point” is rare.
Step 08 · score · ceiling · register band · as the memo finalises

Confidence is derived, never asserted.

From the verifier rows the server computes a score out of 100 with a ceiling: existence coverage is a floor, proposition binding and currency earn points, unsettled claims without recorded searches and unfitted retrieval cap it. The score maps to a register band: settled, provisional, indicative.

Artefact on screenA meter with a visible cap and the reasons line that explains it.
Two switches, both off in productionOne would make the verifier delete unbound holding sentences; the other would demote rows with no confidence field. By default it only reports.
Step 08 · awaiting the question
Evidence · evidential supportderived from verifier rows
58/ 100 · ceiling 70provisional
Thinly sourcedcapWell sourced
floorExistence coverage: 5 of 6 authorities resolved
+0Proposition binding: no stored judgment text to bind against
+Currency: all cited authorities carry a current treatment
capOne unsettled claim without a recorded search — ceiling held at 70
Withhold unbound holdingsOFF
Demote rows without confidenceOFF
Step 09 · lib/memo-assembler.js · as the memo finalises

Assembly joins prose to evidence.

The memo contract is built: the short answer, the analysis sections under the five opinion headings (the question, the view, the reasoning, the opponent’s best case, the advice), the authorities panel joined to verifier rows, the coverage line “N of M found”, currency notices, coverage gaps, named-but-unread authorities, and diagnostics as counts (claims enumerated, holdings the gate would have withheld).

Artefact on screenTwo layers sliding together, evidence beneath voice.
The ruleVerification supplies evidence and diagnostics; the register decides how the analysis is expressed.
Step 09 · awaiting the question
Layer · counsel’s voiceregister: provisional
The questionThe viewThe reasoningThe opponent’s best caseThe advice
memo contract
Layer · evidence & diagnosticsverifier rows
Authorities panel5 of 6 foundCurrency notices0Coverage gaps1Named but unread1Claims enumerated9Holdings the gate would withhold2 · reported only

Verification supplies the lower layer. The register decides how the upper layer is expressed. Neither writes on the other.

Step 10 · server-sent events · 319 s · 366 s in the two captured runs

Delivery.

Server-sent events carry the memo frame; the client renders sections, badges, the meter, the supersession banner when older authorities are cited in a moving area, and the disclaimer that “verified” means the citation exists, not that it supports the point. The conversation is saved locally and server-side; a share link can publish a read-only copy.

Artefact on screenThe rendered memorandum.
Kept exact“Verified” means the citation exists, not that it supports the stated proposition.
Step 10 · awaiting the question
Client render · memo frameserver-sent events
SupersessionAn authority from 1975 is cited in an area where the law has moved. The later treatment is shown beside it.
Short answer

Strong grounds for a worldwide freezing order. The English order binds the respondent personally; it does not by itself attach assets in Singapore or Hong Kong ✓ Babanaft — local recognition steps are required there.

Evidential support58 · cap 70How this was scored
“Verified” means the citation exists, not that it supports the stated proposition.
saved locallyconversations · response_meta · citation_verificationsshare link · read-only
Step 11 · ml/ · lib/reasoning/ · after delivery · offline

After delivery, the research track reads it.

Separately from the customer path, a Fable-graded teacher scores reasoning structure, a blind monitor samples production answers, a reranker experiment trains on preference pairs against a sealed holdout, and register metrics compare every run to a frozen specimen.

Artefact on screenThe memo leaving the stage and entering a laboratory.
The boundaryNone of it changes what the customer sees; it produces reports and CI gates.
Step 11 · awaiting the question
Customer path
The delivered memorandumUnchanged by anything on the right.
→ a copy leaves the stage
Research track · ml/ · lib/reasoning/
Fable-graded teacher — scores reasoning structure
Blind monitor — samples production answers
Reranker experiment — preference pairs against a sealed holdout
Register metrics — every run against a frozen specimen
Outputs: reports · CI gates. Never the customer’s screen.

Plate III. — The clock is compressed; the two captured runs took 319 s and 366 s end to end, first frame within seconds. Intermediate timings are indicative.

§ 02 — The objects

What the page exposes.

Every artefact above is a real object in the code. These are the five a reader can inspect.

i.

A citation row

namecitationcourtexistence bandconfidencetreatmentsupport statesource“source not recorded”

Bands: ✓ verified · ◍ citation exists · ⚠ verify · ✗ contradicted. Treatment: good law, overruled, superseded, questionable. Support: entails, partial, contradicted — only where judgment text exists.

ii.

The memo frame

short
analysis[ { heading, prose } ]
authorities[ ]
confidence { score, ceiling, register, reasons[ ] }
strength · citationCoverage · textCoverage
currencyWithheld
holdingWithhold { enabled, candidates, removed }
namedUnread · coverageGaps · claimsEnumeration
iii.

The prompt stack

  1. Shared preamble cached
  2. Tier file cached
  3. Few-shot exemplars cached
  4. Legacy rules & citation integrity cached
  5. Jurisdiction skill cached
  6. Dynamic appendages per turn
  7. Memo-turn addendum uncached

Inventoried in docs/register-protected-components.md and guarded in CI.

iv.

The flags

Sixteen pinned runtime switches, each with a declared production value and a deploy attestation. The two that touch the register:

Withhold unbound holding sentencesOFF
Strict confirmation · demote rows without confidenceOFF

By default the transforms never delete counsel’s sentences; they report.

v.

The guardrails

  • —Protected-file CI check: a PR touching a register file turns red unless it says so
  • —Register regression against a frozen specimen
  • —Offline eval gates: drafting refusal, citation recall, counsel register, tier contracts, golden failures
  • —Deploy only through safe-deploy.sh
The one separation

Evidence and diagnostics on one layer. Counsel’s voice on another.

The gate, the ledger and the meter are evidence surfaces. The memorandum is the voice. Verification decides what is known; the register decides how it is said.

See it answer

Now watch the instrument run.

The homepage streams a real enquiry through this pipeline. Or read how we treat the corpus and your confidentiality.

Cohort

Leave an email for a cohort

Access is not open yet. We’ll be in touch as we open by jurisdiction. See pricing for what it will cost.

Jurisdiction of interest