{
  "schema": "csoai.live-state/1",
  "title": "CSOAI live state — the numbers a lane may quote",
  "contract": {
    "quote_this": "Every count a lane publishes must come from this endpoint, by field name.",
    "not_here_not_established": "If a number is not in this payload, it is NOT established. Do not publish it as a fact, do not carry it forward from an older report, and do not reconcile two stale figures by picking one. Measure it, or say it is unmeasured.",
    "derivation": "Every value below is computed from a committed artifact. No count in this endpoint's source is typed by hand.",
    "freshness": "as_of is read OUT OF the artifact and as_of_field names the key it came from. There is no new Date() in this endpoint. Two calls any interval apart return identical as_of values; if they ever differ, this endpoint has the defect it was built to prevent.",
    "freshness_self_test": "curl -s https://councilof.ai/api/state | jq -S '[..|objects|select(has(\"as_of\"))|{source,as_of_field,as_of}]' > /tmp/a; sleep 5; curl -s https://councilof.ai/api/state | jq -S '[..|objects|select(has(\"as_of\"))|{source,as_of_field,as_of}]' > /tmp/b; diff /tmp/a /tmp/b && echo IDENTICAL",
    "kinds": {
      "measured": "A run happened against a frozen bank or source and was graded.",
      "probed": "Something was contacted and answered, at as_of.",
      "catalogued": "It is listed in a register. Nothing was contacted and nothing was run.",
      "declared": "A slot or claim published so a gap is visible. No run behind it.",
      "unmeasured": "It exists and we have not measured it — stated, not implied."
    },
    "kinds_rule": "These are never collapsed and never summed together. A catalogue entry is not a reachable server; a declared slot is not a measurement. Adding across kinds is how a fleet of 1 reachable server got published as 378."
  },
  "board": {
    "authority": "public/signed/gspc-board.signed.json",
    "live_endpoint": "/api/gspc",
    "axis_slots": {
      "value": 22,
      "kind": "declared",
      "source": "public/signed/gspc-board.signed.json → totals.axes",
      "as_of": "2026-08-12 (13 canonical axes) · 2026-08-18 (jail)",
      "as_of_field": "measured_on.date",
      "note": "A count of SLOTS on the board. A slot is published so a gap is visible; it is not evidence that anything was measured. Never quote this number alone."
    },
    "measured_axes": {
      "value": 15,
      "kind": "measured",
      "source": "public/signed/gspc-board.signed.json → totals.measured_axes",
      "as_of": "2026-08-12 (13 canonical axes) · 2026-08-18 (jail)",
      "as_of_field": "measured_on.date",
      "note": "Slots with a real graded run behind them. This is the number to quote if you quote only one."
    },
    "unmeasured_axes": {
      "value": 7,
      "kind": "declared",
      "source": "public/signed/gspc-board.signed.json → totals.unmeasured_axes",
      "as_of": "2026-08-12 (13 canonical axes) · 2026-08-18 (jail)",
      "as_of_field": "measured_on.date",
      "note": "Declared slots with no run behind them. Published so the gap is visible."
    },
    "public_count": {
      "value": "22 axes · 15 measured",
      "kind": "declared",
      "source": "public/signed/gspc-board.signed.json → totals.public_count",
      "as_of": "2026-08-12 (13 canonical axes) · 2026-08-18 (jail)",
      "as_of_field": "measured_on.date",
      "note": "The short sentence. Safe to quote verbatim because it carries both numbers."
    },
    "count_grammar": {
      "value": "22 axes are on the board; 15 of them carry a measurement and 7 are declared slots with no run behind them. The larger number counts slots, the smaller counts measurements — quote both or quote the smaller. A published slot exists so the gap is visible; it is not evidence of anything having been measured.",
      "kind": "declared",
      "source": "public/signed/gspc-board.signed.json → totals.count_grammar",
      "as_of": "2026-08-12 (13 canonical axes) · 2026-08-18 (jail)",
      "as_of_field": "measured_on.date",
      "note": "The long form, verbatim from the signed payload. Quote this when a report has room for it."
    },
    "by_family": {
      "value": {
        "gspc": {
          "axes": 14,
          "measured": 14,
          "note": "The 14 behavioural axes: a model fleet answers a frozen bank, graded deterministically."
        },
        "financial": {
          "axes": 8,
          "measured": 1,
          "note": "The 8 financial/domain axes (ADR-001). One is measured — provenance-controls, from a deterministic mainnet read of 6 issuer accounts. The other seven are declared slots with no run. None of the eight is a model comparison, so none has a leader, an accuracy or a separation determination, and none contributes to any mean below."
        }
      },
      "kind": "declared",
      "source": "public/signed/gspc-board.signed.json → totals.by_family",
      "as_of": "2026-08-12 (13 canonical axes) · 2026-08-18 (jail)",
      "as_of_field": "measured_on.date",
      "note": "The two families are measured by two different instruments and their counts are not interchangeable. A behavioural-family figure is not a board figure."
    },
    "live_derivation_crosscheck": {
      "note": "The signed file is a snapshot of what /api/gspc computes from the axis arrays. Both are computed here so a drift between them is published rather than silently inherited by whichever surface a lane happened to read.",
      "source": "functions/api/_gspc_axes_{a,b,fin}.ts (the arrays /api/gspc derives from)",
      "live_axis_slots": 22,
      "live_measured_axes": 15,
      "live_unmeasured_axes": 7,
      "signed_snapshot_agrees": true,
      "on_disagreement": "If signed_snapshot_agrees is false, NEITHER number is quotable until the snapshot is re-derived and re-signed. Do not pick the one you prefer."
    },
    "signature": {
      "signer": "did:web:csoai.org#gspc-board-22axis-2026",
      "alg": "Ed25519",
      "keyid": "sha256:51dd13decb9932423495dd378484fe2b43d7304d69d6526fad10251b88216ab7",
      "content_id": "0c7e851074cec32b6ebecc2c4c2fc0c89b8a817fbd0c8760251be602808b1684",
      "custody": "3-party MPC (Coinbase cb-mpc, Ed25519 additive), owner's own Oracle tenancy",
      "verify": "node scripts/gspc-board-verify.mjs <this file>  — needs no estate code, see the script header",
      "sig_input": "canonical JSON (recursively sorted keys, no whitespace) of this payload with the custody_attestation field removed; content_id is sha256 of exactly those bytes"
    },
    "caveat": "Measurement, not certification. A score describes a measured run on a frozen split on a date; it does not describe anyone's compliance with anything."
  },
  "mcp_fleet": {
    "authority": "evidence/mcp-registry.json",
    "live_endpoint": "/api/mcp",
    "produced_by": "scripts/mcp-probe.mjs",
    "probe_method": "JSON-RPC 2.0 over HTTPS POST: initialize -> tools/list, MCP protocolVersion 2024-11-05. A server counts as reachable only if initialize returned a JSON-RPC result.",
    "probe_host": "NICHOLASs-MacBook-Air-2.local",
    "reachable_distinct_servers": {
      "value": 1,
      "kind": "probed",
      "source": "evidence/mcp-registry.json → counts.reachable_distinct_servers",
      "as_of": "2026-08-26T11:57:16.969Z",
      "as_of_field": "counts.finished",
      "note": "Servers that answered MCP initialize from probe_host. Alias endpoints for the same server are excluded, so this is the honest fleet size."
    },
    "reachable_endpoints": {
      "value": 2,
      "kind": "probed",
      "source": "evidence/mcp-registry.json → counts.reachable_endpoints",
      "as_of": "2026-08-26T11:57:16.969Z",
      "as_of_field": "counts.finished",
      "note": "URLs that answered. Larger than the distinct server count when a server is behind an alias."
    },
    "unreachable_endpoints": {
      "value": 1,
      "kind": "probed",
      "source": "evidence/mcp-registry.json → counts.unreachable_endpoints",
      "as_of": "2026-08-26T11:57:16.969Z",
      "as_of_field": "counts.finished",
      "note": "Contacted and did not answer. This is a result, not an absence of one."
    },
    "catalogued_not_probed": {
      "value": 6,
      "kind": "catalogued",
      "source": "evidence/mcp-registry.json → counts.catalogued_not_probed",
      "as_of": "2026-08-26T11:57:16.969Z",
      "as_of_field": "counts.finished",
      "note": "Ids with no published endpoint. NEVER contacted. Adding this to a reachable count is the specific arithmetic that produced the inflated fleet figures."
    },
    "tools_probed": {
      "value": 4,
      "kind": "probed",
      "source": "evidence/mcp-registry.json → counts.tools_probed",
      "as_of": "2026-08-26T11:57:16.969Z",
      "as_of_field": "counts.finished",
      "note": "Derived from the length of a tools array a server actually returned."
    },
    "tools_catalogued_not_probed": {
      "value": null,
      "kind": "unmeasured",
      "source": "evidence/mcp-registry.json → counts.tools_catalogued_not_probed",
      "as_of": "2026-08-26T11:57:16.969Z",
      "as_of_field": "counts.finished",
      "note": "Null is the honest value: a catalogue's asserted tool count is never adopted as a probed one."
    },
    "external_catalogues_not_probed": {
      "value": [
        {
          "id": "gspc-os-vendored",
          "count": 363,
          "unit": "server directories",
          "source": "CSOAI-ORG/gspc-os servers/ (private, pod-only)",
          "probe_state": "UNVERIFIABLE from any machine that has not checked out gspc-os. Probe with scripts/mcp-stdio-probe.py on a host where the repo exists; commit its output before citing any number from it."
        }
      ],
      "kind": "catalogued",
      "source": "evidence/mcp-registry.json → counts.external_catalogues_not_probed",
      "as_of": "2026-08-26T11:57:16.969Z",
      "as_of_field": "counts.finished",
      "note": "Directory listings in other repos. Each entry states why its number is unverifiable from this machine. These counts are NOT part of any fleet figure and must not be quoted as one."
    },
    "never_sum": "reachable and catalogued-not-probed are different kinds and are never added. A directory listing is not a fleet."
  },
  "signed_cards": {
    "authority": "public/signed/card_index.json",
    "live_endpoint": "/api/cards",
    "count": {
      "value": 150,
      "kind": "catalogued",
      "source": "public/signed/card_index.json → cards[].length",
      "as_of": "2026-08-19T09:24:39.174287+00:00",
      "as_of_field": "created",
      "note": "Counted from the index array, not read off its n_cards header, so a header that drifts from its own contents cannot become the published number."
    },
    "signed_entries": {
      "value": 150,
      "kind": "catalogued",
      "source": "public/signed/card_index.json → cards[].filter(signed === true).length",
      "as_of": "2026-08-19T09:24:39.174287+00:00",
      "as_of_field": "created",
      "note": "Entries carrying a signature. signed=true means the card carries a JWS signature under kid."
    },
    "header_agrees": {
      "n_cards_header": 150,
      "agrees": true,
      "note": "If agrees is false the artifact is internally inconsistent and neither number is quotable."
    },
    "packaged_at": {
      "value": "2026-08-24T07:58:34.454934+00:00",
      "kind": "declared",
      "source": "public/signed/card_index.json → packaged_at",
      "as_of": "2026-08-24T07:58:34.454934+00:00",
      "as_of_field": "packaged_at",
      "note": "When the bundle was packaged. Later than `created`, and not a measurement date."
    },
    "chain_head": "66856aca4a1f9390f0f51d89b8b96d984ab902852ed77b0254730758260ad1da",
    "pubkey": "d4cb0eaa16d5f50bf7633a36aa34fe09a55e124b9316ded2abdb122bb9c37e38",
    "how_to_verify": {
      "steps": [
        "1. Fetch /signed/card_index.json — the index and its chain head.",
        "2. Fetch /.well-known/did.json — the estate's published keys. Trust anchors HERE, not in the payload.",
        "3. Verify each card's Ed25519 signature against the kid on its entry.",
        "4. Re-walk the SHA-256 hash chain and check it terminates at `head`."
      ],
      "offline": "The whole path runs offline. It needs neither our servers nor our permission.",
      "guide": "/signed/HOW-TO-VERIFY.md",
      "page": "/gspc-verify"
    },
    "floor_note": "This count is the verifiable floor: it is what the published index actually contains. Larger figures have circulated for card sets in other repos and for cards never published here — see not_covered. A number that no published index contains is not a card count."
  },
  "card_chain": {
    "authority": "public/signed/chain-facts.json (derived by scripts/derive-chain-facts.mjs from chain.json + every card body)",
    "manifest": "/signed/chain.json",
    "verifier": "/signed/verify-card.mjs",
    "guide": "/signed/HOW-TO-VERIFY.md",
    "bodies_published": {
      "value": 313,
      "kind": "catalogued",
      "source": "public/signed/chain-facts.json (derived by scripts/derive-chain-facts.mjs from chain.json + every card body) → bodies.published",
      "as_of": "2026-08-19T09:24:39.174287+00:00",
      "as_of_field": "card_index.json → created",
      "note": "Card bodies present in public/signed/cards/, counted from the directory."
    },
    "bodies_verified_valid": {
      "value": 313,
      "kind": "measured",
      "source": "public/signed/chain-facts.json (derived by scripts/derive-chain-facts.mjs from chain.json + every card body) → bodies.verified_valid",
      "as_of": "2026-08-19T09:24:39.174287+00:00",
      "as_of_field": "card_index.json → created",
      "note": "Bodies that VERIFY: id recomputed from the canonical body and the Ed25519 signature checked against the pinned card-attestation key, by the same verifier we publish. This is a measurement, not a catalogue entry — the check was run."
    },
    "distinct_signing_keys": {
      "value": 1,
      "kind": "measured",
      "source": "public/signed/chain-facts.json (derived by scripts/derive-chain-facts.mjs from chain.json + every card body) → bodies.distinct_pubkeys",
      "as_of": "2026-08-19T09:24:39.174287+00:00",
      "as_of_field": "card_index.json → created",
      "note": "Distinct pubkey values across the published bodies."
    },
    "chain_positions": {
      "value": 335,
      "kind": "catalogued",
      "source": "public/signed/chain-facts.json (derived by scripts/derive-chain-facts.mjs from chain.json + every card body) → chain.positions",
      "as_of": "2026-08-19T09:24:39.174287+00:00",
      "as_of_field": "card_index.json → created",
      "note": "Positions listed in the chain manifest, recounted from links[] rather than read off its header."
    },
    "bodies_withheld": {
      "value": 22,
      "kind": "declared",
      "source": "public/signed/chain-facts.json (derived by scripts/derive-chain-facts.mjs from chain.json + every card body) → chain.bodies_withheld",
      "as_of": "2026-08-19T09:24:39.174287+00:00",
      "as_of_field": "card_index.json → created",
      "note": "The signed body carries an internal identifier we do not publish. The body is what the signature is over, so it cannot be redacted without invalidating its id."
    },
    "withheld_attested_by_published_parent": {
      "value": 1,
      "kind": "measured",
      "source": "public/signed/chain-facts.json (derived by scripts/derive-chain-facts.mjs from chain.json + every card body) → withheld.attested_by_published_parent",
      "as_of": "2026-08-19T09:24:39.174287+00:00",
      "as_of_field": "card_index.json → created",
      "note": "A withheld id is cryptographically attested only when a PUBLISHED card's signed body names it as `prev` — the signature then covers the reference. For the rest, the id and signature appear only in an unsigned manifest, so their existence rests on our word. Both numbers must travel together; quoting only the count of withheld positions would present a disclosure as a proof."
    },
    "manifest_signed": {
      "value": false,
      "note": "false means /signed/chain.json carries no signature of its own. Each LINK carries a signature, but the list — the ordering, and the assertion that nothing was dropped — is unsigned. Do not describe the manifest as proof that no card was removed."
    },
    "index_relationship": "card_index.json is a SUBSET index frozen at the verifiable floor (BOARD-RULING.md), not a count of the published card store. Its rows all resolve to published bodies. Quoting the index row count as 'cards published' understates the store; quoting the store as the index overstates the index. They are two different facts and both are published here.",
    "never_conflate": "bodies_published is the STORE. signed_cards.count is the INDEX. bodies_withheld is a DISCLOSURE, and only withheld_attested_by_published_parent is a PROOF. Four different numbers about four different things — never substituted for one another."
  },
  "claims_register": {
    "authority": "public/claims-register.json",
    "page": "/claims-register",
    "corrections_feed": "/api/corrections",
    "rows_total": {
      "value": 20,
      "kind": "declared",
      "source": "public/claims-register.json → claims[].length",
      "as_of": "2026-08-26",
      "as_of_field": "generated_at",
      "note": "Every material capability claim made on a public surface, with its evidence."
    },
    "rows_by_status": {
      "value": {
        "live": 7,
        "devnet": 1,
        "unmeasured": 1,
        "planned": 6,
        "retired": 5
      },
      "kind": "declared",
      "source": "public/claims-register.json → claims[] tallied by .status",
      "as_of": "2026-08-26",
      "as_of_field": "generated_at",
      "note": "Tallied from the rows. A status declared in the register's vocabulary but used by no row reports 0 rather than being omitted, so the absence is visible."
    },
    "status_vocabulary": "live = shipped and checkable today · devnet = proven on a test network only, not production · unmeasured = the thing exists but we have not measured it, and we say so rather than implying we have · planned = intended, not built or not shipped · retired = previously published, now withdrawn (with the reason).",
    "undeclared_statuses_found": [],
    "undeclared_note": "Non-empty means a row uses a status the register never declared — an artifact defect, not a new category. Fix the artifact; do not invent a meaning for it here.",
    "how_to_challenge": "If a claim here does not match what you can verify, that is a defect. Report it at nicholas@csoai.org and it goes to the corrections feed at /api/corrections."
  },
  "rwa_instruments": {
    "authority": "public/interop/rwa-registry.json",
    "chain": "XRPL",
    "named": {
      "value": 8,
      "kind": "catalogued",
      "source": "public/interop/rwa-registry.json → instruments[].length",
      "as_of": null,
      "as_of_field": null,
      "note": "Instruments the registry NAMES. Naming is not attesting and is not measuring."
    },
    "mainnet_verified_and_attested": {
      "value": 0,
      "kind": "probed",
      "source": "public/interop/rwa-registry.json → instruments[].filter(address_status === 'mainnet-verified').length",
      "as_of": null,
      "as_of_field": null,
      "note": "Issuer accounts read from XRPL MAINNET with a locatable public r-address. This is a read of on-chain CONTROL FACTS only."
    },
    "not_located": {
      "value": 0,
      "kind": "unmeasured",
      "source": "public/interop/rwa-registry.json → instruments[].filter(address_status === 'not-located').length",
      "as_of": null,
      "as_of_field": null,
      "note": "No independently confirmable public r-address. Accounted for, never attested. This gap is SCOPE, not staleness."
    },
    "risk_status": {
      "value": {
        "UNMEASURED": 0,
        "of": 8
      },
      "kind": "unmeasured",
      "source": "public/interop/rwa-registry.json → instruments[].status",
      "as_of": null,
      "as_of_field": null,
      "note": "What the control facts imply about any instrument's risk, solvency or creditworthiness is UNMEASURED and needs counsel. Not a rating, not advice, not an endorsement."
    },
    "no_timestamp_note": "This artifact carries NO timestamp of any kind, so every as_of above is null and as_of_field is null with it. A neighbouring file's date is not this file's date, and the deploy time is nobody's measurement time. Unknown stays null.",
    "header_agrees": {
      "header": {
        "located": 8
      },
      "agrees": false,
      "note": "The header block is recomputed from the instruments array rather than trusted."
    },
    "rail_honesty": "Only instruments with REAL verified addresses are listed; control-facts status quoted from signed runs. Never an endorsement."
  },
  "not_covered": {
    "rule": "This endpoint speaks ONLY for the committed artifacts named above, in this repo (CSOAI-ORG/councilof-ai). For anything below, /api/state is silent — and silence here is not permission to quote a figure from somewhere else as if it were.",
    "items": [
      {
        "subject": "csoai-static-deploy2 (the separate static estate)",
        "why_not": "A different repo with its own card set and its own card count, which is a DIFFERENT NUMBER about a different set of bytes. Conflating it with signed_cards.count above is the single most common source of the competing card figures.",
        "where": "That estate's own signed index. Quote it as that estate's number, never as this one's."
      },
      {
        "subject": "gspc-os vendored server directories",
        "why_not": "A private, pod-only checkout. Its server directories have never been contacted from any machine that publishes this endpoint, so its size is a directory listing, not a fleet.",
        "where": "Probe with scripts/mcp-stdio-probe.py on a host where the repo exists, commit the output, then it becomes quotable — as a probed count, on its own line."
      },
      {
        "subject": "arena / leaderboard axis counts",
        "why_not": "The arena measures a different set of axes with a different instrument. Its figures are not board figures and were mistaken for contradictions of the board before now.",
        "where": "/api/arena surfaces, labelled as arena figures."
      },
      {
        "subject": "benchmark-results/ working files in coai-dashboard",
        "why_not": "In-flight run state, not published evidence. Nothing there has been signed or gated, and an in-lane honesty probe is explicitly not board-quotable.",
        "where": "Only after a result is promoted into a signed artifact in this repo."
      },
      {
        "subject": "MEOK / SOVOS / sov34 model figures",
        "why_not": "A different estate with a different boundary. CSOAI measures; it does not host that model. Its numbers never belong in a CSOAI count.",
        "where": "That estate's own surfaces."
      },
      {
        "subject": "the csoai.org static site",
        "why_not": "A separate deploy with separate content and its own figures.",
        "where": "That site's own artifacts."
      },
      {
        "subject": "traffic, users, customers, revenue",
        "why_not": "Not measured and not published. There is no counter behind these anywhere in this repo, so any figure would be invented.",
        "where": "Nowhere. UNPUBLISHED is the honest answer, and it is the whole answer."
      }
    ]
  },
  "doctrine": {
    "instruction_for_lanes": "council-os/QUOTING-NUMBERS.md",
    "one_line": "Quote /api/state by field name. Never assert a count in a report. If it is not here, it is not established."
  }
}