{
  "created_at": "2026-11-12T07:59:08Z",
  "result": {
    "engine": "discovery_loop",
    "limits": "Checks the discovery record supplied (fact classes, evidence links, replicates, exclusions, strategy revisions). It does not re-run experiments and does not prove a measurement was real. The run is Ed25519-signed; pin the issuer key out of band.",
    "module": "cain_a75_engines/discoveryloop/engine.py",
    "profile": "aptamer_campaign",
    "run": {
      "cycles": 3,
      "label": "Checks the discovery record supplied: fact classes, evidence links, replicates, exclusions and strategy revisions. It does not re-run experiments and does not prove a measurement was real.",
      "public_key_b64": "eZWs9uHIrwuxtOIScMKohZ+DXEO4sqpBBMY3qowKLAA=",
      "records": [
        {
          "checks": [
            {
              "detail": "class 'OBSERVED'",
              "id": "c1-B-binds.class",
              "ok": true
            },
            {
              "detail": "OBSERVED/VERIFIED claims carry {metric, op, value, tolerance}",
              "id": "c1-B-binds.assertion",
              "ok": true
            },
            {
              "detail": "cites ['m1-B']",
              "id": "c1-B-binds.measurements_exist",
              "ok": true
            },
            {
              "detail": "observed and verified claims cite this cycle's measurements",
              "id": "c1-B-binds.same_cycle",
              "ok": true
            },
            {
              "detail": "every cited measurement needs the SHA-256 of its raw data",
              "id": "c1-B-binds.raw_data_hash",
              "ok": true
            },
            {
              "detail": "claim metric 'kd_nM'",
              "id": "c1-B-binds.metric_matches",
              "ok": true
            },
            {
              "detail": "m1-B=42.0 vs < 100.0 (tol 0.0)",
              "id": "c1-B-binds.assertion_holds",
              "ok": true
            },
            {
              "detail": "an OBSERVED claim cites exactly one measurement",
              "id": "c1-B-binds.one_measurement",
              "ok": true
            },
            {
              "detail": "class 'OBSERVED'",
              "id": "c1-A-weak.class",
              "ok": true
            },
            {
              "detail": "OBSERVED/VERIFIED claims carry {metric, op, value, tolerance}",
              "id": "c1-A-weak.assertion",
              "ok": true
            },
            {
              "detail": "cites ['m1-A']",
              "id": "c1-A-weak.measurements_exist",
              "ok": true
            },
            {
              "detail": "observed and verified claims cite this cycle's measurements",
              "id": "c1-A-weak.same_cycle",
              "ok": true
            },
            {
              "detail": "every cited measurement needs the SHA-256 of its raw data",
              "id": "c1-A-weak.raw_data_hash",
              "ok": true
            },
            {
              "detail": "claim metric 'kd_nM'",
              "id": "c1-A-weak.metric_matches",
              "ok": true
            },
            {
              "detail": "m1-A=850.0 vs > 500.0 (tol 0.0)",
              "id": "c1-A-weak.assertion_holds",
              "ok": true
            },
            {
              "detail": "an OBSERVED claim cites exactly one measurement",
              "id": "c1-A-weak.one_measurement",
              "ok": true
            },
            {
              "detail": "class 'OBSERVED'",
              "id": "c1-C-weak.class",
              "ok": true
            },
            {
              "detail": "OBSERVED/VERIFIED claims carry {metric, op, value, tolerance}",
              "id": "c1-C-weak.assertion",
              "ok": true
            },
            {
              "detail": "cites ['m1-C']",
              "id": "c1-C-weak.measurements_exist",
              "ok": true
            },
            {
              "detail": "observed and verified claims cite this cycle's measurements",
              "id": "c1-C-weak.same_cycle",
              "ok": true
            },
            {
              "detail": "every cited measurement needs the SHA-256 of its raw data",
              "id": "c1-C-weak.raw_data_hash",
              "ok": true
            },
            {
              "detail": "claim metric 'kd_nM'",
              "id": "c1-C-weak.metric_matches",
              "ok": true
            },
            {
              "detail": "m1-C=1200.0 vs > 500.0 (tol 0.0)",
              "id": "c1-C-weak.assertion_holds",
              "ok": true
            },
            {
              "detail": "an OBSERVED claim cites exactly one measurement",
              "id": "c1-C-weak.one_measurement",
              "ok": true
            },
            {
              "detail": "class 'UNVERIFIED'",
              "id": "c1-hyp-loop.class",
              "ok": true
            },
            {
              "detail": "every measurement accounted for",
              "id": "cycle.no_silent_drops",
              "ok": true
            },
            {
              "detail": "every measurement of the cycle keeps its raw-data hash, excluded ones too",
              "id": "cycle.raw_data_kept",
              "ok": true
            },
            {
              "detail": "based on ['c1-B-binds', 'c1-hyp-loop']",
              "id": "revision.basis_exists",
              "ok": true
            },
            {
              "detail": "a strategy revision must rest on at least one OBSERVED, VERIFIED or DERIVED claim",
              "id": "revision.evidential",
              "ok": true
            },
            {
              "detail": "",
              "id": "revision.no_counterfactual",
              "ok": true
            },
            {
              "detail": "the revision must use what this cycle produced (or a derivation over it)",
              "id": "revision.uses_this_cycle",
              "ok": true
            }
          ],
          "created_at": "2026-11-12T07:59:08Z",
          "engine": "a75-003/1.0.0",
          "extra": {
            "by_class": {
              "COUNTERFACTUAL": 0,
              "DERIVED": 0,
              "OBSERVED": 3,
              "UNVERIFIED": 1,
              "VERIFIED": 0
            },
            "claims": 4,
            "cycle": 1,
            "measurements": 4
          },
          "failed": [],
          "label": "Checks the discovery record supplied: fact classes, evidence links, replicates, exclusions and strategy revisions. It does not re-run experiments and does not prove a measurement was real.",
          "prev_record_hash": "1c9f5c185b0f3a015b6987c0e697141cda60b56d981a1693556e3e691408ef45",
          "public_key_b64": "eZWs9uHIrwuxtOIScMKohZ+DXEO4sqpBBMY3qowKLAA=",
          "record_hash": "87d1d8009715a9e5e57e5e2f6d6e2811cb963ba57c4ad8b2a2a5a5f6a74000f7",
          "schema": "cain42.a75.discovery.record.v1",
          "signature_b64": "PcpHMr+vA3X/6ZTxf1/mGzAHD64OsQhWVhOQGjuFHkVn1tZL0mm0DGMGJJEbrLv218TR0aVlXIvGUVu8LX6RCA==",
          "sku": "CAIN-A75-003",
          "subject": {
            "agent": "agent:discovery-1",
            "campaign": "aptamer-screen-7",
            "claims": [
              {
                "assert": {
                  "metric": "kd_nM",
                  "op": "<",
                  "tolerance": 0,
                  "value": 100
                },
                "class": "OBSERVED",
                "id": "c1-B-binds",
                "measurements": [
                  "m1-B"
                ],
                "text": "candidate B binds (Kd < 100 nM)"
              },
              {
                "assert": {
                  "metric": "kd_nM",
                  "op": ">",
                  "tolerance": 0,
                  "value": 500
                },
                "class": "OBSERVED",
                "id": "c1-A-weak",
                "measurements": [
                  "m1-A"
                ],
                "text": "candidate A is weak"
              },
              {
                "assert": {
                  "metric": "kd_nM",
                  "op": ">",
                  "tolerance": 0,
                  "value": 500
                },
                "class": "OBSERVED",
                "id": "c1-C-weak",
                "measurements": [
                  "m1-C"
                ],
                "text": "candidate C is weak"
              },
              {
                "class": "UNVERIFIED",
                "id": "c1-hyp-loop",
                "text": "the stem-loop motif may drive binding"
              }
            ],
            "cycle": 1,
            "exclusions": [
              {
                "measurement": "m1-D",
                "reason": "sensor chip saturated; rerun scheduled"
              }
            ],
            "measurements": [
              {
                "cycle": 1,
                "id": "m1-A",
                "instrument": "spr-1",
                "metric": "kd_nM",
                "raw_sha256": "87d14ecdab220d71e4f78eb31857d151b708bcbcb6596597061d32f820e2d7e8",
                "value": 850.0
              },
              {
                "cycle": 1,
                "id": "m1-B",
                "instrument": "spr-1",
                "metric": "kd_nM",
                "raw_sha256": "48b707a09c8e5eb4f610b65d3110aed4d2bd6537066d17ae6efbf7c5b961439f",
                "value": 42.0
              },
              {
                "cycle": 1,
                "id": "m1-C",
                "instrument": "spr-1",
                "metric": "kd_nM",
                "raw_sha256": "6930edc8e632d3c018a858b2da248645f1224295f7c514e65de494885d8de1e9",
                "value": 1200.0
              },
              {
                "cycle": 1,
                "id": "m1-D",
                "instrument": "spr-1",
                "metric": "kd_nM",
                "raw_sha256": "41db4271794b0d849acf15a8afec3c5212e806572656d0a8deb1f8ea98314f1f",
                "value": 9999.0
              }
            ],
            "prior_claims": [],
            "revision": {
              "based_on": [
                "c1-B-binds",
                "c1-hyp-loop"
              ],
              "next": "confirm B on a second instrument; test two loop variants"
            },
            "schema": "cain42.a75.discovery.cycle.v1"
          },
          "subject_sha256": "cae4bb38168955922c7767998502a6e2193113f71daafde906fed6f07b8761fb",
          "verdict": "SUPPORTED"
        },
        {
          "checks": [
            {
              "detail": "class 'VERIFIED'",
              "id": "c2-B-verified.class",
              "ok": true
            },
            {
              "detail": "OBSERVED/VERIFIED claims carry {metric, op, value, tolerance}",
              "id": "c2-B-verified.assertion",
              "ok": true
            },
            {
              "detail": "cites ['m2-B-spr', 'm2-B-bli']",
              "id": "c2-B-verified.measurements_exist",
              "ok": true
            },
            {
              "detail": "observed and verified claims cite this cycle's measurements",
              "id": "c2-B-verified.same_cycle",
              "ok": true
            },
            {
              "detail": "every cited measurement needs the SHA-256 of its raw data",
              "id": "c2-B-verified.raw_data_hash",
              "ok": true
            },
            {
              "detail": "claim metric 'kd_nM'",
              "id": "c2-B-verified.metric_matches",
              "ok": true
            },
            {
              "detail": "m2-B-spr=40.0; m2-B-bli=46.0 vs < 100.0 (tol 5.0)",
              "id": "c2-B-verified.assertion_holds",
              "ok": true
            },
            {
              "detail": "VERIFIED needs >= 2 measurements from different instruments, or a named non-agent verifier",
              "id": "c2-B-verified.independent_sources",
              "ok": true
            },
            {
              "detail": "spread 6 vs 2x tolerance 10",
              "id": "c2-B-verified.replicates_agree",
              "ok": true
            },
            {
              "detail": "class 'OBSERVED'",
              "id": "c2-V1-binds.class",
              "ok": true
            },
            {
              "detail": "OBSERVED/VERIFIED claims carry {metric, op, value, tolerance}",
              "id": "c2-V1-binds.assertion",
              "ok": true
            },
            {
              "detail": "cites ['m2-V1']",
              "id": "c2-V1-binds.measurements_exist",
              "ok": true
            },
            {
              "detail": "observed and verified claims cite this cycle's measurements",
              "id": "c2-V1-binds.same_cycle",
              "ok": true
            },
            {
              "detail": "every cited measurement needs the SHA-256 of its raw data",
              "id": "c2-V1-binds.raw_data_hash",
              "ok": true
            },
            {
              "detail": "claim metric 'kd_nM'",
              "id": "c2-V1-binds.metric_matches",
              "ok": true
            },
            {
              "detail": "m2-V1=18.0 vs < 50.0 (tol 0.0)",
              "id": "c2-V1-binds.assertion_holds",
              "ok": true
            },
            {
              "detail": "an OBSERVED claim cites exactly one measurement",
              "id": "c2-V1-binds.one_measurement",
              "ok": true
            },
            {
              "detail": "class 'OBSERVED'",
              "id": "c2-V2-worse.class",
              "ok": true
            },
            {
              "detail": "OBSERVED/VERIFIED claims carry {metric, op, value, tolerance}",
              "id": "c2-V2-worse.assertion",
              "ok": true
            },
            {
              "detail": "cites ['m2-V2']",
              "id": "c2-V2-worse.measurements_exist",
              "ok": true
            },
            {
              "detail": "observed and verified claims cite this cycle's measurements",
              "id": "c2-V2-worse.same_cycle",
              "ok": true
            },
            {
              "detail": "every cited measurement needs the SHA-256 of its raw data",
              "id": "c2-V2-worse.raw_data_hash",
              "ok": true
            },
            {
              "detail": "claim metric 'kd_nM'",
              "id": "c2-V2-worse.metric_matches",
              "ok": true
            },
            {
              "detail": "m2-V2=310.0 vs > 100.0 (tol 0.0)",
              "id": "c2-V2-worse.assertion_holds",
              "ok": true
            },
            {
              "detail": "an OBSERVED claim cites exactly one measurement",
              "id": "c2-V2-worse.one_measurement",
              "ok": true
            },
            {
              "detail": "class 'COUNTERFACTUAL'",
              "id": "c2-what-if.class",
              "ok": true
            },
            {
              "detail": "a counterfactual is not an observation",
              "id": "c2-what-if.no_measurement_refs",
              "ok": true
            },
            {
              "detail": "every measurement accounted for",
              "id": "cycle.no_silent_drops",
              "ok": true
            },
            {
              "detail": "every measurement of the cycle keeps its raw-data hash, excluded ones too",
              "id": "cycle.raw_data_kept",
              "ok": true
            },
            {
              "detail": "based on ['c2-B-verified', 'c2-V1-binds']",
              "id": "revision.basis_exists",
              "ok": true
            },
            {
              "detail": "a strategy revision must rest on at least one OBSERVED, VERIFIED or DERIVED claim",
              "id": "revision.evidential",
              "ok": true
            },
            {
              "detail": "",
              "id": "revision.no_counterfactual",
              "ok": true
            },
            {
              "detail": "the revision must use what this cycle produced (or a derivation over it)",
              "id": "revision.uses_this_cycle",
              "ok": true
            }
          ],
          "created_at": "2026-11-12T07:59:08Z",
          "engine": "a75-003/1.0.0",
          "extra": {
            "by_class": {
              "COUNTERFACTUAL": 1,
              "DERIVED": 0,
              "OBSERVED": 2,
              "UNVERIFIED": 0,
              "VERIFIED": 1
            },
            "claims": 4,
            "cycle": 2,
            "measurements": 4
          },
          "failed": [],
          "label": "Checks the discovery record supplied: fact classes, evidence links, replicates, exclusions and strategy revisions. It does not re-run experiments and does not prove a measurement was real.",
          "prev_record_hash": "87d1d8009715a9e5e57e5e2f6d6e2811cb963ba57c4ad8b2a2a5a5f6a74000f7",
          "public_key_b64": "eZWs9uHIrwuxtOIScMKohZ+DXEO4sqpBBMY3qowKLAA=",
          "record_hash": "5c319338be80953344771d719ea1e96f85c1cffd638803fab8956fe1fe817470",
          "schema": "cain42.a75.discovery.record.v1",
          "signature_b64": "5Hsw+3b9GSwx9WY2ZDWdx5Nfh7R+FcJhSh0ADeiFlw2mdJPh64Qr+cO7LO8lTbRncyrqTaPm5f68OgAeXHUBDw==",
          "sku": "CAIN-A75-003",
          "subject": {
            "agent": "agent:discovery-1",
            "campaign": "aptamer-screen-7",
            "claims": [
              {
                "assert": {
                  "metric": "kd_nM",
                  "op": "<",
                  "tolerance": 5,
                  "value": 100
                },
                "class": "VERIFIED",
                "id": "c2-B-verified",
                "measurements": [
                  "m2-B-spr",
                  "m2-B-bli"
                ],
                "text": "B binds on two instruments"
              },
              {
                "assert": {
                  "metric": "kd_nM",
                  "op": "<",
                  "tolerance": 0,
                  "value": 50
                },
                "class": "OBSERVED",
                "id": "c2-V1-binds",
                "measurements": [
                  "m2-V1"
                ],
                "text": "loop variant V1 binds tighter"
              },
              {
                "assert": {
                  "metric": "kd_nM",
                  "op": ">",
                  "tolerance": 0,
                  "value": 100
                },
                "class": "OBSERVED",
                "id": "c2-V2-worse",
                "measurements": [
                  "m2-V2"
                ],
                "text": "variant V2 lost binding"
              },
              {
                "class": "COUNTERFACTUAL",
                "id": "c2-what-if",
                "text": "had we kept the original loop, V1 would not exist"
              }
            ],
            "cycle": 2,
            "exclusions": [],
            "measurements": [
              {
                "cycle": 2,
                "id": "m2-B-spr",
                "instrument": "spr-1",
                "metric": "kd_nM",
                "raw_sha256": "29c2be809555ae2098a5a5e9b05c36e828f6a7ba5706c1b3856fba59db0005b2",
                "value": 40.0
              },
              {
                "cycle": 2,
                "id": "m2-B-bli",
                "instrument": "bli-1",
                "metric": "kd_nM",
                "raw_sha256": "6e8851bf8715778b67eb36d8edc84f5ed711a69f379be9787c188789c9d407bf",
                "value": 46.0
              },
              {
                "cycle": 2,
                "id": "m2-V1",
                "instrument": "spr-1",
                "metric": "kd_nM",
                "raw_sha256": "621cd8904210056860dce61bdd40d653dc10be7fdc25add3e93a6cac704f706c",
                "value": 18.0
              },
              {
                "cycle": 2,
                "id": "m2-V2",
                "instrument": "spr-1",
                "metric": "kd_nM",
                "raw_sha256": "864c4e5657cf49974212be40489a352c19fca538553434583c51aa90556534d6",
                "value": 310.0
              }
            ],
            "prior_claims": [
              {
                "assert": {
                  "metric": "kd_nM",
                  "op": "<",
                  "tolerance": 0,
                  "value": 100
                },
                "class": "OBSERVED",
                "id": "c1-B-binds",
                "measurements": [
                  "m1-B"
                ],
                "text": "candidate B binds (Kd < 100 nM)"
              },
              {
                "assert": {
                  "metric": "kd_nM",
                  "op": ">",
                  "tolerance": 0,
                  "value": 500
                },
                "class": "OBSERVED",
                "id": "c1-A-weak",
                "measurements": [
                  "m1-A"
                ],
                "text": "candidate A is weak"
              },
              {
                "assert": {
                  "metric": "kd_nM",
                  "op": ">",
                  "tolerance": 0,
                  "value": 500
                },
                "class": "OBSERVED",
                "id": "c1-C-weak",
                "measurements": [
                  "m1-C"
                ],
                "text": "candidate C is weak"
              },
              {
                "class": "UNVERIFIED",
                "id": "c1-hyp-loop",
                "text": "the stem-loop motif may drive binding"
              }
            ],
            "revision": {
              "based_on": [
                "c2-B-verified",
                "c2-V1-binds"
              ],
              "next": "explore around V1"
            },
            "schema": "cain42.a75.discovery.cycle.v1"
          },
          "subject_sha256": "59fb014e878717416ed997286441385f9a0acb4819a1e50dce46330f06f77e87",
          "verdict": "SUPPORTED"
        },
        {
          "checks": [
            {
              "detail": "class 'OBSERVED'",
              "id": "c3-V1a-binds.class",
              "ok": true
            },
            {
              "detail": "OBSERVED/VERIFIED claims carry {metric, op, value, tolerance}",
              "id": "c3-V1a-binds.assertion",
              "ok": true
            },
            {
              "detail": "cites ['m3-V1a']",
              "id": "c3-V1a-binds.measurements_exist",
              "ok": true
            },
            {
              "detail": "observed and verified claims cite this cycle's measurements",
              "id": "c3-V1a-binds.same_cycle",
              "ok": true
            },
            {
              "detail": "every cited measurement needs the SHA-256 of its raw data",
              "id": "c3-V1a-binds.raw_data_hash",
              "ok": true
            },
            {
              "detail": "claim metric 'kd_nM'",
              "id": "c3-V1a-binds.metric_matches",
              "ok": true
            },
            {
              "detail": "m3-V1a=12.0 vs < 15.0 (tol 0.0)",
              "id": "c3-V1a-binds.assertion_holds",
              "ok": true
            },
            {
              "detail": "an OBSERVED claim cites exactly one measurement",
              "id": "c3-V1a-binds.one_measurement",
              "ok": true
            },
            {
              "detail": "class 'OBSERVED'",
              "id": "c3-V1b-binds.class",
              "ok": true
            },
            {
              "detail": "OBSERVED/VERIFIED claims carry {metric, op, value, tolerance}",
              "id": "c3-V1b-binds.assertion",
              "ok": true
            },
            {
              "detail": "cites ['m3-V1b']",
              "id": "c3-V1b-binds.measurements_exist",
              "ok": true
            },
            {
              "detail": "observed and verified claims cite this cycle's measurements",
              "id": "c3-V1b-binds.same_cycle",
              "ok": true
            },
            {
              "detail": "every cited measurement needs the SHA-256 of its raw data",
              "id": "c3-V1b-binds.raw_data_hash",
              "ok": true
            },
            {
              "detail": "claim metric 'kd_nM'",
              "id": "c3-V1b-binds.metric_matches",
              "ok": true
            },
            {
              "detail": "m3-V1b=21.0 vs < 50.0 (tol 0.0)",
              "id": "c3-V1b-binds.assertion_holds",
              "ok": true
            },
            {
              "detail": "an OBSERVED claim cites exactly one measurement",
              "id": "c3-V1b-binds.one_measurement",
              "ok": true
            },
            {
              "detail": "class 'DERIVED'",
              "id": "c3-best.class",
              "ok": true
            },
            {
              "detail": "derived from ['c3-V1a-binds', 'c3-V1b-binds', 'c2-V1-binds']",
              "id": "c3-best.sources_exist",
              "ok": true
            },
            {
              "detail": "",
              "id": "c3-best.no_counterfactual_source",
              "ok": true
            },
            {
              "detail": "a derivation needs at least one evidential source",
              "id": "c3-best.no_unverified_only",
              "ok": true
            },
            {
              "detail": "name the computation",
              "id": "c3-best.method_named",
              "ok": true
            },
            {
              "detail": "derivation must not cite itself",
              "id": "c3-best.acyclic",
              "ok": true
            },
            {
              "detail": "every measurement accounted for",
              "id": "cycle.no_silent_drops",
              "ok": true
            },
            {
              "detail": "every measurement of the cycle keeps its raw-data hash, excluded ones too",
              "id": "cycle.raw_data_kept",
              "ok": true
            },
            {
              "detail": "based on ['c3-best']",
              "id": "revision.basis_exists",
              "ok": true
            },
            {
              "detail": "a strategy revision must rest on at least one OBSERVED, VERIFIED or DERIVED claim",
              "id": "revision.evidential",
              "ok": true
            },
            {
              "detail": "",
              "id": "revision.no_counterfactual",
              "ok": true
            },
            {
              "detail": "the revision must use what this cycle produced (or a derivation over it)",
              "id": "revision.uses_this_cycle",
              "ok": true
            }
          ],
          "created_at": "2026-11-12T07:59:08Z",
          "engine": "a75-003/1.0.0",
          "extra": {
            "by_class": {
              "COUNTERFACTUAL": 0,
              "DERIVED": 1,
              "OBSERVED": 2,
              "UNVERIFIED": 0,
              "VERIFIED": 0
            },
            "claims": 3,
            "cycle": 3,
            "measurements": 2
          },
          "failed": [],
          "label": "Checks the discovery record supplied: fact classes, evidence links, replicates, exclusions and strategy revisions. It does not re-run experiments and does not prove a measurement was real.",
          "prev_record_hash": "5c319338be80953344771d719ea1e96f85c1cffd638803fab8956fe1fe817470",
          "public_key_b64": "eZWs9uHIrwuxtOIScMKohZ+DXEO4sqpBBMY3qowKLAA=",
          "record_hash": "384cf5c69495fdc0873b8a782acca5d846640ee0fe9e552be88664a0d6f7e623",
          "schema": "cain42.a75.discovery.record.v1",
          "signature_b64": "tn44dSgerYbPrsoZ1F1+csETFGPWpwM6jyztF/sEGG+FANcvH06mLUzbYn1sneXC9CdGVLxKZVwt5MJkWIy5CA==",
          "sku": "CAIN-A75-003",
          "subject": {
            "agent": "agent:discovery-1",
            "campaign": "aptamer-screen-7",
            "claims": [
              {
                "assert": {
                  "metric": "kd_nM",
                  "op": "<",
                  "tolerance": 0,
                  "value": 15
                },
                "class": "OBSERVED",
                "id": "c3-V1a-binds",
                "measurements": [
                  "m3-V1a"
                ],
                "text": "V1a is the tightest so far"
              },
              {
                "assert": {
                  "metric": "kd_nM",
                  "op": "<",
                  "tolerance": 0,
                  "value": 50
                },
                "class": "OBSERVED",
                "id": "c3-V1b-binds",
                "measurements": [
                  "m3-V1b"
                ],
                "text": "V1b also binds"
              },
              {
                "class": "DERIVED",
                "from": [
                  "c3-V1a-binds",
                  "c3-V1b-binds",
                  "c2-V1-binds"
                ],
                "id": "c3-best",
                "method": "rank by measured Kd",
                "text": "V1a is the best candidate"
              }
            ],
            "cycle": 3,
            "exclusions": [],
            "measurements": [
              {
                "cycle": 3,
                "id": "m3-V1a",
                "instrument": "spr-1",
                "metric": "kd_nM",
                "raw_sha256": "597f68cb0601359d37882d28221de2742a3084e02659112aedd4a2cfbf2a65d6",
                "value": 12.0
              },
              {
                "cycle": 3,
                "id": "m3-V1b",
                "instrument": "spr-1",
                "metric": "kd_nM",
                "raw_sha256": "cbbc2d2a5303b84402cf660bdd33b2456e3e53c888c1799d4f4cc154748edb56",
                "value": 21.0
              }
            ],
            "prior_claims": [
              {
                "assert": {
                  "metric": "kd_nM",
                  "op": "<",
                  "tolerance": 0,
                  "value": 100
                },
                "class": "OBSERVED",
                "id": "c1-B-binds",
                "measurements": [
                  "m1-B"
                ],
                "text": "candidate B binds (Kd < 100 nM)"
              },
              {
                "assert": {
                  "metric": "kd_nM",
                  "op": ">",
                  "tolerance": 0,
                  "value": 500
                },
                "class": "OBSERVED",
                "id": "c1-A-weak",
                "measurements": [
                  "m1-A"
                ],
                "text": "candidate A is weak"
              },
              {
                "assert": {
                  "metric": "kd_nM",
                  "op": ">",
                  "tolerance": 0,
                  "value": 500
                },
                "class": "OBSERVED",
                "id": "c1-C-weak",
                "measurements": [
                  "m1-C"
                ],
                "text": "candidate C is weak"
              },
              {
                "class": "UNVERIFIED",
                "id": "c1-hyp-loop",
                "text": "the stem-loop motif may drive binding"
              },
              {
                "assert": {
                  "metric": "kd_nM",
                  "op": "<",
                  "tolerance": 5,
                  "value": 100
                },
                "class": "VERIFIED",
                "id": "c2-B-verified",
                "measurements": [
                  "m2-B-spr",
                  "m2-B-bli"
                ],
                "text": "B binds on two instruments"
              },
              {
                "assert": {
                  "metric": "kd_nM",
                  "op": "<",
                  "tolerance": 0,
                  "value": 50
                },
                "class": "OBSERVED",
                "id": "c2-V1-binds",
                "measurements": [
                  "m2-V1"
                ],
                "text": "loop variant V1 binds tighter"
              },
              {
                "assert": {
                  "metric": "kd_nM",
                  "op": ">",
                  "tolerance": 0,
                  "value": 100
                },
                "class": "OBSERVED",
                "id": "c2-V2-worse",
                "measurements": [
                  "m2-V2"
                ],
                "text": "variant V2 lost binding"
              },
              {
                "class": "COUNTERFACTUAL",
                "id": "c2-what-if",
                "text": "had we kept the original loop, V1 would not exist"
              }
            ],
            "revision": {
              "based_on": [
                "c3-best"
              ],
              "next": "scale up V1a for orthogonal assays"
            },
            "schema": "cain42.a75.discovery.cycle.v1"
          },
          "subject_sha256": "a854741865d4d62784442d72217a3221bcf9f3c4f76d4c05c4da81c6919efdea",
          "verdict": "SUPPORTED"
        }
      ],
      "run_hash": "453af6af2fa82567854b713902bc750f1d450e0cbe34306aa649bf04a82b3187",
      "schema": "cain42.a75.discovery.run.v1",
      "sku": "CAIN-A75-003",
      "verdict": "SUPPORTED",
      "verdicts": [
        "SUPPORTED",
        "SUPPORTED",
        "SUPPORTED"
      ]
    },
    "scenarios": [
      {
        "cycles": 3,
        "name": "aptamer_screen_3_cycles",
        "run_hash": "453af6af2fa82567854b713902bc750f1d450e0cbe34306aa649bf04a82b3187",
        "verdict": "SUPPORTED"
      },
      {
        "expected": "SUPPORTED",
        "name": "valid_cycle_1",
        "verdict": "SUPPORTED"
      },
      {
        "expected": "SUPPORTED",
        "name": "valid_cycle_2",
        "verdict": "SUPPORTED"
      },
      {
        "expected": "SUPPORTED",
        "name": "valid_cycle_3",
        "verdict": "SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "missing_fact_class",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "invented_fact_class",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "observed_without_measurement",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "observed_cites_unknown_measurement",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "missing_raw_data_hash",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "claim_contradicts_its_measurement",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "metric_mismatch",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "observed_cites_two_measurements",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "verified_on_one_instrument",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "verified_replicates_disagree",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "verified_with_one_measurement",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "cherry_picked_measurement",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "exclusion_without_reason",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "excluded_measurement_loses_raw_data",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "revision_on_hunch_only",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "revision_on_counterfactual",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "revision_cites_nothing",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "derived_from_counterfactual",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "derived_without_method",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "derived_from_unknown_claim",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "derived_from_hunch_only",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "circular_derivation",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "counterfactual_with_measurements",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "cites_a_future_measurement",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "observed_cites_previous_cycle",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "nan_value",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "string_value",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "duplicate_measurement_id",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "wrong_schema",
        "verdict": "NOT_SUPPORTED"
      },
      {
        "expected": "NOT_SUPPORTED",
        "name": "garbage",
        "verdict": "NOT_SUPPORTED"
      }
    ],
    "summary": "SUPPORTED over 3 cycles; 33/33 record-failure cases as expected"
  },
  "schema": "cain42.agentic75.findings.v1",
  "sku": "CAIN-A75-003"
}
