{
  "name": "Council of AI — Measurement Agent",
  "description": "Independent AI-governance MEASUREMENT body. Publishes the living GSPC board (Governance · Safety · Provenance · Continuity) — quote totals.lid and totals.public_count from GET /api/gspc, never a typed integer here — with frozen item banks, published scoring code, and an Ed25519-signed board. Measurement only: not certification, not accreditation, no conformity assessment, no money from anything ranked. A2A v1.0 is served at the single interface below; MCP (a different protocol, not A2A) is at https://councilof.ai/mcp.",
  "version": "1.1.0",
  "provider": {
    "organization": "CSOAI Ltd",
    "url": "https://councilof.ai"
  },
  "supportedInterfaces": [
    {
      "url": "https://councilof.ai/api/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    }
  ],
  "documentationUrl": "https://councilof.ai/llms.txt",
  "iconUrl": "https://councilof.ai/og-image.png",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false,
    "extensions": [
      {
        "uri": "https://councilof.ai/a2a/extensions/signed-receipts/v1/",
        "description": "Ed25519-signed task-outcome receipts plus a did:web key-trust convention for AgentCard signing (A2A v1.0 §8.4). A receipt is evidence of what was claimed, not a certification, and a signature over it is an integrity claim rather than a truth claim.",
        "required": false
      },
      {
        "uri": "https://councilof.ai/.well-known/x402.json",
        "description": "x402 discovery index for the agent pay rail (also GET /api/x402). Free door amount 0 at /api/free-door. Verification stays free. payTo is merchant not payer. Self-settle is not revenue. Settlement UNCHECKABLE until facilitator receipt. Measurement credential, never a grade.",
        "required": false
      },
      {
        "uri": "https://github.com/x402-foundation/x402/blob/69652a69798f0b08f95bef33318896e36e210f7e/specs/extensions/extension-offer-and-receipt.md",
        "description": "x402 Offer & Receipt extension (v0.6), JWS profile. Every HTTP 402 this agent's doors emit carries a server-signed offer committing to the terms in each accepts[] entry; every settled response carries a signed receipt. Format jws, alg EdDSA, kid did:web:csoai.org#board-attestation-1, resolvable at https://csoai.org/.well-known/did.json (an authorization mechanism the extension names in section 4.5.1). eip712 is NOT emitted: the edge holds one Ed25519 key and no secp256k1 signer, and a format we cannot produce is better declared missing than faked. A receipt proves this server signed those bytes; it is not by itself proof that money moved, and the transaction field, when present, is a claim to check against the chain.",
        "required": false
      }
    ]
  },
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "text/plain",
    "application/json"
  ],
  "skills": [
    {
      "id": "gspc-board",
      "name": "Signed GSPC Board",
      "description": "SendMessage answers with the live board: totals.lid verbatim from GET /api/gspc and the derived axis rows (axis, family, kind, status, n, separation, leader state). Empty cells stay empty; a withheld leader is a state, not a zero; a fetch failure is UNCHECKABLE, never a fabricated number. Live JSON, recomputable from published rows.",
      "tags": [
        "measurement",
        "governance",
        "verification"
      ],
      "examples": [
        "SendMessage {\"message\": {\"messageId\": \"m-1\", \"role\": \"ROLE_USER\", \"parts\": [{\"text\": \"board\"}]}}",
        "GET /api/gspc — the same board, outside A2A"
      ]
    },
    {
      "id": "east-west-crosswalk",
      "name": "East-West crosswalk & cross-border card",
      "description": "One signed GSPC measurement mapped across EU, UK, US, Illinois, and China GB/T alignment surfaces. Crosswalk v1 JSON, cross-border signed card, and stranger verify at /gspc-verify. Measurement only — determination stays with authorities.",
      "tags": [
        "cross-border",
        "crosswalk",
        "measurement",
        "verification"
      ],
      "examples": [
        "GET /api/cross — cross-border signed card"
      ]
    },
    {
      "id": "measured-badge",
      "name": "Measured Badge",
      "description": "A global-board README link plus a card-bound status badge. The global board never becomes a model score. A model-specific score may render only from a VALID signed cell that names the exact subject and immutable revision; otherwise the subject is UNMEASURED or UNSIGNED.",
      "tags": [
        "measurement",
        "governance",
        "verification"
      ],
      "examples": [
        "GET /api/badge?card=<signed-card-sha256>&subject=<url-encoded-owner/model@commit-sha>"
      ]
    },
    {
      "id": "benchmark-quality-register",
      "name": "Benchmark-quality register",
      "description": "Signed register of what third-party AI benchmarks disclose about their own process integrity. Deterministic predicates only — no language model judges. Records are unsolicited; nothing on the register is certification or endorsement.",
      "tags": [
        "meta-evaluation",
        "benchmark-quality",
        "reproducibility",
        "governance"
      ],
      "examples": [
        "GET /api/benchmark-quality"
      ]
    },
    {
      "id": "article50-detect",
      "name": "Article 50 provenance detection (free)",
      "description": "Verify a C2PA-style signed manifest for AI-generated content (EU AI Act Article 50) at POST https://councilof.ai/api/detect. Deterministically checks the Ed25519-signed metadata layer and the IPTC/schema.org digitalSourceType; returns AI_MARKED / NOT_AI_MARKED / UNVERIFIABLE with a signed verdict receipt (in-toto/DSSE when a board key is bound). The imperceptible-watermark layer we cannot see is declared, never claimed. Free for all; unrestricted for authorities, media, fact-checkers, researchers and civil society. Not certification.",
      "tags": [
        "article-50",
        "provenance",
        "detection",
        "verification",
        "c2pa"
      ],
      "examples": [
        "POST /api/detect — multipart image or JSON manifest"
      ]
    },
    {
      "id": "eu-ai-act-screen",
      "name": "EU AI Act screening helper (deterministic, text-only)",
      "description": "POST https://councilof.ai/api/assess with a system description. Keyword matches name the Annex III categories and Article 5 patterns a human should inspect; no model is consulted. It does not establish legal tier, applicability, exceptions or compliance, and an empty description is UNMEASURED, not a low-risk finding. When no signing key is provisioned the report says UNSIGNED out loud.",
      "tags": [
        "eu-ai-act",
        "screening",
        "deterministic"
      ],
      "examples": [
        "POST /api/assess {\"system\": \"<what the system does and for whom>\"}"
      ]
    },
    {
      "id": "x402-discovery",
      "name": "x402 discovery + free door",
      "description": "Agents discover paid artefact rails via GET https://councilof.ai/.well-known/x402.json (mode live, Base eip155:8453, USDC; amounts from challenge only — no invent price). Catalog GET /api/x402. Free door GET /api/free-door amount 0 settles and charges nothing — proves the rail. Living board GET /api/gspc. Verification stays free at /gspc-verify. payTo is merchant receive, never the signer. Self-settle proves the rail; stranger revenue is separate (do not invent buyers). Coming—Paddle not live. No card-processor invent. Measurement, never certification. Signed offers and receipts: every 402 carries extensions['offer-receipt'].info.offers[] (one server-signed offer per accepts[] entry) and every settled 200 returns a signed receipt in the X-PAYMENT-RESPONSE SettlementResponse — x402 Offer & Receipt extension, format jws, alg EdDSA, kid did:web:csoai.org#board-attestation-1. Verify either without trusting us: POST it to /api/receipts/verify, or run scripts/verify_receipt.py against https://csoai.org/.well-known/did.json. Your own receipts: GET /api/receipts?payer=0x... (status UNRECORDED means no store is bound on that deployment, never that you did not pay). We emit jws only and no eip712 — the edge holds one Ed25519 key and no secp256k1 signer.",
      "tags": [
        "x402",
        "discovery",
        "payments",
        "measurement"
      ],
      "examples": [
        "GET https://councilof.ai/.well-known/x402.json",
        "GET https://councilof.ai/api/free-door",
        "GET https://councilof.ai/api/gspc",
        "GET https://councilof.ai/gspc-verify",
        "GET https://councilof.ai/api/free-door  # read extensions['offer-receipt'].info.offers[0].signature",
        "POST https://councilof.ai/api/receipts/verify -d '{\"receipt\":\"eyJ...\"}'",
        "GET https://councilof.ai/api/receipts?payer=0x4dB7AAFbe797a39Cd6Cc4E7aa64d970F7F6E02B7"
      ]
    }
  ],
  "catalogUrl": "https://councilof.ai/interop/surface-catalog.json",
  "doi": "10.5281/zenodo.21991104",
  "explicitly_not": [
    "certification",
    "accreditation",
    "conformity-assessment",
    "legal-determination",
    "enforcement"
  ]
}
