Skip to content

Vellum-Works/openworkpapers

Repository files navigation

OpenWorkpapers

Open-source, agent-native audit workpapers for SOX and internal-controls testing. Collect evidence from control owners, let AI test every sampled item against the control's attributes, and keep each judgment anchored to the exact page, cell, or region of the source evidence — nothing becomes a signed workpaper until a human has reviewed it. A self-hostable alternative to spreadsheet-driven controls testing.

License Node TypeScript

Why we built this

Controls testing runs on evidence, and most of that evidence still moves through email threads and spreadsheets where the link between a conclusion and its support quietly breaks. When an AI is added on top of that, the risk compounds: a model that summarizes a population can also hallucinate one.

OpenWorkpapers is built on one rule: every judgment must be traceable to a locator in the source evidence — a PDF page and region, a spreadsheet cell, an OCR bounding box — and every AI verdict stays a suggestion until an auditor confirms it. Run inputs are frozen into hashed manifests, evidence files are content-hash verified, state changes land in an append-only audit trail, and a blind reperformance step re-tests a slice of confirmed judgments without showing the original answer.

What it does

Area Capability
PBC collection Request evidence from control owners through expiring access links; uploads are sha256-verified before they can enter a run.
Deterministic sampling Random and systematic sampling with frozen seeds; the selection is reproducible from the run's immutable input manifest.
Evidence parsing CSV, XLSX (streaming, cell locators), PDF (page + region coordinates), images (OCR word boxes). Scanned documents can route to an optional GPU parsing service (see services/mineru-service).
Approved mappings Unstructured evidence needs a human-approved source-to-fact mapping before facts feed a judgment; structure changes block the run instead of silently re-guessing.
AI judgments Each sampled item × attribute gets a verdict with confidence, rationale, and an evidence anchor; exceptions require an anchor by contract.
Human review Suggested judgments queue for confirm/reject; policy controls what may auto-merge; blind reperformance re-tests a sample of confirmed work.
Sign-off & export Reviewer return/approve cycles, revisioned sign-offs, watermarked drafts, and Word/ZIP export artifacts with a verifier.
BYOK Bring your own judgment provider endpoint instead of the hosted evaluator.

Getting started

Requirements: Docker with Compose.

docker compose up -d

This starts the web app on http://127.0.0.1:3000, the API on :4100, a worker, Postgres, MinIO (S3-compatible object storage), and Mailpit (:8025) for local email. Sign-in links land in Mailpit.

For development against source, see CONTRIBUTING.md.

Optional: scanned-document parsing (MinerU)

Text-layer PDFs, spreadsheets, and images parse locally out of the box. To parse scanned PDFs and get higher-quality image OCR, deploy the bundled GPU parsing service to Modal and point the worker at it:

cd services/mineru-service   # see its README for secrets and deployment
uv run modal deploy -m mineru_service.modal_app

Then set MINERU_ENABLED=true, MINERU_SERVICE_URL, MINERU_SERVICE_API_KEY for the worker and MINERU_CALLBACK_SECRET for the API (see .env.example). Without it, scanned PDFs block with a clear message and images fall back to local Tesseract — nothing degrades silently.

Architecture

pnpm monorepo:

  • apps/web — SvelteKit web app
  • apps/api — Fastify API (auth, PBC, runs, judgments, sign-offs, exports)
  • apps/worker — evidence verification, parsing, sampling, judgment pipeline, outbox dispatch
  • packages/engine — parsers, evidence mapping, sampling, judgment contracts (pure logic)
  • packages/db — Drizzle schema and migrations
  • packages/domain-sox — SOX control templates and evaluators
  • packages/storage — S3-compatible object store client (MinIO, R2, S3)
  • packages/verifier — export artifact verification
  • services/mineru-service — optional Modal-deployed MinerU parsing service (Python)

License

Apache-2.0. See LICENSE.

About

Open-source, agent-native audit workpapers for SOX and internal-controls testing. Every AI judgment stays anchored to evidence and under human review.

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages