Using Law-Lite
How to run a matter from upload to a signed report, search the law, and read what the system can and cannot tell you.
Contents
- User manual — sign-in and roles, matters, the pipeline, the report, the workspace, Search, the Library, tools
- A day with Law-Lite — a Series B diligence and a cheque claim, start to finish
- Technical architecture — components, models, data, the audit chain
- API reference — the endpoints behind each screen
From upload to a signed report.
Signing in and roles
Pick your name on the lock screen and enter your PIN. Demo accounts are sent with your invitation; they are never published. There are three roles:
- Lawyer — sees the matters assigned to them, runs the pipeline, opens the workspace, accepts rules, signs reports.
- Intake — uploads documents and follows progress on assigned matters; cannot open the lawyer's workspace or sign.
- Admin — everything, plus users, settings, firm-wide reports and analytics.
A matter you are not assigned to does not exist for you: its pages say "not found", so even its name stays confidential.
Creating a matter
Matters → New matter. Give the matter name, client, type (venture capital, M&A, securities, litigation) and jurisdiction. For a deal, give the deal value with its currency, and whether the company is listed — several rules depend on both, and "unknown" is reported as unknown, never guessed. Drop the documents onto the form (PDF, Word, Excel, images or a ZIP). Scanned pages are read with OCR; a ZIP member that cannot be read is named, not silently dropped.
Running the pipeline
On the matter page press Start. Six stages run in order, and the stage bar shows where it is:
- Lex reads and classifies each document (PAS-3, board resolution, share purchase agreement…).
- Petra extracts the facts each rule needs — dates, amounts, parties, declarations — each tied to the page it came from.
- Gavel validates them: names and CINs agree across documents, dates are consistent.
- Portia and Reese check every in-scope rule and analyse the deal.
- Sterling delivers the report.
A seven-document round takes about four minutes on the demo server.
Reading the report
Report on the matter page. Every rule in scope has one of four outcomes:
"Could not check" always says why: a document or fact the file does not contain (something to obtain), or a rule no document can settle. It is never counted as a pass. The foot of the report names the rulebook and law corpus it was judged against. Rules are marked UNVERIFIED until a practising lawyer has reviewed them.
The report is a draft until a lawyer presses Sign off this report, which signs in their own name and records it in the audit log. A sign-off can be withdrawn; if the pipeline runs again after a sign-off, the report says the signature predates it. A litigation report that relies on a complaint also needs two recorded approvals before it can be signed.
The workspace and its gate
Open workspace from the matter page. The workspace — analysis, risks, similar matters, drafting, questions — opens only when the pre-check has cleared the matter: no rule failed, and none is left unchecked. Until then it says why, in plain words.
Some rules no document can settle (whether the transaction documents were duly stamped, for instance). Under Rules only a person can confirm, a lawyer can accept such a rule with a reason — "stamp paper of Rs 1,500 seen on the executed SSHA". The acceptance is recorded with their name; the rule itself stays "could not check" in the report. A missing document or a failed rule cannot be accepted away.
On any matter, Show approaches lays out each litigation route read against the file, and Case journey lists every upload, stage, decision and link in order, marking any entry the audit chain cannot vouch for.
Search
Ask a question in ordinary words. The sources appear first — statute sections, rules, judgments and your matters' own documents — then an answer in which every sentence links to a source. Each source says whether the model read it. If a sentence cites nothing it is removed and the answer says so; if an answer cannot be written safely, you get the sources and the reason instead. Name the law ("section 138 of the NI Act", "What is the Companies Act?") and that section comes first. Questions outside the corpus ("a chocolate cake recipe") are refused, not answered.
The Library
Describe an issue — "a cheque given by our customer bounced for insufficient funds" — and the Library lists the statutes and sections that govern it, grouped by Act. Tick include judgments for case law, labelled "good law unverified".
Tools
Deal calculator, cap table, dilution, quick check, checklist, covenant analyser and risk scorer: standalone calculators that do not touch a matter.
Two matters, start to finish.
Morning: a Series B diligence
An associate creates "Veritas Labs — Series B", deal value Rs 150 crore, unlisted, and drops in the round's documents: articles, the EGM notice and special resolution, board resolutions, the valuation report, PAS-4, PAS-5, PAS-3, the share certificates, and the company's annual filings. Four minutes later the report shows every in-scope rule passed or not applicable — MGT-15, Nidhi, foreign-company and CCI forms correctly out of scope for this company — except one: whether the transaction documents are duly stamped. She checks the stamp paper, accepts the rule with her reason, and the workspace opens. The partner reads the report, and signs it off.
Afternoon: a bounced cheque
Intake uploads the cheque, the return memo, the demand notice and the bank statement for a client's claim. The lawyer opens the workspace, presses Show approaches, and sees the s.138 route: the elements the file supports, the gap (no proof the notice was received), the 15-day wait, the magistrate's court under s.142 and the one-month limitation. A search for "notice before a cheque complaint" returns the section and the judgments that read it — cited, and marked good-law-unverified.
What runs where.
Web front
Server-rendered pages with htmx, behind a reverse proxy with a strict content-security policy (no inline event handlers, no eval). Enforces sign-in, roles and per-matter scope on every route.
API
Python (FastAPI). Runs the six-stage pipeline, the compliance engine, retrieval and answer generation. Postgres holds matters, documents, extracted facts, checks and the audit chain.
Compliance engine
Deterministic code decides every outcome from extracted facts; a model never grades a rule. Rules carry conditions (listed status, company class, deal size, events disclosed in the annual return), deadlines and their legal sources.
Retrieval
Hybrid search — vector (local embeddings), keyword (BM25 over word starts) and exact phrase — fused by reciprocal rank, with named sections pinned first. The corpus holds 84,075 passages of statute, rules and 738 judgments, fetched from official sources and refreshed on a schedule.
Models
A local large language model writes answers and helps extraction; a local embedding model indexes statute and client documents. A non-local model endpoint is refused before any text is sent.
Audit chain
Uploads, pipeline stages, searches, decisions, acceptances and sign-offs are appended to a hash-linked log, so an entry cannot be altered or backdated without the chain failing to verify.
The endpoints behind each screen.
The API listens on the server's loopback interface only; the web front is its one client and forwards the signed-in session. Scope (which matters a request may see) is always passed and can only narrow.
| Method and path | What it does |
|---|---|
| Matters and the pipeline | |
POST /api/upload | Create a matter from uploaded files (or add files to one). |
POST /api/pipeline/{matter_id}/start · /resume · /stop | Run, resume or stop the six stages; GET …/status reports progress. |
POST /api/matters/{matter_id}/archive · /restore | Archive (soft-delete) or restore a matter. |
| Compliance and the report | |
POST /api/compliance/check/{matter_id} | Re-check a matter against the current rulebook. |
GET /api/matters/{matter_id}/report-data | Everything the report page shows: checks, gate, sign-off state, provenance. |
GET /api/compliance/rules | The rulebook, with each rule's source, conditions and review status. |
POST /api/matters/{matter_id}/sign · /unsign | Sign a report off (or withdraw); recorded in the audit chain. |
| Workspace | |
GET /api/workspace/{matter_id} | The gate, the sources, the rules a person may accept, the conversation. |
POST /api/workspace/{matter_id}/waivers | Accept one rule no document can settle: {rule_id, reason, actor}. |
GET /api/workspace/{matter_id}/approaches · /journey | Litigation routes read against the file; the matter's timeline. |
| Search and Library | |
POST /api/rag/search | Retrieve cited sources for a question; with generate: true, also a cited answer. |
POST /api/library/search | The law that governs a described issue, grouped by instrument. |