{
  "tool_id": "art-658-publish-index-head",
  "tool_version": "1.0.0",
  "display_name": "Publish Index Head",
  "mcp_name": "publish_index_head",
  "mandate_type": "attestation_mandate",
  "wave": 111,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-658-publish-index-head.html",
  "description": "Publishes one SPEC.md §HEAD-1 head-commit publication event for an index or benchmark's per-stream publication history, so an index administrator's published history (art-646-compile-rebalance-evidence-pack results, or art-647-record-index-correction events) becomes a sequence-numbered, signer-continuous chain instead of a series of unlinked artifacts a reviewer must independently discover and order, mirroring NAV-LINEAGE-BUILD-SPEC.md §3 and art-649-publish-model-risk-head, applied to an index/benchmark administrator's stream (INDEX-LINEAGE-BUILD-SPEC.md §5). HARD FENCE: this node never accepts or handles private key material, the caller signs the head-commit off-node via chaingraph/kernels/_head.mjs's own buildHead/signHead and separately runs its own Ed25519 verification (again via _head.mjs's verifyHeadProof/verifyChain) before calling this node. signature_valid and chain_valid are the caller's own verification claim, asserted and digested into this receipt, exactly like art-562's stage-reference citations, never independently re-derived by this node (the real zkVM guest has no WebCrypto at all, so an in-kernel Ed25519 verify result would not be reproducible across this repo's required execution environments). The one field this node DOES independently recompute is head_hash (pure SHA-256/JCS over the caller-supplied head, never trusted as a caller-asserted value, per SO #34). Backed by ocg-head-file@1 only at first, matching the NAV/model-risk lineage rows; a head-file tip proves the signer's claimed tip, it does not itself detect equivocation (needs ocg-head-tlog@1, a later WU) and is not itself a rebalance-cadence enforcement mechanism. Written for administrators in the post-Regulation-(EU)-2025/914 BMR scope (critical/significant benchmarks) and for SEBI-regulated benchmark administrators; this node makes no BMR/SEBI in-scope determination of its own and makes no claim of BMR or SEBI compliance itself.",
  "input_schema_ref": "chaingraph/art-658-publish-index-head.html#manifest",
  "consumes": [
    "art-646-compile-rebalance-evidence-pack",
    "art-647-record-index-correction"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:193c856ed0239a7110d9d91b252f23f001a5cf0e2297162478ef4dcfe48b1b2c",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-09-04"
    }
  ],
  "export_capability": [
    "json"
  ],
  "standards_basis": "not_applicable",
  "cited_clause_digest": [],
  "compute_proof_ready": "ready",
  "cycle_preflight": "FAST — 5,775,865 user_cycles max across all 15 fixture vectors (argmax v14), measured exec-only 2026-09-04 against landed origin/main bytes; 0.19x the 30,000,000 line.",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "FB0wARG3VdyE9zriYfXh4+cw8cWwa/WzI5NzaQROkucr1P5gVgnCG/pqWxbnCRRg+QhsXVOGe9eT7H0YayiZzgQthc1Ivrqkd7PR0vGV5fWfx26ZLtWp8SM9wTQvavw5EbOPZ9QjbpEDt2pKu3RAJ44wAl5zBvGYdvXS6tTA3GMBEDhqVUwORi7PKfUH2rrxDLQd6olYEHB1TfcH7EfDag1dYNmFFjysQQ/MiJ32H+F00/DDVapJbi0QUgp18u89C2tbPxnzKgIy2uHhLZwAk47woEt/PlfaP4IlCEe3k5cAGqa/9PlzkaP+33zIekiPpqea0DlTHJVA195s2+B0nA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:193c856ed0239a7110d9d91b252f23f001a5cf0e2297162478ef4dcfe48b1b2c",
      "output": {
        "chain_errors": [],
        "chain_valid": null,
        "chain_verified_by": null,
        "errors": [
          "head is required."
        ],
        "fence": "This node never accepts or handles private key material and never itself runs an Ed25519 verify. signature_valid/chain_valid are the CALLER's own verification claim, asserted and digested into this receipt, never independently re-derived. head_hash is the one field this node DOES independently recompute (pure SHA-256 over the caller-supplied head, never trusted as a caller-asserted value).",
        "head_hash": null,
        "is_genesis": false,
        "not_proven": [
          {
            "detail": "signature_valid and chain_valid are the CALLER's own verification claim (e.g. from running _head.mjs's verifyHeadProof/verifyChain, or chaingraph/standard/head-commit.test.mjs, off-node before calling this node), asserted and digested into this receipt -- exactly like art-562's stage-reference citations. This node does not itself execute Ed25519 verification (the real zkVM guest has no WebCrypto at all; an in-kernel verify() result would not be reproducible across this repo's required execution environments).",
            "item": "Signature / chain verification"
          },
          {
            "detail": "A head-file tip proves the signer's claimed index-stream tip at this seq; it does not itself detect the same signer publishing a different, conflicting index level or weight set for the same (stream, seq) elsewhere. That needs the ocg-head-tlog@1 witness backing (a later WU), not this node.",
            "item": "Equivocation detection"
          },
          {
            "detail": "This node publishes one head-commit event citing a rebalance-evidence-pack (art-646) or correction (art-647) artifact. It does not itself schedule, trigger, or verify that a rebalance or correction cycle was executed correctly -- those artifacts, and the administrator's own methodology document, are out of scope for this node.",
            "item": "Rebalance / correction-cycle enforcement"
          },
          {
            "detail": "root is a caller-supplied execution_hash citing the period's art-646 rebalance-evidence-pack or art-647 correction artifact, asserted and digested into this receipt. This node performs no lookup against a live artifact store and does not itself verify that the cited hash corresponds to a real, still-valid upstream artifact.",
            "item": "Root-artifact authenticity"
          },
          {
            "detail": "This receipt evidences one head-commit publication event for an index-level stream. It has no bearing on whether the underlying rebalance or correction was correctly executed and does not itself satisfy EU Benchmark Regulation 2016/1011 (as amended by Regulation (EU) 2025/914, which narrowed BMR scope to critical/significant benchmarks) or SEBI's benchmark-administrator framework -- those are administrator-level oversight-function obligations this document evidences a piece of, never fulfills. This node makes no determination of whether the citing administrator is itself in BMR/SEBI scope.",
            "item": "BMR / SEBI compliance"
          }
        ],
        "prev_head_hash": null,
        "regulatory_framework": "SPEC.md §HEAD-1 (this estate's own head-commit primitive, PROV-HEAD-1, DONE/merged) applied to an index/benchmark administrator's publication stream (INDEX-LINEAGE-BUILD-SPEC.md §5); not itself a determination of BMR/SEBI scope or an RDARR-style compliance requirement.",
        "root": null,
        "rotates_to": null,
        "seq": null,
        "signature_valid": null,
        "signature_verified_by": null,
        "signer": null,
        "stream": null,
        "structural_error": "head is required.",
        "timestamp": null
      }
    }
  }
}
