Dependency-light provenance envelope validator for model and release claims
Project description
model-provenance-validator
model-provenance-validator keeps model and release claims attached to small,
checkable provenance envelopes. It validates the JSON shape that says what the
claim is about, where the reference came from, when it was retrieved, and what
validation status a maintainer is willing to publish.
The package has no runtime dependencies. It includes a small schema validator for the envelope shape used by the CLI.
Use it when a README, report, model-card note, release packet, or AI workflow claim needs a source reference before the claim is repeated publicly.
Install
python -m pip install model-provenance-validator
For local development:
python -m pip install -e ".[test]"
python -m pytest
Usage
model-provenance-validator envelope.json
model-provenance-validator envelope.json --json
model-provenance-validator *.provenance.json --summary
model-provenance-validator *.provenance.json --summary --json
model-provenance-validator *.provenance.json --proof-packet
model-provenance-validator *.provenance.json
The command exits with status 1 when any envelope fails validation. Malformed
or unreadable envelope files are reported as invalid results so batch runs can
continue and produce a complete action list.
Use a custom schema:
model-provenance-validator envelope.json --schema schema.json
Run the bundled example:
model-provenance-validator examples/envelopes/release.provenance.json
Envelope shape
Required top-level fields:
envelope_versionsubjectsourcereferencesvalidation
Allowed source.kind values:
official-docpaperrelease-notelocal-fixtureother
Allowed validation.status values:
verifiedpartialunknown
Minimal valid envelope
{
"envelope_version": "1",
"subject": "public-surface-sweeper README claim",
"source": {
"name": "public-surface-sweeper README",
"kind": "release-note"
},
"references": [
{
"name": "Repository README",
"locator": "https://github.com/HarperZ9/public-surface-sweeper",
"retrieved_at": "2026-06-13"
}
],
"validation": {
"status": "verified",
"notes": "Claim checked against the public README surface."
}
}
Example text output
release.provenance.json: valid
draft.provenance.json: invalid
$.references: expected at least 1 item(s)
Example JSON output
[
{
"path": "release.provenance.json",
"valid": true,
"errors": []
}
]
Example summary output
total: 3
valid: 2
invalid: 1
error_count: 1
action_items:
- draft.provenance.json: resolve 1 validation error(s)
Proof-surface packet output
Use --proof-packet when provenance validation should feed repo-proof-index
or a release-readiness report. The packet follows the shared proof-surface
interop shape: claims, checks, and action items in one JSON object. The generated
packet is self-checked before printing so producer drift fails before entering
the pipeline.
model-provenance-validator *.provenance.json --proof-packet > provenance.packet.json
repo-proof-index provenance.packet.json --summary
What it validates
- required fields;
- JSON object and array shape;
- non-empty string fields where required;
- exact constants such as
envelope_version: "1"; - enum values for source kind and validation status;
- unexpected fields when
additionalPropertiesis false.
What it does not do
- It does not fetch the referenced source.
- It does not decide whether the underlying claim is true.
- It does not prove a model is safe.
- It does not certify provenance.
- It does not replace human review of the referenced material.
Release-readiness use
model-provenance-validator is the provenance-envelope point in a proof-surface
pipeline:
claim -> source reference -> provenance envelope -> validation result -> proof index
Its job is to keep model/reference claims from floating without a source, retrieval date, and validation status.
Authorship
Created and maintained by Zain Dana Harper. Claude Code contributed to the initial implementation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file model_provenance_validator-0.1.1.tar.gz.
File metadata
- Download URL: model_provenance_validator-0.1.1.tar.gz
- Upload date:
- Size: 10.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6016fe79e6653b7f474088f31c666139abb0da7840ae9e5531803055aef6271
|
|
| MD5 |
3fad5366c8ae1c039a103464dba22b71
|
|
| BLAKE2b-256 |
e7ee8446a8df6107f63d86b9bad1cd96df4f1b54ae8c0258c5bcdbd4207d92b8
|
Provenance
The following attestation bundles were made for model_provenance_validator-0.1.1.tar.gz:
Publisher:
publish-pypi.yml on HarperZ9/model-provenance-validator
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
model_provenance_validator-0.1.1.tar.gz -
Subject digest:
c6016fe79e6653b7f474088f31c666139abb0da7840ae9e5531803055aef6271 - Sigstore transparency entry: 1818460788
- Sigstore integration time:
-
Permalink:
HarperZ9/model-provenance-validator@3af471ce3ec56bb195101e0504026199444cb4bf -
Branch / Tag:
refs/heads/main - Owner: https://github.com/HarperZ9
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@3af471ce3ec56bb195101e0504026199444cb4bf -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file model_provenance_validator-0.1.1-py3-none-any.whl.
File metadata
- Download URL: model_provenance_validator-0.1.1-py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd8dc7f141e3c26057fc908b68fbe3052aba66da2d52b05b5a64a36cd44cad8c
|
|
| MD5 |
4725435f111bd6bc03d9f00f5b044fba
|
|
| BLAKE2b-256 |
52ab07a4c2d1ff4cfd08af3efaf215beb622413116f40984d51c95413ad18834
|
Provenance
The following attestation bundles were made for model_provenance_validator-0.1.1-py3-none-any.whl:
Publisher:
publish-pypi.yml on HarperZ9/model-provenance-validator
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
model_provenance_validator-0.1.1-py3-none-any.whl -
Subject digest:
cd8dc7f141e3c26057fc908b68fbe3052aba66da2d52b05b5a64a36cd44cad8c - Sigstore transparency entry: 1818460822
- Sigstore integration time:
-
Permalink:
HarperZ9/model-provenance-validator@3af471ce3ec56bb195101e0504026199444cb4bf -
Branch / Tag:
refs/heads/main - Owner: https://github.com/HarperZ9
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@3af471ce3ec56bb195101e0504026199444cb4bf -
Trigger Event:
workflow_dispatch
-
Statement type: