{
  "$comment": "CANON-054 stats surface descriptor. Every number here is derived from a committed, re-runnable source of truth in this repo — never hand-typed and never estimated. MindFrame is pre-launch with no public cohort, so user-derived metrics declare themselves unavailable rather than publishing a zero: unmeasured is not zero, and a fabricated engagement number would violate both CANON-031 and this project's SOUL bar ('never claim more certainty than the data supports').",
  "schemaVersion": 1,
  "feedVersion": "analytica-feed-v1",
  "project": "mindframe",
  "title": "MindFrame by the numbers",
  "description": "What we can honestly measure about MindFrame today, and what we deliberately cannot measure yet.",
  "precomputed": true,
  "machineReadable": "/stats.json",
  "showcase": [
    "challenge-corpus",
    "content-backed-modes",
    "canonical-modes"
  ],
  "refreshSeconds": 604800,
  "refreshMechanism": "rebuild",
  "privacy": {
    "aggregateOnly": true,
    "smallCountSuppressionThreshold": 5
  },
  "generatedBy": "scripts/validate-game-content.mjs + apps/api/prisma/schema.prisma",
  "computedAt": "2026-08-24",
  "metrics": [
    {
      "id": "challenge-corpus",
      "label": "Unique training challenges",
      "value": 660,
      "unitOrDenominator": "unique challenges",
      "period": "as of 2026-08-24",
      "computedAt": "2026-08-24",
      "available": true,
      "source": "scripts/validate-game-content.mjs",
      "interpretation": "Every challenge is verified unique by prompt and id, with exact-match answer keys and per-mode minimum floors enforced at seed time. The number is produced by a gate that fails the build rather than by a count we maintain by hand."
    },
    {
      "id": "content-backed-modes",
      "label": "Content-backed training modes",
      "value": 16,
      "unitOrDenominator": "modes with a validated challenge corpus",
      "period": "as of 2026-08-24",
      "computedAt": "2026-08-24",
      "available": true,
      "source": "content/manifest.json",
      "interpretation": "Sixteen of the nineteen canonical modes draw on a validated challenge corpus. The remaining three are the Attention Lab modes, which are timing-based exercises and carry no challenge bank by design."
    },
    {
      "id": "canonical-modes",
      "label": "Canonical training modes",
      "value": 19,
      "unitOrDenominator": "GameMode values",
      "period": "as of 2026-08-24",
      "computedAt": "2026-08-24",
      "available": true,
      "source": "apps/api/prisma/schema.prisma (enum GameMode)",
      "interpretation": "Read directly from the database enum, which is the single source of truth a repo test asserts against — so this figure cannot drift from what the product actually ships."
    },
    {
      "id": "cognitive-fingerprint-axes",
      "label": "Cognitive Fingerprint axes",
      "value": 8,
      "unitOrDenominator": "versioned cognitive dimensions",
      "period": "as of 2026-08-24",
      "computedAt": "2026-08-24",
      "available": true,
      "source": "packages/types/src/public-agent-contract.json",
      "interpretation": "The public Cognitive Fingerprint contract defines eight named dimensions. The API and agent-facing passport response both consume that shared contract rather than maintaining independent axis rosters."
    },
    {
      "id": "registered-users",
      "label": "Registered users",
      "value": "unavailable",
      "unitOrDenominator": "accounts",
      "period": "n/a",
      "computedAt": "2026-08-08",
      "available": false,
      "unavailableReason": "MindFrame is pre-launch and has no public cohort. Publishing a zero or a placeholder would imply a measurement we have not made.",
      "interpretation": "We will publish this once there is a real cohort to report, together with the period it covers."
    },
    {
      "id": "calibration-improvement",
      "label": "Median calibration improvement over 10 sessions",
      "value": "unavailable",
      "unitOrDenominator": "percentage-point change in calibration error",
      "period": "n/a",
      "computedAt": "2026-08-08",
      "available": false,
      "unavailableReason": "This is the product's central claim, so it will only be published from real user outcomes over a stated window — never from synthetic or internal runs.",
      "interpretation": "The headline efficacy number. It stays unavailable until consented user data supports it, because an unearned figure here would be the single most misleading thing this page could say."
    }
  ]
}
