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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
What the page exposes.
Every artefact above is a real object in the code. These are the five a reader can inspect.
A citation row
Bands: ✓ verified · ◍ citation exists · ⚠ verify · ✗ contradicted. Treatment: good law, overruled, superseded, questionable. Support: entails, partial, contradicted — only where judgment text exists.
The memo frame
short
analysis[ { heading, prose } ]
authorities[ ]
confidence { score, ceiling, register, reasons[ ] }
strength · citationCoverage · textCoverage
currencyWithheld
holdingWithhold { enabled, candidates, removed }
namedUnread · coverageGaps · claimsEnumerationThe prompt stack
- Shared preamble cached
- Tier file cached
- Few-shot exemplars cached
- Legacy rules & citation integrity cached
- Jurisdiction skill cached
- Dynamic appendages per turn
- Memo-turn addendum uncached
Inventoried in docs/register-protected-components.md and guarded in CI.
The flags
Sixteen pinned runtime switches, each with a declared production value and a deploy attestation. The two that touch the register:
By default the transforms never delete counsel’s sentences; they report.
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
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.
Now watch the instrument run.
The homepage streams a real enquiry through this pipeline. Or read how we treat the corpus and your confidentiality.
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.