Published evidence — /signed/

Every artifact this directory serves, with its size and what it is. This tree mixes signed card envelopes, indexes, source data and legacy artifacts. A filename or directory does not make an artifact signed; use the family-specific procedure and inspect the artifact's own state.

Start here: HOW-TO-VERIFY.md — pin the signing key against /.well-known/did.json first. A card that verifies against the key it ships with proves only that the file is self-consistent, which is not authenticity.

What the counts actually say

SourceCount
files in cards/335
rows in card_index.json335
n_cards declared in card_index.json335
cards claimed by HOW-TO-VERIFY.md335

Artifacts

FileSizeWhat it is
HOW-TO-VERIFY-ROOT.md10.2 KB
HOW-TO-VERIFY.md14.4 KBStep-by-step verification, starting with pinning the key against /.well-known/did.json. Served as text/plain so it renders in a browser instead of downloading.
arena_scoreboard.json9.5 KBArena scoreboard artifact.
board_living.json7.8 KBLiving-board data whose embedded historical stamp is explicitly UNVERIFIABLE; not a valid attestation.
card-matrix.json182.7 KBUnsigned index data assembled from published card metadata; not a signed card envelope.
card_index.json192.8 KBIndex of published measurement cards. Each row carries card id, axis, timestamp, signed flag and key id — the full payload (pubkey, signature, preimage) lives in the per-card file.
chain-facts.json2.6 KBDerived source data about chain records; not a signature envelope.
chain.json195.2 KBSource-maintained chain document. Verify individual hashes and signatures; no append-only storage property is asserted by this index.
disclosure-crosswalk-example.json7.9 KB
eat_compliance_board.json1.3 KBLegacy board artifact; its filename is not a compliance determination.
findings_index.json1007.0 KBUnsigned findings index; source data, not a signed card envelope.
gspc-board.signed.json56.4 KBMPC-signed historical board freeze. Check gspc-board.status.json before relying on it as current.
gspc-board.status.json2.2 KBFail-closed status for the preserved MPC board freeze; names known claim defects and the current authority.
gspc-measurement.json20.0 KBMeasurement-data bundle behind the board; inspect its own signature fields and verification state rather than assuming the whole file is signed.
gspc-quest-instruments.json86.9 KB
hub-census-baseline.json897 BUnsigned dated census source data.
hub-census-delta.json1.0 KBUnsigned dated census-delta source data.
public-root-leaf-union.json291.1 KBDerived union of candidate root leaves; verify against the authoritative public-root envelope before relying on membership.
verify-card.mjs9.4 KBStandalone verifier. Runs on plain Node with no dependencies and no network beyond fetching the card and the DID document.
cards/335 filesOne JSON per measurement card, named by its own content id. Browse the index.

Verify one card, end to end

This procedure applies to the published measurement-card family in cards/. It does not verify every top-level JSON file listed above.

# 1. pin the key
curl -s https://councilof.ai/.well-known/did.json

# 2. fetch a card and check it against the pinned key
curl -s https://councilof.ai/signed/verify-card.mjs -o verify-card.mjs
node verify-card.mjs 00a5218048b4ff922c9793e5d155c7c62b4be5a84de3f09e16af3df59445b3c9

The rule the whole tree rests on: id == sha256(preimage), where preimage is the body serialised with sorted keys and no whitespace, and signature is Ed25519 over that preimage under the pinned key. The full procedure, with the exact serialisation, is here.