{
  "schema": "csoai.surface-catalog/1",
  "as_of": "2026-08-26",
  "purpose": "Every live public surface, machine-readable — the single catalog of all sites, endpoints, datasets and rails. Strangers and lanes quote from here; /api/state holds the counts.",
  "doctrine": "measurement not certification; never certify/accredit/enforce/endorse/tokenize.",
  "sites": {
    "web": ["https://councilof.ai", "https://csoai.org", "https://www.csoai.org"],
    "hf_org": "https://huggingface.co/csoai",
    "gh_org": "https://github.com/CSOAI-ORG",
    "council_os_spine": "https://github.com/CSOAI-ORG/council-os",
    "ci_action": "https://github.com/CSOAI-ORG/action-verify-attestation"
  },
  "api": [
    "/api/gspc (the living board \u2014 slot and measured counts are fields on totals, never typed here)", "/api/state (derived counts — the only quotable numbers)",
    "/api/cards", "/api/axis-register", "/api/detect (Art 50 C2PA verifier)",
    "/api/checkout (provider:meta = HTTP 402)", "/api/fulfill", "/api/interop-bulk (x402 bulk)",
    "/api/methodology (signed)"],
  "interop": [
    "/interop/attestation-corpus.json (18 entries + intel flags)",
    "/interop/financial-measure-run-v2.json (6 XRPL, signed)", "/interop/evm-control-facts.json (3, signed)",
    "/interop/ai-economy-index.v0.1.json (signed)", "/interop/human-labour-index.v0.1.json (signed)",
    "/interop/mcp-security-scorecard.json (311 signed)", "/interop/rwa-attest-index.json (22 catalogued \u00b7 6 addressable \u00b7 0 assets measured)",
    "/interop/eas-attestation-batch.json (3 payloads)", "/interop/jail-peritem-v3.json (signed)",
    "/interop/jailbreak-asr-evidence-pack.json (8 models, signed)",
    "/interop/coverage-register.json (XRPL 16 / EVM 3)", "/interop/sboum-councilof-ai.json",
    "/interop/surface-catalog.json (this file)", "/interop/xrpl-attest-run.json",
    "/interop/card-store-verification.json"],
  "signed": ["/signed/board_living.json (re-signed living stamp; slot and measured counts live at /api/gspc totals)", "/signed/gspc-measurement.json",
  "/signed/chain.json (all chain positions; the manifest itself is unsigned)",
  "/signed/chain-facts.json (derived: bodies published, bodies verifying, withheld, and how many withheld are signature-attested)",
  "/signed/verify-card.mjs (zero-dependency offline verifier)",
             "/signed/card_index.json (the frozen subset index \u2014 NOT the size of the published card store; store counts at /api/state card_chain)"],
  "signals": ["/signals/*.signed.json (per-axis signals + expansions + Measurement Signal Index; live board counts at /api/gspc totals.public_count \u2014 never typed here)"],
  "docs": ["/docs/MASTER_PLAN_2026-08-26.md", "/docs/INSURER_PILOT_PITCH_2026-08-26.md",
           "/docs/NIST_CAISI_INPUT_2026-08-26.md"],
  "datasets": ["csoai/rwa-attest (10 files)", "csoai/gspc-jail-goldbank (5 files)",
               "csoai/gspc-board", "csoai/gspc-boards (208)", "csoai/gspc-signed-boards",
               "csoai/mcp-scoreboard", "csoai/gspc-* (axis banks)"],
  "rails": ["EAS off-chain (payloads ready)", "XRPL (devnet proof; mainnet facts measured)",
            "OpenTimestamps (planned)", "x402/HTTP 402 (meta rail live)"],
  "public_artifacts": {
    "paper": "docs/operations/paper/FAIR_TIES_DRAFT_2026-08-26.md (v3)",
    "verifier": "scripts/verify_signed.py + action-verify-attestation",
    "scorecard_engine": "harness/mcp/security-scorecard/{score.py,stat_suite.py,gate_sim.py}",
    "rwa_engine": "harness/rwa-attest/{rwa_attest.py,control_facts_measure.py,index_measure.py}"
  },
  "honesty": "Catalog is live-verified as of 2026-08-26; unverified items are marked (OpenTimestamps/XRPL mainnet anchoring = planned)."
}
