Evidence

Measured,
not asserted.

What was tested, how it was tested, what the numbers mean — and what they do not mean. Every figure on this page is either published in the governance repository or produced by the running system, and is quoted with the conditions that produced it.

129,857+Recorded governance evaluations across model architectures
171/171Test cases passed across coverage scenarios
16/16Multi-agent and collusion evaluations passed
219Test functions in the governance repository
0.0%False positives on the governed test suite
0.0%False negatives on the governed test suite
Claim boundary

These figures describe defined test suites in a declared environment. This is bounded verification, not a universal proof of AI safety. An Admissible Operating Envelope is a local, environment-bound claim; it is not evidence that an underlying model is globally safe.

Independent external research

Independently reproduced.
Including the failures.

Sayan Chowdhury of Kalaris Labs independently reran selected Morrison experiments at pinned commit fba06b75 and published the methodology, bounded findings, adversarial counterexamples and deployment limitations.

Independent reproductionMorrison Runtime Governance: A Bounded Reproduction — 154 selected tests passed; three declared finite models had zero unsafe governed states. Seven synthetic all-PERMIT counterexamples and lease-continuity/redemption weaknesses were also reproduced.
External architecture analysisCan the Agent Bypass the Gate? — analysis of shell, MCP, credentials, network routes and complete mediation at the execution boundary.
Evidence boundaryIndependent reproduction of repository-supplied tests, finite models and local mocks. Not a deployed gateway evaluation, third-party certification or full repository-suite audit. The documented counterexamples remain open evidence, not omitted exceptions.
Latency

Cost scales with trajectory length,
not with model size.

No model inference occurs in the governance path, so evaluation cost is a function of the number of steps and the rule count — not of prompt length or sampling.

Measured evaluation latency by class: steps, p50, p95 and throughput.
ClassStepsp50 (ms)p95 (ms)Throughput (eval/s)
Single-step10.2980.3383,284
Short20.7450.8071,323
Medium42.3342.403426
Long85.4145.522184
Very long1611.50111.72287
Multi-agent (joint)31.5591.622638

Single-threaded, horizon 3, 96 Ω rules across 9 domains, 800 iterations per class after 100 warm-up calls. Representative figures, not a production-hardware guarantee.

Benchmarks

Latency and throughput, with the environment stated.

The benchmark calls the real evaluation path — the same engine and deployment rule set the live service runs. Each class is warmed up, then timed per call; percentiles come from the sorted sample.

Raw datalatency.json
ConfigurationHorizon 3, 96 Ω rules across 9 domains, 800 iterations per class after 100 warm-up calls, single-threaded.
EnvironmentPython 3.12.14, Linux x86_64, 4 logical CPUs. Representative figures, not a production-hardware guarantee.
Finite-model verification

Reach_G(X₀) ∩ Ω = ∅, inside a model we declare in full.

A finite verifier enumerates every reachable state of a declared model, submitting each proposed transition to the same GovernanceKernel the service runs, and reports whether any prohibited state remains reachable. Enumeration is exhaustive over that model, not sampled. The result is SAFE_WITHIN_MODEL — and the qualifier is the claim, not a hedge.

What is establishedThat no declared prohibited state is reachable within the declared finite model and its stated assumptions, with the enumeration proven complete.
What is not establishedAnything outside that model. Not this deployment, not every tool set, not every future configuration, and not universal or open-world safety.
How it failsAn incomplete enumeration returns INCONCLUSIVE and can never be reported as safe. A counterexample returns the trajectory that reaches Ω.
Evidence producedA versioned artifact (mrg.global-verification.v2) carrying the model hash, transition-relation fingerprint, ruleset hash, verifier commit, verdict, completeness, assumptions, limitations, and the kernel evidence record behind every decision.
Reproduce itpython -m morrison_governance.global_verification.ci_gate --out DIR at the commit the artifact records. Re-running the enumeration is the only way to confirm it happened.
Revalidation triggerA material change to the model, ruleset, tools, permissions, environment or transition semantics. A verification that no longer matches the running configuration is reported as stale rather than carried forward.
Runtime evaluation layers

The evaluation hierarchy, layer by layer.

Separate from the finite-model verification above: this is what the engine runs against a real proposed trajectory, before execution. Each layer answers a different question, and every layer runs pre-execution.

A_safeSingle-step forbidden actions.
V2Source → sink data-flow taint, including cross-agent paths.
V3Forward reachability over horizon k ≥ 2.
V4State-space admissibility: permissions, scope, schema.
V4+ / V5Feasibility and environmental stability.
V5+Extended deployment layer: finance hardening and adversarial coverage.
Repository tests

219 test functions, in a repository you can read.

The governance engine, its Ω definitions and its deployment rules are exercised by the repository's own suite. Coverage scenarios, multi-agent scenarios and adversarial cases are part of it.

Coverage scenarios171 of 171 test cases passing.
Multi-agent16 of 16 collusion and delegation evaluations passing.
Tested architecturesGPT, Claude, Gemini, Llama and Mistral families — governance operates at the execution boundary, independent of the model.
Tested domainsFinance and banking, healthcare and PHI, cybersecurity and credentials, data privacy and GDPR, each with domain-specific Ω definitions.
Runtime evidence

What a governed run records.

Every governed run emits a record: the proposal, the policy state in force, the verdict and its governing rule, any approval, the execution result, and a hash linking it to the record before it.

Audit exportStructured JSON export of the evaluation chain, versioned by schema.
Latency recorded per runEvaluation latency, approval wait and downstream provider latency are recorded separately.
AttestationEach verdict carries the engine commit and ruleset hash that produced it.
Logging scopeMetadata only — tool arguments and payloads are not stored.
Deterministic replay

The same trajectory reproduces the same verdict.

Verdicts are produced by deterministic evaluation against declared constraints, not by a model judging its own output. That is what makes a record replayable rather than merely stored.

DeterminismThe same proposed trajectory against the same policy state produces the same verdict and the same trajectory hash.
Tamper detectionAn altered record fails chain verification: each entry hashes the one before it.
Replay targetReplay runs against the pinned engine commit recorded in the attestation.
Sovereign acceptance testing

What CI proves about an isolated deployment.

The sovereign profile is exercised in CI with the network removed, not simulated. Each item below is asserted by a test.

NetworkCI runs the platform in a network namespace with no interface but loopback, and the engine in a container started with no network.
PolicySigned local bundles enforced with no database, control plane or network connection.
SignaturesEd25519 verification with the standard library alone; the signing key never enters the environment.
TamperA tampered bundle fails closed and loads zero active policies.
InterfaceZero external requests — no font CDN, analytics or embeds. Measured on every build.
EvidenceEvidence packs, attestations and control mappings render locally, with no browser installed.
Fail-closed testing

The absence of an authorization is not an authorization.

Fail-closed is the default path and is not configurable away. It is asserted rather than described.

Unverifiable policyA bundle that fails signature verification loads zero active policies.
Evaluator unreachableThe transition is not authorized, so the call is not issued.
TimeoutResolved as not authorized, never as proceed.
Acceptance toolingVerifies a live unauthorised action and the evidence chain it produces.
Governed vs ungoverned

The comparison is run, not asserted.

The evaluation corpus contains adversarial and benign trajectories. The ungoverned path executes them; the governed path evaluates them at the boundary first.

Adversarial corpusTrajectories constructed to reach Ω through single-step, chained, cross-agent and multi-representation paths.
Benign corpusTrajectories that must remain admissible — the false-positive measurement.
Result0.0% false positives and 0.0% false negatives on the governed test suite.
Integrations

The same contract at every dispatch point.

The adapter changes with the framework; the authorization contract does not. Each integration places the boundary at the point where a call would otherwise be issued.

FrameworksOpenAI Agents, LangGraph, LangChain, AutoGen, Amazon Bedrock, MCP servers, custom orchestrators.
ContractIdentity → policy → verdict → approval → execution → evidence.
Open items

What has not been done yet.

Stated here rather than left for a reviewer to discover. Nothing below is claimed anywhere else on this site.

Independent benchmark auditNot yet commissioned. The benchmark is reproducible from the published report and raw data, but has not been audited by a third party.
Public reference verifierIn preparation. Until it ships, reproduction requires the repository rather than a hosted verifier.
Field validationNo sovereign deployment has run on customer hardware. Install media, images and the acceptance suite exist; a witnessed site record does not.
Third-party accreditationNone held. No Common Criteria evaluation, no NCSC assurance, no FedRAMP authorisation, no ATO.
Independent penetration testNot yet commissioned.
Domain coverageCoverage reflects the domains listed above. Other domains require their own envelope definition, Ω specification and validation.
Patent status

Stated precisely.

Application numberGB2600765.8
JurisdictionUnited Kingdom — UK Intellectual Property Office
StatusApplication filed. No grant is claimed. The current status of record is the one shown on the UKIPO public register.