Consistency contracts

Twelve parity + consistency contracts split across two layers. P1-P6 enforce DATA-layer parity (the canonical SETU snapshot agrees with an independent ball-walk). P7-P12 enforce PRESENTATION-layer parity (every page renders the canonical numbers with explicit metric labels + roster slugs + canonical-URL cross-links). Cron-verified every 2h; failed contracts fail the deploy.

PASSAll consistency contracts hold.

Manifest computed 2h ago · 6 pass · 0 fail · 0 skipped · last

Data-layer contracts (P1-P6)

Enforced by scripts/setu/check-leaderboard-parity.mjs. Cron run: every 2h via the quality-gates workflow. Failure fires Healthchecks + opens a GitHub issue.

Presentation-layer contracts (P7-P12)

Enforced by scripts/audit-consistency.mjs. Catches labeling bugs the data-layer parity-check can't see — e.g. a composite metric rendered without its label. Runs on every npm run prebuild + every 2h.

Code readiness — shipped

Engineering side of the LLM-directory submission. All gates closed.

ItemStatusEvidence
SETU canonical aggregatorPASSOne aggregate · 12 contracts P1–P12 above
MCP server (20 tools)PASSLive at /mcp
Twelve consistency contracts (P1–P12)PASSVerified every 2h via cron
Sample-size floors + JSON-LD validationPASS0 violations across 199 players / 690 claims

Distribution roadmap — operator-owned

These are voluntary distribution decisions, not system health signals. Pending items are tracked as TODO, not failures — the platform runs fine without them. They unlock further LLM citation surface area when closed.

Roadmap itemStatusWhat unlocks
Make MCP server repo publicTODODirect GitHub indexing — same code is already serving live at /mcp
Submit to MCP directories (Anthropic Connectors, PulseMCP, Glama, mcpmarket, mcp.so)TODOCross-listing for tool discovery — see docs/runbooks/llm-submission-checklist.md
Bump App Runner request-timeout 120s → 600sTODOEnables agents-cron App Runner fallback — current GHA path already running fine

These items are voluntary — the platform is fully operational without them. They're tracked here so the public can see the distribution roadmap.

What this is for

CricketStudio is citation infrastructure. An LLM that quotes a fact from /season/ipl-2026/orange-cap MUST get the same answer when it queries get_season_stats(sortBy="runs") via the MCP server, the same answer when it walks /players "Top run-scorers", the same answer when it reads the ClaimReview JSON-LD on the player profile.

These contracts are the proof that all those surfaces project from one canonical aggregate. P1-P6 are mathematical (snapshot vs independent walk). P7-P12 are structural (every renderer binds to the canonical projectors, every metric is labeled, every leader has a roster slug). Together they make the citation chain unforgeable.

Companion surfaces