ODF Validation Contract

This document defines the parity contract for ODF validation in openxml-audit.

Scope

Pinned Corpus

Sample entry contract:

Run Report Schema

Primary report: JSON output from scripts/odf/run_reference_validators.py.

Top-level fields:

Per-sample fields:

Per-run fields:

Normalization Rules

Python rows:

Reference rows (ODF Toolkit / OPF):

Comparison Contract

scripts/odf/compare_reference_results.py compares Python vs each reference tool independently.

Skipped samples are recorded when either run status is not ok.

Drift Gate Contract

scripts/odf/check_reference_drift.py compares a current compare report to a pinned baseline and enforces threshold policy.

Policy file:

Default strict policy:

Failure conditions:

Gate output:

Waiver Model

Waivers are declared in data/odf/reference_baseline/2026-03-09/waivers.json.

Required fields:

Optional fields:

Allowed waiver kinds:

Rules:

CI Calibration Workflow

Workflow: .github/workflows/odf-reference-calibration.yml

Reproducibility

To regenerate baseline artifacts:

python scripts/odf/run_reference_validators.py \
  --corpus-manifest data/odf/reference_corpus/manifest.json \
  --output data/odf/reference_baseline/2026-03-09/reference_runs.json

python scripts/odf/compare_reference_results.py \
  --input data/odf/reference_baseline/2026-03-09/reference_runs.json \
  --output data/odf/reference_baseline/2026-03-09/mismatch_report.json \
  --summary data/odf/reference_baseline/2026-03-09/mismatch_summary.md

python scripts/odf/build_mismatch_triage.py \
  --compare data/odf/reference_baseline/2026-03-09/mismatch_report.json \
  --runs data/odf/reference_baseline/2026-03-09/reference_runs.json \
  --output data/odf/reference_baseline/2026-03-09/mismatch_triage.md

python scripts/odf/check_reference_drift.py \
  --baseline data/odf/reference_baseline/2026-03-09/mismatch_report.json \
  --current data/odf/reference_baseline/2026-03-09/mismatch_report.json \
  --policy data/odf/reference_baseline/2026-03-09/drift_policy.json \
  --waivers data/odf/reference_baseline/2026-03-09/waivers.json \
  --output data/odf/reference_baseline/2026-03-09/drift_report.json \
  --summary data/odf/reference_baseline/2026-03-09/drift_summary.md

Known Limitations

Reference Runner Troubleshooting