Skip to content

populace-build: TRACE TRO emission for dataset builds - #16

Merged
MaxGhenis merged 1 commit into
mainfrom
populace-build-tros
Jun 14, 2026
Merged

populace-build: TRACE TRO emission for dataset builds#16
MaxGhenis merged 1 commit into
mainfrom
populace-build-tros

Conversation

@MaxGhenis

Copy link
Copy Markdown
Contributor

Fixes #15

Adds populace.build.trace: TRACE Transparent Research Object (TRO) emission for populace dataset builds, conforming to the TROv vocabulary (https://w3id.org/trace/trov/0.1#).

What a build TRO binds

  • Outputs: the calibrated dataset H5 + calibration weights, by sha256, located at their pinned-revision Hugging Face URLs.
  • Restricted inputs: e.g. the IRS PUF — hash in the composition, canonical access URL at the location node, flagged pop:accessRestricted. A re-runner cannot fetch the bytes, but anyone with access can confirm the same checksummed input was used.
  • Build evidence: content-hashed payloads for the build config, the gate report, and stage records.

Honest gate claims

pop:gatesPassed is derived only from recorded verdicts (explicit passed bools, *_gaps == 0 counters) and omitted when the manifest records evidence without pass criteria — the TRO never claims more than the build recorded.

Interoperability

Canonical-JSON encoding and the composition fingerprint replicate policyengine.provenance.trace byte-for-byte (documented on each function); the module itself is stdlib-only and decoupled.

Shipped artifact

packages/populace-data/build/us/populace_us_2024.trace.tro.jsonld is generated from the existing release manifest (deterministic — emitted twice and diffed) and published at https://huggingface.co/datasets/policyengine/populace-us/resolve/main/releases/populace-us-2024-9f1260b-20260611/populace_us_2024.trace.tro.jsonld (fetched back and byte-identical). Composition fingerprint: 64c1db587b49f1000c49b55c3ee6e4aa35030626a057258573053407aae62df3.

Usage

uv run python -m populace.build.trace packages/populace-data/build/us/release_manifest.json \\
  --hf-revision <pinned-revision> --self-url <published-url>

34 tests; ruff clean.

🤖 Generated with Claude Code

Emit Transparent Research Objects (w3id.org/trace/trov/0.1) for populace
builds: composition pins output artifacts, restricted survey inputs, and
content-hashed build-config/gate/stage payloads by sha256; restricted
inputs are flagged pop:accessRestricted at their canonical access
location. tro_from_release_manifest converts the existing release
manifest mechanically; the shipped populace-us-2024-9f1260b-20260611
TRO is generated from it and published alongside the release on the
Hub. Hash algorithms replicate policyengine.provenance.trace exactly
(documented) so both ecosystems' fingerprints interoperate.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis marked this pull request as ready for review June 14, 2026 16:21
@MaxGhenis
MaxGhenis merged commit 9e7a302 into main Jun 14, 2026
4 checks passed
@MaxGhenis
MaxGhenis deleted the populace-build-tros branch June 14, 2026 16:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Emit TRACE TROs for populace builds

1 participant