{
 "round": "two-frontiers-cove-r1",
 "gate": "G-ID",
 "verdict": "PASS",
 "detail": "every arm's identity is read from its own provider's surface, and the local tag's digest is printed against August's",
 "started_utc": "2026-09-06T13:43:59Z",
 "finished_utc": "2026-09-06T13:43:59Z",
 "evidence": {
  "calls_of_its_own": 0,
  "why_no_call": "the three hosted arms' identity is read out of their own G-EFFORT reply and the local seat's digest is a metadata read, so §5 spends no generation call here.",
  "cli_build": "2.1.263 (Claude Code)",
  "problems": []
 },
 "arms": {
  "cli-claude-fable-5-1": {
   "model_registered": "claude-fable-5-1",
   "transport_class": "agent-harness-cli",
   "read_from": "the stream's own modelUsage, per call — never message.model",
   "verdict": "PASS",
   "served_by_model": [
    "claude-fable-5-1"
   ],
   "g_id": {
    "asserted": [
     "no `fallback` content block in the stream",
     "no `system/model_refusal_fallback` record in the stream",
     "every assistant `message.model` is the arm's registered model"
    ],
    "registered_model": "claude-fable-5-1",
    "served_by_model": [
     "claude-fable-5-1"
    ],
    "unregistered_models": [],
    "fallback": null,
    "fallback_blocks": [],
    "model_refusal_fallbacks": [],
    "findings": [],
    "verdict": "PASS",
    "why": "identity is receipted per CALL, and a failed reading files THIS cell without stopping the arm (PREREG §3, A7): one swapped cell does not un-vouch its neighbours."
   },
   "fallback": null,
   "cli_version": "2.1.263 (Claude Code)",
   "detail": "modelUsage names ['claude-fable-5-1'] and no fallback block is present"
  },
  "openai-gpt-6-astra": {
   "model_registered": "gpt-6-astra",
   "transport_class": "openai-api",
   "read_from": "the response's own model echo",
   "verdict": "PASS",
   "served_by_model": [
    "gpt-6-astra"
   ],
   "detail": "the endpoint echoed ['gpt-6-astra'] against a registered 'gpt-6-astra'"
  },
  "cloud-glm-5-3": {
   "model_registered": "glm-5.3",
   "transport_class": "ollama-cloud",
   "read_from": "the shelf's own model field in the reply",
   "verdict": "PASS",
   "served_by_model": [
    "glm-5.3"
   ],
   "detail": "the shelf's reply names ['glm-5.3'] against a registered 'glm-5.3'"
  },
  "local-gemma4-26b": {
   "model_registered": "gemma4:26b",
   "transport_class": "local-ollama",
   "read_from": "GET /api/tags on the instance itself",
   "verdict": "PASS",
   "served_by_model": [
    "gemma4:26b"
   ],
   "digest_read": {
    "tag": "gemma4:26b",
    "digest": "5571076f3d70050487b26b341705799e0ab29b808164f90d20d4cf84f699d251",
    "parameter_size": "25.8B",
    "quantization_level": "Q4_K_M"
   },
   "digest_august": "5571076f3d70050487b26b341705799e0ab29b808164f90d20d4cf84f699d251",
   "digest_matches_august": true,
   "detail": "the instance reports August's own digest for this tag, so the two readings are of the same weights"
  }
 },
 "records": [],
 "withheld": {
  "rule": "a receipt publishes in the kit, so these fields are removed here rather than at kit time — and named, because a field quietly absent from a receipt is indistinguishable from a gate that never read it."
 },
 "note": "written by harness/cove/gates_cove.py. Every generation call rides the same send() the scored run uses; a gate that hand-rolled its own call would receipt a field the run never sent.",
 "supersedes": {
  "earlier_runs": [
   {
    "receipt": "g-id-cove.json",
    "verdict": "FAIL",
    "finished_utc": "2026-09-06T13:30:58Z",
    "detail": "cli-claude-fable-5-1: the transport's own G-ID reads None: served ['claude-fable-5-1'] against a regis; openai-gpt-6-astra: the endpoint echoed [] against a registered 'gpt-6-astra'; cloud-glm-5-3: the shelf's reply names [] against a registered 'glm-5.3'"
   },
   {
    "receipt": "g-id-cove.2.json",
    "verdict": "FAIL",
    "finished_utc": "2026-09-06T13:41:40Z",
    "detail": "cloud-glm-5-3: the shelf's reply names [] against a registered 'glm-5.3'"
   },
   {
    "receipt": "g-id-cove.3.json",
    "verdict": "PASS",
    "finished_utc": "2026-09-06T13:43:01Z",
    "detail": "every arm's identity is read from its own provider's surface, and the local tag's digest is printed against August's"
   }
  ],
  "rule": "this gate ran before and its earlier receipt(s) are KEPT in place. This file is the later reading; an earlier FAIL is not erased by it, and a reader can see both. The freeze index pins whichever receipt is the gate of record."
 }
}
