What is PRML?
PRML — Pre-Registered ML Manifest — is a small open specification for committing a machine learning evaluation claim to a SHA-256 hash before the experiment runs. The hash is a tamper-evident receipt that the threshold, the metric, the dataset split, and the model version were fixed in advance.
The problem PRML solves
When a paper, model card, or system card publishes an evaluation claim — an accuracy of 0.76 on ImageNet, a refusal rate of 0.95 on HarmBench, a pass-rate of 0.42 on HumanEval — the published record almost never carries anything that lets a reader check which threshold and metric were committed, or when they came into existence.
This is not a hypothetical. Every published eval result implicitly asserts “we picked the threshold in advance,” but almost none of them prove it — measured at three of 29 in a programme that asked participants to publish their thresholds. A reviewer, a regulator, or a competitor can always argue: you tuned the threshold after seeing the model’s behavior. Without an audit trail, the claim is unfalsifiable.
PRML provides that audit trail. The hash is a 64-character receipt anyone can re-derive from the canonical bytes of the manifest. If the manifest is altered — threshold raised, metric swapped, dataset split changed — the hash changes. The cryptographic anchor makes post-hoc tuning detectable.
The problem PRML does not solve
PRML addresses commitment integrity, not publication completeness. A submitter can pre-register ten evaluation claims and publish only the two that look favorable. That is a real failure mode and the spec acknowledges it directly in §8.1. PRML is a primitive, not a full audit system. It is evidence, not authority. The governance process that decides whether a model ships still decides; PRML independently proves which criteria object existed at the relevant time, outside the deployment’s own history.
The spec also does not address dataset contamination, capability elicitation, or peer review. Those are separate problems with separate solutions. PRML is a small piece of plumbing for one specific gap.
The nine fields
version: prml/0.1
claim_id: <UUIDv7 for this claim>
created_at: <ISO 8601 datetime>
metric: accuracy
comparator: ">="
threshold: 0.90
dataset:
id: imagenet-val-2012
hash: <64-char SHA-256 of the eval set>
seed: 42
producer:
id: your-org-or-domain
Canonicalization rules: parse the YAML and re-emit it deterministically (keys sorted at every depth, deterministic quoting and float rendering, LF endings, single trailing newline, UTF-8), then SHA-256 over the canonical bytes. Byte-exactness across the four reference implementations is locked by 21 conformance vectors. The full spec is at spec.falsify.dev/v0.1.
Why cross-language byte-equivalence matters
The four reference implementations — Python, JavaScript, Go, Rust — produce identical hashes for all 21 conformance vectors (13 v0.1 stable + 8 v0.2 RFC). That parity is not cosmetic. It means external auditors can verify a hash with whatever toolchain they trust without having to trust a specific language runtime or library version. The spec is portable enough that two parties with different infrastructures can independently confirm a commitment.
Quick facts
- Spec name
- PRML — Pre-Registered ML Manifest Specification
- Version
- v0.1 (Working Draft, public review)
- Spec license
- Community Specification License 1.0
- Code license
- MIT (reference implementations)
- Author
- Cüneyt Öztürk
- Format
- 9 YAML fields, SHA-256 over canonical bytes
- Implementations
- Python · JavaScript · Go · Rust (byte-equivalent)
- Conformance
- 21 vectors (13 v0.1 stable + 8 v0.2 RFC), locked SHA-256 digests
- Editor tooling
- VS Code, JetBrains, Helix, Zed, Cursor — autocomplete and validation via the SchemaStore catalog
- SchemaStore
- Merged 2026-05-11 by Mads Kristensen (Microsoft) · ~5M weekly catalog downloads
- v0.2 RFC freeze
- 2026-05-22
- Public registry
- registry.falsify.dev
- Ecosystem listings
- SchemaStore catalog (IDE validation) · UK AISI Inspect extensions page (falsify-inspect, Analysis category)
- Specification
- spec.falsify.dev/v0.1
- Source
- github.com/studio-11-co/falsify
- Contact
- [email protected]
Frequently asked
No. Those are supply-chain provenance systems for software artifacts (which binary, which build, which signer). PRML is narrower: a commitment receipt for a numeric evaluation claim. The two are complementary; nothing prevents anchoring a PRML hash inside a Sigstore attestation.
PRML maps onto Annex IV technical documentation (Article 11) and Article 18 (documentation keeping) when high-risk AI systems publish evaluation claims; it can also furnish individual records inside an Article 12 log. It is not a compliance product — it is an open primitive that compliance documentation can cite.
PRML is intended to be cited, embedded, and re-used by anyone — auditors, labs, regulators, academic groups. Restrictive licensing would defeat the point. The reference implementations are MIT for the same reason.
A Git commit hash anchors the code, not the claim. A repo can contain an evaluation script that is run repeatedly with shifting thresholds; the commit hash does not change unless the script does. PRML anchors the claim — threshold, metric, split, model version — explicitly and atomically.
Yes. The reference CLI computes the hash locally without contacting any server. The public registry at registry.falsify.dev is optional; it provides discoverability and a permalink for sharing, but the spec itself works fully offline.
If you write evaluations: read the spec, then commit a manifest at the registry. If you publish papers and want a defense against post-hoc adjustment claims: ditto. If you need help authoring a manifest for an existing published claim, see the Diagnostic Sprint engagement.