{
  "label": "Checks an offline memory consolidation: tenant isolation, source provenance, synthesis/merge declarations, verbatim corrections, deletion and conflicts, and claim honesty. It does not read the store or judge merged text.",
  "public_key_b64": "39bdENeAPWBfybe2LYmTvhOTBsoCWk0N2p+OGMmJt4Q=",
  "records": [
    {
      "checks": [
        {
          "detail": "derived from ['M1-pref', 'M2-corr', 'M4-note']",
          "id": "O1-merged.sources_exist",
          "ok": true
        },
        {
          "detail": "output 'tenant-a', sources ['tenant-a']",
          "id": "O1-merged.tenant_isolation",
          "ok": true
        },
        {
          "detail": "0.75 <= 0.9 + 0.1",
          "id": "O1-merged.confidence_bounded",
          "ok": true
        },
        {
          "detail": "a synthesised memory names its sources",
          "id": "O1-merged.synthesis_declared",
          "ok": true
        },
        {
          "detail": "derived from ['M2-corr']",
          "id": "O2-correction.sources_exist",
          "ok": true
        },
        {
          "detail": "output 'tenant-a', sources ['tenant-a']",
          "id": "O2-correction.tenant_isolation",
          "ok": true
        },
        {
          "detail": "0.9 <= 0.9 + 0.1",
          "id": "O2-correction.confidence_bounded",
          "ok": true
        },
        {
          "detail": "a single-source output keeps the source text",
          "id": "O2-correction.single_source_verbatim",
          "ok": true
        },
        {
          "detail": "a corrected source must be carried verbatim unless the output is a declared synthesis",
          "id": "O2-correction.carries_correction",
          "ok": true
        },
        {
          "detail": "corrected input is carried verbatim by some output",
          "id": "M2-corr.correction_preserved",
          "ok": true
        },
        {
          "detail": "removed id exists in the inputs",
          "id": "removed.M3-old.exists",
          "ok": true
        },
        {
          "detail": "a corrected memory is never removed",
          "id": "removed.M3-old.not_corrected",
          "ok": true
        },
        {
          "detail": "removed ids are not reused",
          "id": "removed.not_also_reused",
          "ok": true
        },
        {
          "detail": "a='M1-pref' b='M2-corr'",
          "id": "conflict.0.ids_exist",
          "ok": true
        },
        {
          "detail": "resolution 'prefer_newer'",
          "id": "conflict.0.resolved",
          "ok": true
        },
        {
          "detail": "all conflicts resolved",
          "id": "conflicts.none_unresolved",
          "ok": true
        },
        {
          "detail": "claimed True, computed True",
          "id": "claims.corrections_preserved",
          "ok": true
        },
        {
          "detail": "claimed True, computed True",
          "id": "claims.nothing_invented",
          "ok": true
        },
        {
          "detail": "claimed True, computed True",
          "id": "claims.tenant_isolated",
          "ok": true
        }
      ],
      "created_at": "2026-11-12T07:59:15Z",
      "engine": "a75-016/1.0.0",
      "extra": {
        "computed": {
          "corrections_preserved": true,
          "nothing_invented": true,
          "tenant_isolated": true
        },
        "outputs": {
          "O1-merged": {
            "sources": [
              "M1-pref",
              "M2-corr",
              "M4-note"
            ],
            "tenant": "tenant-a"
          },
          "O2-correction": {
            "sources": [
              "M2-corr"
            ],
            "tenant": "tenant-a"
          }
        },
        "sources": {}
      },
      "failed": [],
      "label": "Checks an offline memory consolidation: tenant isolation, source provenance, synthesis/merge declarations, verbatim corrections, deletion and conflicts, and claim honesty. It does not read the store or judge merged text.",
      "prev_record_hash": "bf2e5be41a1805536e7b9a6ba6b22474b0973b9d4008f963f75abe278d4a9301",
      "public_key_b64": "39bdENeAPWBfybe2LYmTvhOTBsoCWk0N2p+OGMmJt4Q=",
      "record_hash": "5154413a68e1f314340a69840225ad830537bb62a7d6561a795e5385e09f2352",
      "schema": "cain42.a75.memoryconsolidation.record.v1",
      "signature_b64": "9tdHohYkd4HE42XzCpi5MifW12lqBg9DWawM6C/5qsRbt17YeGH5nATOzDGruwf4Kyrn9ZCGfDSJeTR+oN82BQ==",
      "sku": "CAIN-A75-016",
      "subject": {
        "claims": {
          "corrections_preserved": true,
          "nothing_invented": true,
          "tenant_isolated": true
        },
        "conflicts": [
          {
            "a": "M1-pref",
            "b": "M2-corr",
            "resolution": "prefer_newer"
          }
        ],
        "inputs": [
          {
            "confidence": 0.7,
            "corrected": false,
            "id": "M1-pref",
            "sha256": "ea8584f0db48deb27fe5d1b96b3c367380e56e9b38dcd402f3b3495d9ef99377",
            "tenant": "tenant-a",
            "text": "Customer prefers email on Tuesdays."
          },
          {
            "confidence": 0.9,
            "corrected": true,
            "id": "M2-corr",
            "sha256": "fe2f0c7acd2761952590ebdebd8c19c7b21b71d4a994e40fc36bc49ed42cb9bc",
            "tenant": "tenant-a",
            "text": "Correction: customer now prefers email on Thursdays."
          },
          {
            "confidence": 0.4,
            "corrected": false,
            "id": "M3-old",
            "sha256": "20fe506218cbe6176ce7586f90353f18377531cc80f05ec7b38065714ae279ea",
            "tenant": "tenant-a",
            "text": "Customer used phone support in March."
          },
          {
            "confidence": 0.6,
            "corrected": false,
            "id": "M4-note",
            "sha256": "99a78e5e6b2bcc2d109e4b4d4022ddae0cf3892837a4750a1026b00f8d69ded0",
            "tenant": "tenant-a",
            "text": "Ticket 4481 closed."
          }
        ],
        "max_confidence_gain": 0.1,
        "outputs": [
          {
            "confidence": 0.75,
            "derived_from": [
              "M1-pref",
              "M2-corr",
              "M4-note"
            ],
            "id": "O1-merged",
            "sha256": "c54845e9204f2fae68fa2b5acbe9c35f08d861723d041deddda287669dcf513c",
            "synthesis": true,
            "tenant": "tenant-a",
            "text": "Customer prefers email on Thursdays. Ticket 4481 closed."
          },
          {
            "confidence": 0.9,
            "derived_from": [
              "M2-corr"
            ],
            "id": "O2-correction",
            "sha256": "fe2f0c7acd2761952590ebdebd8c19c7b21b71d4a994e40fc36bc49ed42cb9bc",
            "tenant": "tenant-a",
            "text": "Correction: customer now prefers email on Thursdays."
          }
        ],
        "removed": [
          "M3-old"
        ],
        "schema": "cain42.a75.memory.consolidation.v1"
      },
      "subject_sha256": "b2230d83f9bfcff28a5f050cd5768968800468d0b854fa57b168baceac8c140c",
      "verdict": "SOUND"
    }
  ],
  "run_hash": "75b1b4055ddd469d126fecd01dac1ca19deeb06d50284b3a601f1f057dd2f5ec",
  "schema": "cain42.a75.memoryconsolidation.run.v1",
  "sku": "CAIN-A75-016",
  "verdict": "VERIFIED",
  "verdicts": [
    "SOUND"
  ]
}
