Validation¶
ValidationReport
dataclass
¶
ValidationReport(
revision_id: str,
task: Task,
status: ValidationStatus,
checks: tuple[Check, ...],
structural_counts: Mapping[str, int] | None = None,
structural_counts_absent_reason: str | None = None,
provenance: Mapping[str, Any] = dict(),
)
Tied to a revision and a task. Recomputed on demand, never stored as a badge.
Check
dataclass
¶
Check(
id: str,
stage: Stage,
result: Result,
message: str,
implicated_objects: tuple[str, ...] = (),
evidence_class: EvidenceClass = "structural",
)
One validation check, in the vocabulary the frozen schema fixes.
result distinguishes a check that ran and failed (FAIL) from one that could not run
(NOT_RUN) — the distinction K06 carried as scope and the schema carries here. Both are
kept: passed and scope remain as derived properties because the CLI and the evidence
generators read them, and because "did it pass" and "did it run" are different questions.