{
  "entry": {
    "seq": 32145,
    "at": "2026-11-11T00:19:13.171Z",
    "type": "safety.rating",
    "subject": "skill:github-com-mvanhorn-last30days-skill-b88590c435",
    "payload": {
      "as_of": "2026-11-11T00:01:28.597Z",
      "band": "Moderate public signals",
      "check_version": "rs-safety-checks-2.0",
      "evidence_sha256": "fd7d5a9cccb28b04071ce754bd5248cc4affb4f255c23f6983ba65a69ca32de3",
      "id": "github-com-mvanhorn-last30days-skill-b88590c435",
      "kind": "skill",
      "rating_sha256": "f029afebb5372c181d4648f3b61fcf4196e125067656b6c6ede11bde8b2e94c0",
      "score": 61,
      "stream": "safety_ratings"
    },
    "payload_hash": "dd3d5ea2083fb90f2169e276447995a1caf58a1432e3584799e9c26c2df8c5fe",
    "leaf_hash": "2ac4ef3d2eb6c2d858225f57ec2cf9bae5090d5b85879519a913b6ddd806f4d5",
    "block_height": 5849,
    "texts": {},
    "data": {
      "as_of": "2026-11-11T00:01:28.597Z",
      "band": "Moderate public signals",
      "check_version": "rs-safety-checks-2.0",
      "evidence_sha256": "fd7d5a9cccb28b04071ce754bd5248cc4affb4f255c23f6983ba65a69ca32de3",
      "id": "github-com-mvanhorn-last30days-skill-b88590c435",
      "kind": "skill",
      "rating_sha256": "f029afebb5372c181d4648f3b61fcf4196e125067656b6c6ede11bde8b2e94c0",
      "score": 61,
      "stream": "safety_ratings"
    }
  },
  "status": "sealed",
  "block": {
    "v": 1,
    "height": 5849,
    "prev_hash": "5c418181bc4ffb9da683db8e9820bf0b024ff880df8aa2ed106a53505da0939c",
    "merkle_root": "07e056a552c6b5b0e171eab874d90f263fd511c06a923ee3cac7ecd371382ca1",
    "first_seq": 32142,
    "last_seq": 32147,
    "entry_count": 6,
    "at": "2026-11-11T00:19:13.226Z",
    "key_id": "key_41eb7b6d1b11968a",
    "block_hash": "3b6a63a5b9b8b662b526c433f200eb0b330896cd3f554d8ed1ebd16f8b97ed4c",
    "signature": "AJh6w8vUl8o460+DRWLIWr6AWxVaYxybiH4qDpjQ1OQr3KR4apAexpty2WwUto0LWqAmdggPaxIYHZuo7UcrAg==",
    "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAEYWJAvPDwdwiByA4ucuPBAV0jLWwXGgtbZqbyrLNMiM=\n-----END PUBLIC KEY-----\n"
  },
  "proof": {
    "leaf_hash": "2ac4ef3d2eb6c2d858225f57ec2cf9bae5090d5b85879519a913b6ddd806f4d5",
    "index": 3,
    "path": [
      {
        "side": "L",
        "hash": "fdd1bc9a03d08ef5afd6eee2d9ce174cfa08c8b659d6b478c84ff6ddd3bc7c71"
      },
      {
        "side": "L",
        "hash": "451893664b7a16ac22b962018408dec494cb23566251b9fa02fcb545f1891c90"
      },
      {
        "side": "R",
        "hash": "137e1ece4f998a7cf8857051ec0261486c3dd4884d94e0b1d57111c680c224ed"
      }
    ],
    "merkle_root": "07e056a552c6b5b0e171eab874d90f263fd511c06a923ee3cac7ecd371382ca1",
    "how_to_verify": "payload_hash = sha256(canonical(payload)); leaf = sha256('leaf:' + canonical({seq, at, type, subject, payload_hash})); fold the path (R: sha256('node:' + acc + hash), L: sha256('node:' + hash + acc)) to merkle_root; verify the Ed25519 signature over canonical(block header)."
  },
  "finality": {
    "state": "bitcoin-anchored",
    "final": false,
    "witnesses": 0,
    "witnesses_confirmed_unaffiliated": 0,
    "witnesses_total": 0,
    "required": 2,
    "finalized_through": null,
    "bitcoin": {
      "anchored": true,
      "block_height": 975362,
      "confirmed_through": 6047
    },
    "states": [
      "recorded",
      "sealed",
      "bitcoin-anchored",
      "witness-quorum",
      "final"
    ],
    "rule": "States climb recorded -> sealed -> bitcoin-anchored -> witness-quorum -> final. A block is final only once its hash is confirmed in Bitcoin AND 2 confirmed-unaffiliated witnesses on distinct registrable domains with distinct keys have cosigned it or any later block; each header commits to every earlier block. Cosignatures from affiliated, unconfirmed, pending or challenged witnesses are public evidence but never count toward quorum. The quorum steps up on a published schedule as confirmed-unaffiliated witnesses grow: 2 required while fewer than 5 are confirmed, 3 at 5, 4 at 10, 6 at 20, 8 at 40. Every tier's requirement sits well below the count that triggers it, so churn is weather, not a freeze; the requirement is recomputed from the live count on every read."
  }
}