Skip to content

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

  1. 01UploadLocal browser UI
  2. 02Read or OCRText, Markdown, PDF · local OCR for scans
  3. 03Chunk and indexDense vectors + BM25, in memory
  4. 04Retrieve and reviewQwen3 4B on the local model server
  5. 05Bind citationsPython resolves passage labels to source ranges
  6. 06Human decisionAccept or correct, then export
  7. 07DestroyContents cleared; metadata record kept
Every step runs on the customer's machine. Nothing in the review path calls a hosted service.

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

  1. 01Where the material actually livesMapped
  2. 02What must remain a human signatureListed
  3. 03The runtime, and where it sitsNamed
  4. 04Risks we found, in plain languageWritten
  5. 05Price to install, price to keep runningQuoted

Yours to keep — for your board, your IT team or another vendor.