Trust Model

Evidence Approval

Why generated data can’t self-approve.

Synthetic datasets, annotation outputs, and benchmark results stay evidence until a host validation or approval record exists. Generated data is accepted, recorded, and used — but it can never manufacture its own authority to gate.

Generated evidence is the most tempting place to launder confidence: a model writes gold answers, a benchmark reports a number, an annotator labels a batch — and suddenly a gate looks justified. EvalGlass closes that path by making approval a separate, host-owned act. The most a generator can do is propose.

The governance rules

ArtifactWhat it can claimWhat grants authority
Synthetic dataset Its status is always proposed — a hopeful declared_status is accepted but never honored. A host validation that re-issues the dataset as validated.
Annotation import Counts as an authority input only when it carries a non-empty validation_record. The host validation record attached by a reviewer.
Benchmark result Provides BenchmarkEvidence.supports(...) toward a threshold — evidence only. A host ApprovedThreshold; asking a benchmark to approve one raises GovernanceError.

These are not conventions a caller can opt out of — they are enforced in the library. import_synthetic_dataset(..., declared_status="validated") still returns a proposed dataset, and approve_threshold_from_benchmark(...) always raises rather than returning an approval.

Propose, then a human disposes Scaffolded gold, synthetic data, and generated rubrics all enter as informational. Only a host record — a validated dataset, an approved threshold, a calibrated judge, a signed annotation — turns evidence into gating power. This is Host Ownership applied to anything a machine produced.

Next steps