Skip to content
All projects

Systemics Platform

Sovereign AI readiness assessments as software: deterministic scoring, generated deliverables

  • Next.js
  • Cloudflare Workers
  • D1
  • R2
  • TypeScript
Systemics Platform cover

The problem

Systemics sells sovereign AI readiness assessments: where does your data go when you use AI, what does your architecture make impossible, what is the gap to the next rung. Done manually, an assessment is weeks of interviews, spreadsheet scoring, and document assembly. The judgment is the valuable part. The assembly is not. The platform exists to remove the assembly.

Constraints

  • Same answers must produce the same score. An assessment whose scoring drifts between runs is unsellable to a general counsel.
  • Every deliverable must be an artifact: versioned, regenerable, citable.
  • Cheap to run at low volume. This is a services business, not a consumer app; fixed costs matter more than scale headroom.
  • The content model (dimensions, rungs, evidence rules) changes often and must ship like code.

Architecture

A Next.js front end on Cloudflare, backed by Workers, D1 for structured state, and R2 for artifacts.

The assessment engine is the core. Questionnaires are versioned TypeScript modules: dimensions, questions, evidence rules, and scoring functions in the repo, reviewed in PRs. Scoring is deterministic code over answers and evidence flags. No model in that path. An LLM participates only downstream, drafting narrative sections of the deliverable from the scored findings, with every claim tied back to a finding ID. The narrative can stumble in prose; it cannot invent facts, because the facts are the scored data.

The deliverable pipeline: scored assessment to structured markdown to styled HTML and PDF, stored in R2 with the assessment version in the key. Regenerating last quarter's report with this quarter's templates is a one-line operation, and a diff between versions is a diff between artifacts.

Decisions

Rules over models for scoring. The obvious move is to hand transcripts to an LLM and ask for a maturity score. That fails the determinism constraint and the auditability constraint at once. Scoring rules are boring code with tests, and a client can be shown exactly why a dimension landed at rung 2.

Cloudflare Workers over a container platform. The workload is spiky web traffic plus document generation, with near-zero steady state. Workers, D1, and R2 keep fixed cost near zero and remove a cluster from the threat model of a small firm's own platform. The tradeoff (CPU limits on generation) is handled by doing heavy rendering in queued steps rather than in the request path.

Content as code. The readiness model itself lives in the repo. Changing a rung definition is a PR with a diff a partner can review, and every generated deliverable records which model version produced it.

Outcome

The platform runs the public assessment flow on systemics.ai and the internal deliverable pipeline. Assessment turnaround dropped from weeks of assembly to days, with human effort concentrated on interviews and judgment, where it belongs. The scoring engine has not produced a disputed score since the evidence rules were made explicit in the questionnaire, and regenerating deliverables across template versions is routine. The honest limit: the pipeline assembles; it does not interview. Discovery quality still decides assessment quality.