This matrix maps 8 surfaces against 6 validation dimensions — 31 enforced checks in all — and names the test that guards each cell. It is a coverage map of what npm run audit:data and the build verify, not a live test runner: cells name the enforcing mechanism rather than a real-time pass/fail.
- 8 surfaces × 6 dimensions.
- Each cell names the test that enforces it.
- Machine-readable at /validation/data.json, .csv, .jsonl.
Coverage
| Surface | sourced | labeled | schema-valid | reconciled | no-overclaim | versioned |
|---|---|---|---|---|---|---|
| Observations | ✓ | ✓ | ✓ | — | ✓ | ✓ |
| Sources | ✓ | — | ✓ | ✓ | ✓ | ✓ |
| Facts | ✓ | — | ✓ | — | ✓ | ✓ |
| Dataset export | ✓ | — | ✓ | ✓ | ✓ | ✓ |
| CSV / JSONL exports | — | — | ✓ | ✓ | — | ✓ |
| JSON Schemas | — | — | ✓ | ✓ | — | ✓ |
| Routes & sitemaps | — | — | — | ✓ | ✓ | ✓ |
| Versions & payloads | — | — | ✓ | ✓ | — | ✓ |
A ✓ marks an enforced check; hover a cell for the enforcing test. Run the checks locally with the commands at /maintainers/commands.
Validation tiers
The checks run at three depths so a long session validates proportionally: validate:train (lint + data audit) per change, validate:batch (+ full tests) every few changes, and validate:release (+ static build) before publishing. The release tier always runs the complete suite. Long autonomous sessions follow docs/marathon-train-policy.md (batched version bumps, hosted verification only after push). See /maintainers/commands.