{
  "_purpose": "What LEXUN cannot currently observe, verify or estimate — the knowledge boundary as data. Each gap states why it exists, what it does to an answer, what evidence closes it, and what the build verifies it against. Missing information is modelled as missing, never filled with confidence.",
  "rule": "When information is missing the answer widens its uncertainty or the question is refused. No gap is closed by prose; each closes only when the evidence named in closes_when exists in the bundle and the corresponding gate passes.",
  "gaps": [
    {
      "id": "estimated-present",
      "domain": "world state",
      "geography": "all",
      "missing": "Any validated estimate of current conditions between official releases — no nowcast, no live feed.",
      "why": "Zero live connectors exist in this architecture, and no nowcast has been scored in public against the official release it tried to anticipate.",
      "effect": "The recorded world state can be stale between releases and says so; decisions read the last official figures, dated.",
      "verified_against": "source-registry.json live_connectors == 0",
      "closes_when": "A shadow nowcast beats the naive baseline over a pre-registered public sample."
    },
    {
      "id": "geography-beyond-gb",
      "domain": "coverage",
      "geography": "every country except GB",
      "missing": "Verified national evidence for any country other than the United Kingdom.",
      "why": "No second country has a bundled national dataset with clean licensing, so all sit at coverage Level 0.",
      "effect": "UK reference figures are withheld rather than passed off as local evidence; no local base rate, survival prior or condition is invented.",
      "verified_against": "coverage-registry.json countries_above_level_0 == 1",
      "closes_when": "A verified national dataset enters the bundle and the country acceptance gate passes."
    },
    {
      "id": "city-evidence",
      "domain": "coverage",
      "geography": "GB cities",
      "missing": "City-level evidence beyond the national series — including London.",
      "why": "No city dataset is bundled; a city page that borrowed national figures would be marketing, not coverage.",
      "effect": "No city-specific figures are shown anywhere; reference classes stay national.",
      "verified_against": "coverage-registry.json GB not_level_4_because",
      "closes_when": "City evidence with provenance enters the bundle."
    },
    {
      "id": "research-parameters",
      "domain": "models",
      "geography": "all",
      "missing": "Empirical research parameters — no study-derived coefficient shapes any simulation.",
      "why": "The research-to-parameter pipeline (rights check, causal classification, backtest, approval) is not built.",
      "effect": "Models run on user inputs and stated defaults only; the UK sits at coverage Level 3, not 4.",
      "verified_against": "coverage-registry.json GB not_level_4_because",
      "closes_when": "The parameter registry exists and its first parameter survives out-of-sample testing."
    },
    {
      "id": "calibration-record",
      "domain": "accuracy",
      "geography": "all",
      "missing": "A statistically meaningful calibration record for any model.",
      "why": "Fewer than ten outcomes have resolved per domain (most resolved in any domain: 6).",
      "effect": "No accuracy percentage is published for any model; scoreboards stay editorial and say so.",
      "verified_against": "forecast-ledger.json resolved outcomes per domain < 10",
      "closes_when": "Ten outcomes resolve in a domain — the same rule the whole site obeys."
    },
    {
      "id": "unsupported-question-classes",
      "domain": "models",
      "geography": "all",
      "missing": "Validated evidence for 10 whole question classes: conflict, elections, gambling, legal, markets, medical, power-claims, relationships, vague, weather.",
      "why": "No released model has proven skill in these domains, and an invented probability does the most harm exactly where events are rare or personal.",
      "effect": "The router refuses these questions by name and says why, instead of forcing them into the nearest model.",
      "verified_against": "platform/router.js RESTRICTED categories",
      "closes_when": "A model for a class clears the same promotion bar as everything else — proof, not interface."
    },
    {
      "id": "external-expectation-archive",
      "domain": "history",
      "geography": "all",
      "missing": "An archive of other forecasters' expectations — IMF and central-bank projection vintages, professional survey rounds.",
      "why": "No external forecast edition is bundled; licence review and vintage-preserving ingestion are outstanding.",
      "effect": "The expectation history on /accuracy covers LEXUN's own forecasts only — complete and uncut, but one voice.",
      "verified_against": "absence of external forecast vintage files in /data",
      "closes_when": "The backend fork's external forecast archive ingests its first vintage with rights cleared."
    },
    {
      "id": "licensed-long-history",
      "domain": "history",
      "geography": "GB and global",
      "missing": "Century-scale financial history (Bank of England Millennium dataset, Jordà-Schularick-Taylor Macrohistory, BIS long series).",
      "why": "These datasets are real and legitimate but are not bundled: licence review and a build path for large binary sources are outstanding.",
      "effect": "Historical context stops at the bundled series (Bank Rate to 1975, CPI averages to 1989); older analogues are not offered.",
      "verified_against": "absence of boe-millennium.json, jst-macrohistory.json, bis-long-series.json, imf-weo-vintages.json, boe-mpr-projections.json in /data",
      "closes_when": "Licence sign-off and vintage-preserving ingestion, on the backend fork."
    },
    {
      "id": "browser-gate-suite-not-shipped",
      "domain": "release verification",
      "geography": "all",
      "missing": "Thirty-eight browser and journey release gates written during development and never shipped inside the bundle: CSV import confirmation, width sweeps, end-to-end journeys, the refusal firewall, receipt handling, MCP semantics and the rest.",
      "why": "They were authored as scratch files outside the bundle. On any machine but the one that wrote them their scripts are absent, so the gate could neither run them nor honestly count them, and the published gate count described table rows rather than gates an owner can reproduce.",
      "effect": "The shipped gate suite is 38 gates, and every one of them runs wherever the bundle is unpacked. The behaviours the missing thirty-eight covered are still partly held by the engine suite, the mutation probes and the contradiction engine, but they have no dedicated gate of their own.",
      "verified_against": "every release-gate.mjs row resolves to a script present in the bundle",
      "closes_when": "Each is rewritten into gates/ inside the bundle, proven to fail on a deliberate break, and restored to the table."
    }
  ],
  "gap_count": 9,
  "complete": false,
  "complete_note": "This registry can never claim completeness: it lists the known gaps only. The world changes faster than any coverage list, so LEXUN is permanently incomplete by design and says so."
}
