Case study · Enterprise AI engineering

ComplyOS: a compliance-evidence engine that keeps working after the demo.

Training-compliance evidence usually lives scattered across an LMS, an HRIS, and a pile of spreadsheets. ComplyOS pulls it into one shared audit model and turns it into defensible evidence: gaps, a hashed ledger, privacy and retention workflows, and readiness packets — behind a single authorization engine that every interface has to go through.

  • 878 tests including adversarial BOLA/IDOR and cross-surface denial parity
  • 4 surfaces, 1 engine MCP, REST API, CLI, and web all call the same permission checks
  • Proposal-only AI drafts suggestions with PII redacted before anything is stored
The problem

Evidence is scattered; the liability is not.

When an auditor, a regulator, or a lawyer asks "prove this worker was current on required training," the answer is buried in silos that were never designed to agree with each other.

Data lives in silos

Completion records sit in one or more LMS platforms, roster and role data sits in the HRIS, and exceptions live in spreadsheets. No single view answers "who lacks valid evidence for a required item."

The trail is not defensible

Screenshots and ad-hoc exports cannot show what the numbers were derived from. When a report is challenged months later, there is no tamper-evident record of the inputs and the transformation.

Automation is risky

The tempting fix — auto-enroll, auto-remind, auto-close — is exactly where an over-eager script emails the wrong people or marks the wrong learner done. The guardrails have to come first.

The system

One audit model, one evidence trail, one readiness view.

ComplyOS ingests CSV exports and LMS connector data, normalizes it into a shared model, and runs the same audit question across every buyer track: which learners lack valid evidence for a required learning item.

ComplyOS evidence console overview: posture tiles showing 26 open gaps across 26 active workers, 14 high-risk gaps, 3 of 21 readiness controls designed, and 6 source signals awaiting human review, with a gaps-by-severity breakdown.

Overview. Live posture pulled from the audit and readiness services — open gaps, high-risk gaps, readiness controls designed, and regulatory signals awaiting human review — not a static snapshot.

Gap detection

The audit service reads normalized learner, learning-item, and record data and surfaces compliance gaps ranked by severity: missing required training, days overdue, and expired renewals, most severe first.

Tenant-scoped evidence ledger

Every audit and import writes an append-only ledger entry that hashes the raw inputs, the transformation, and the output, so a report can be defended long after it was produced.

Privacy and retention

Data-subject export and deletion are controller-approved cases, not one-click buttons. Legal holds block deletion until released, and a dry-run retention workflow cleans up only eligible, terminal records.

Readiness packets

A control-readiness matrix maps controls to artifacts and receipts and produces readiness-only packets for review — it maps evidence, it does not assert a certification.

ComplyOS compliance gap queue: a filterable table of workers with outstanding required training, showing department, missing courses, days overdue, and a severity badge, most severe first.

Gap queue. Worker compliance gaps from the audit service — department, missing courses, days overdue, and severity — the working list a compliance lead actually triages.

ComplyOS evidence ledger: an append-only table where each audit and import action is pinned to a tamper-evident SHA hash with a timestamp, an action type, and a plain-language summary.

Evidence ledger. Append-only entries, each pinning a tamper-evident hash over the audited data and its transformation, with a plain-language summary and timestamp.

The engineering

The guardrails are the product.

The interesting part of ComplyOS is not the dashboard; it is the discipline underneath it. Access rules are enforced once and shared everywhere, the AI can only propose, and the whole thing is held down by a large, adversarial test suite.

A single authorization choke-point

Every business workflow routes through an application service that calls require_permission(context, PERM_*). An actor context — tenant, actor, role, permissions, surface, request id — is carried into every service call, and roles map to a 37-permission catalog. Access rules cannot drift between interfaces because there is only one place they live.

Four surfaces, one set of rules

An MCP server (38 tools), a versioned FastAPI REST API, a Typer CLI, and an authenticated web console all call the same services. Cross-surface denial parity is enforced by tests, so a permission that is denied in the API is denied in the MCP tool and the CLI too.

AI that can only propose

The AI layer defaults to a least-privilege service account. It can suggest field mappings, anomaly summaries, gap explanations, and remediation drafts — but it cannot mark a learner compliant, promote an import, execute remediation, or change a rule. PII is redacted before any hashed or stored output, and every proposal carries provenance hashes plus a reject-and-expiry lifecycle.

878 tests, including the mean ones

The suite is not just happy-path coverage. The adversarial set includes tenant-isolation BOLA/IDOR probes, a secrets audit, export formula and XSS neutralization, adversarial import cases, and connector-failure-fails-closed checks — the failure modes that turn an enterprise pilot into an incident.

ComplyOS regulatory signal queue: proposed regulatory and microlearning signals for human review, each with a source, a signal type, a plain-language summary, and a state such as needs_review, accepted, or rejected.

Proposal-only AI. Regulatory and microlearning signals arrive as human-review proposals. Accepting or rejecting one moves it through review and logs the decision — it never mutates a rule or a training assignment on its own.

ComplyOS control readiness matrix: tenant data-governance metadata including data region, processing purpose, data categories, retention, and subprocessors, explicitly labeled readiness-only and not a certification.

Readiness, labeled honestly. The readiness view maps controls, artifacts, and data-governance metadata. The page states plainly that it does not claim SOC 2, FERPA, COPPA, or GDPR status.

The honest boundary

A readiness and evidence layer — not a compliance verdict.

ComplyOS is deliberately scoped as readiness and evidence tooling. It surfaces gaps, renewals, and a defensible audit trail, and it maps controls to artifacts. It does not decide that an organization is compliant or certified — those determinations, and the liability that comes with them, stay with the client and their counsel.

That boundary is not a limitation bolted on at the end. It is the reason the AI can only propose, the reason deletion needs recorded approval, and the reason the readiness view refuses to claim a framework it has not been audited against. The product stays in the readiness and control-mapping lane until customers, auditors, and counsel approve stronger claims.

Built by

Simon Gonzalez De Cruz

Forward-Deployed / Applied AI Engineer. Typed tool surfaces, service-layer authorization, and the operational discipline of 12+ years running enterprise learning-compliance systems before AI was a job title.

See the full hire page and verified work

Email about an FDE role