- Deterministic code computes every result
- Checks and thresholds are written down before the run
- A check that cannot execute fails closed
- Every finding recomputes from the raw evidence
- In a paid engagement, high and critical findings receive attributed human review; the public synthetic specimens do not, and each one discloses that in its own metadata
Method
How a conclusion is reached.
This page exists so a reviewer can check the rules instead of taking our word for them. The rules below are the ones the code applies. If this page and the code ever disagree, the code is what ran.
Claim shape
One agent, one version, one operating envelope, one method.
A conclusion is narrow on purpose. It applies to the run that happened, under the envelope that was declared before the run started, and to nothing else.
It is not a broad certification. A conclusion says nothing about safety in general, compliance in general, or future behavior. And no score, confidence, or success claim produced by the assessed agent is accepted as a grade — the agent never grades itself.
Conclusion rules
The ladder, in precedence order.
These five rules are evaluated in this order. The first one that matches decides the conclusion; the rules below it are never reached. Aggregate performance does not outrank a material failure.
Material means high or critical. A failed scenario at either severity ends the assessment at not_supported, however well the rest of the run went. A check that cannot execute does not quietly pass — it produces insufficient_evidence. This ladder is implemented in factfile/assess.py, in the function that derives the conclusion.
Evidence grade
Two tiers of evidence, not four.
The schema names four grades, G0 through G3. The code distinguishes exactly one boundary: G0 and G1 are boundary-attested, G2 and G3 are operator-supplied. Nothing in the current version turns on the difference between G0 and G1, or between G2 and G3, so this page does not invent one.
In the current version, G0/G1 cannot be claimed by an operator — the schema rejects it — so no assessment today can conclude “supported.” The ceiling is “limited.” This is deliberate: an operator must not be able to upgrade its own evidence.
Independence rulesWhat the rejection looks like. A manifest that declares G0 or G1 fails validation with: manifest.evidence.grade G0/G1 is unavailable in MVP v0.1; a future boundary-attestation verifier must assign it. That verifier does not exist yet. Until it does, the honest answer to “can you certify this agent?” is no.
Dimensions
Seven dimensions, each with a declared threshold.
Every scenario is assigned to one dimension before the run. Each dimension carries a threshold that is declared in the manifest, not chosen after the results are in. One dimension below its threshold caps the conclusion at limited.
What gets read
Behavior is the output of layers. A dry run reads the layers.
An answer is produced by a stack: the model, the context assembled around it, the tools it can reach, the limits it is given, and the harness that wires them together. Scenarios observe the surface; the declared profile and the preserved traces expose the layers underneath. What follows is what a dry run reads — not how it reads it.
What is deliberately not published. The scenario bank, the holdout cases, and the per-layer test designs stay private — a case you can read in advance is a case you can tune against. The layers above say what is examined. The rules that turn any examination into a conclusion are this page.
Integrity versus authenticity
A hash is not an attestation.
The event chain and artifact digest detect mutation and make results recomputable. Anyone who can rewrite all evidence can also recompute both hashes. Authenticity requires a separate trusted observation boundary, capability kernel, signature, and verifier. The MVP labels this gap rather than calling a content hash attestation.
Why this is on the page and not in a footnote. Hash-chained evidence is the easiest thing in this field to oversell. It proves that the record you are holding is the record that was produced. It does not prove who observed the agent, or that anything was observed at all. Closing that gap is a different piece of engineering, and it is not done.
Boundaries
What this is, and what it is not.
- Not an accredited certification
- Not a legal compliance opinion
- Not proof that an agent is safe
- Not a penetration test
A red team and this are different tests. A red team asks whether your agent can be broken. This asks whether it followed the policy you sold when the tools failed, and whether the final state matches what it said it did. Both are worth doing. Neither substitutes for the other. The commercial rules that sit around this method are published too: what we will not be paid for.