Architecture
What exists today, and what is planned.
Every part of the current release, marked by the evidence behind it. Where something is designed for but not yet measured or built, it says so.
Designed to run on NVIDIA GPU systems; NVIDIA GPU performance has not yet been benchmarked.
Status key
33 items on this page, by evidence
- Tested18 items
- Exercised by the published evaluation or the automated test suite.
- Supported, not benchmarked5 items
- Designed to work and expected to, but not yet measured.
- Planned10 items
- Not in the current release.
How a document moves
- 01UploadLocal browser UI
- 02Read or OCRText, Markdown, PDF · local OCR for scans
- 03Chunk and indexDense vectors + BM25, in memory
- 04Retrieve and reviewQwen3 4B on the local model server
- 05Bind citationsPython resolves passage labels to source ranges
- 06Human decisionAccept or correct, then export
- 07DestroyContents cleared; metadata record kept
Deployment modes
1 of 5 tested
Single machine, Docker Compose
Status: Tested
The model server, index and review app run as containers on one machine. The review app is published on localhost only.
Customer-owned Linux server
Status: Supported, not benchmarked
The same Compose stack on a server the customer runs.
Customer cloud tenant
Status: Planned
The same stack on a machine in the customer's own cloud account, under their keys and bill. Not yet deployed for a customer.
Air-gapped install
Status: Planned
Models and images installed first, then the network removed, with updates carried in by hand. Not yet validated.
Multi-node or Kubernetes
Status: Planned
Not part of the current release.
Document flow
3 of 4 tested
Formats
Status: Tested
Plain text, Markdown and native PDF. Scanned PDFs are routed to local OCR. Word documents are not accepted yet.
Upload handling
Status: Tested
Files are processed in memory. The web server spools an upload larger than 1 MB to a temporary file on the same machine while it is received.
Export
Status: Tested
The contract evidence matrix exports as CSV or JSON.
Document-management integration
Status: Planned
No connector to a DMS or matter system yet.
Model path
4 of 7 tested
Benchmarked configuration
Status: Tested
Qwen3 4B served by LM Studio (MLX) on the host, with Nomic Embed Text v1.5 embeddings. This is the configuration behind the published evaluation.
Docker demo configuration
Status: Tested
A 4-bit Qwen3 4B and Nomic embeddings served by Ollama inside the Compose stack. Covered by integration tests; not separately benchmarked.
Local-only endpoints
Status: Tested
The application refuses any model or OCR endpoint that is not on the local machine or its Compose network. No hosted model API is called.
Network at install
Status: Tested
Building the images pulls base images and Python packages, and the first start makes model downloads. Both need a network; review afterwards does not.
Telemetry and usage data
Status: Supported, not benchmarked
The application sends none, and its interface loads nothing from outside the machine. This rests on a review of the code, not a network capture; the model server's own behaviour has not been audited separately.
Update checks
Status: Supported, not benchmarked
The application neither checks for nor fetches updates. A new version is a rebuilt set of images, installed deliberately; the model-server image is pinned to an exact build.
Adapters trained on customer material
Status: Planned
LoRA fine-tuning is not in the current release.
Retrieval and OCR
2 of 3 tested
Hybrid retrieval
Status: Tested
Dense vectors and BM25 keyword search, fused by reciprocal-rank fusion, over clause-aware chunks of about 1,200 characters.
Source binding
Status: Tested
The model names passage labels; Python resolves them to exact character ranges in the indexed source.
Local OCR
Status: Supported, not benchmarked
GLM-OCR (0.9B) transcribes scanned pages inside the Compose stack. The client is unit-tested; transcription accuracy has not been measured.
Hardware
1 of 3 tested
Apple M4
Status: Tested
The reference machine for the published evaluation: Apple M4 laptop with a 10-core GPU and 16 GB of unified memory.
NVIDIA GPU systems
Status: Supported, not benchmarked
Designed to run on NVIDIA GPU systems; NVIDIA GPU performance has not yet been benchmarked.
Minimum specification
Status: Planned
No minimum hardware specification is published yet. The demo Compose file caps the model server at 7 GB of memory.
Identity and access
1 of 4 tested
Single user on localhost
Status: Tested
The current release is single-user and single-tenant, with no authentication. It is reached from the machine it runs on.
Authentication and roles
Status: Planned
Sign-in, role isolation and multi-user access are required before production.
Durable audit log
Status: Planned
Reviewer decisions are recorded per session, not yet in a durable audit trail.
Support access
Status: Planned
None in the current release: there is no remote-access or support channel, and the review app is published on localhost only. How operator access works in a pilot is to be agreed per engagement.
Data lifecycle
4 of 5 tested
Held in memory
Status: Tested
Jobs, review cells and decisions are held in memory and lost on restart. There are no backups.
Destroy on demand
Status: Tested
Clears a batch's text, chunks, embeddings, keyword index, cells and decisions. Document titles stay in memory until the service restarts.
Destruction record
Status: Tested
A JSON record on disk keeps file names, SHA-256 hashes, sizes and timestamps — not document contents.
Logs
Status: Tested
Only the web server's access log; the application writes no log of its own.
Encryption at rest and key custody
Status: Planned
Left to the customer's host today; to be specified per pilot.
Human review
2 of 2 tested
Uncertain, not guessed
Status: Tested
A cell the system cannot support is marked uncertain and handed to the reviewer.
Reviewer decisions
Status: Tested
Each cell is accepted or marked as a missed clause, false positive, wrong value, wrong span or ambiguous drafting.
Next
Check it against your own boundary.
A briefing walks through this page against your hosting, network and review requirements, and names what a pilot would still need to prove.
Diagnostic brief
Day 14 of 14
- 01Where the material actually livesMapped
- 02What must remain a human signatureListed
- 03The runtime, and where it sitsNamed
- 04Risks we found, in plain languageWritten
- 05Price to install, price to keep runningQuoted
Yours to keep — for your board, your IT team or another vendor.