{
  "tool": {
    "name": "@bolyra/operator-trial report",
    "version": "0.1.0",
    "receipts": "0.11.0",
    "cli": "0.9.0"
  },
  "generatedAt": "2026-10-18T19:37:01.419Z",
  "bundle": "dry-run",
  "anchors": {
    "signer": "0xb1f30bddf40612b8aa0634d5ca5c21aa5a2f5dff",
    "expectCount": 3,
    "expectHead": "0xba154095cb6bdf6dfc8351519faabdebf64598dfcda3f8e978f934cfaf65b3f1"
  },
  "attempts": [
    1,
    2,
    3
  ],
  "unattributedLines": [],
  "findings": [
    {
      "id": "B1:L1",
      "title": "Receipt's signature recovers to the anchored signer and its payload hash recomputes",
      "claim": "B1",
      "receiptLine": 1,
      "status": "DERIVED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 1,
          "path": "signature.value"
        },
        {
          "file": "receipts.jsonl",
          "line": 1,
          "path": "signature.payloadHash"
        }
      ],
      "inputs": [
        "verifyReceipt(@bolyra/receipts) with expectedSigner = 0xb1f30bddf40612b8aa0634d5ca5c21aa5a2f5dff"
      ],
      "note": "signature recovered to the anchor; payload hash recomputed."
    },
    {
      "id": "B1:L2",
      "title": "Receipt's signature recovers to the anchored signer and its payload hash recomputes",
      "claim": "B1",
      "receiptLine": 2,
      "status": "DERIVED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 2,
          "path": "signature.value"
        },
        {
          "file": "receipts.jsonl",
          "line": 2,
          "path": "signature.payloadHash"
        }
      ],
      "inputs": [
        "verifyReceipt(@bolyra/receipts) with expectedSigner = 0xb1f30bddf40612b8aa0634d5ca5c21aa5a2f5dff"
      ],
      "note": "signature recovered to the anchor; payload hash recomputed."
    },
    {
      "id": "B1:L3",
      "title": "Receipt's signature recovers to the anchored signer and its payload hash recomputes",
      "claim": "B1",
      "receiptLine": 3,
      "status": "DERIVED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 3,
          "path": "signature.value"
        },
        {
          "file": "receipts.jsonl",
          "line": 3,
          "path": "signature.payloadHash"
        }
      ],
      "inputs": [
        "verifyReceipt(@bolyra/receipts) with expectedSigner = 0xb1f30bddf40612b8aa0634d5ca5c21aa5a2f5dff"
      ],
      "note": "signature recovered to the anchor; payload hash recomputed."
    },
    {
      "id": "B1a:L1",
      "title": "Receipt's id equals the first 18 characters of its stored payload hash and is unique in the log",
      "claim": "B1a",
      "receiptLine": 1,
      "status": "DERIVED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 1,
          "path": "id"
        },
        {
          "file": "receipts.jsonl",
          "line": 1,
          "path": "signature.payloadHash"
        }
      ],
      "inputs": [
        "report-local check: id === signature.payloadHash.slice(0, 18) and unique; not covered by @bolyra/receipts or @bolyra/cli"
      ],
      "note": "consistent with the stored payload hash and unique in the log. Authenticity of the hash itself is B1."
    },
    {
      "id": "B1a:L2",
      "title": "Receipt's id equals the first 18 characters of its stored payload hash and is unique in the log",
      "claim": "B1a",
      "receiptLine": 2,
      "status": "DERIVED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 2,
          "path": "id"
        },
        {
          "file": "receipts.jsonl",
          "line": 2,
          "path": "signature.payloadHash"
        }
      ],
      "inputs": [
        "report-local check: id === signature.payloadHash.slice(0, 18) and unique; not covered by @bolyra/receipts or @bolyra/cli"
      ],
      "note": "consistent with the stored payload hash and unique in the log. Authenticity of the hash itself is B1."
    },
    {
      "id": "B1a:L3",
      "title": "Receipt's id equals the first 18 characters of its stored payload hash and is unique in the log",
      "claim": "B1a",
      "receiptLine": 3,
      "status": "DERIVED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 3,
          "path": "id"
        },
        {
          "file": "receipts.jsonl",
          "line": 3,
          "path": "signature.payloadHash"
        }
      ],
      "inputs": [
        "report-local check: id === signature.payloadHash.slice(0, 18) and unique; not covered by @bolyra/receipts or @bolyra/cli"
      ],
      "note": "consistent with the stored payload hash and unique in the log. Authenticity of the hash itself is B1."
    },
    {
      "id": "B2",
      "title": "Receipts form one intact hash chain (genesis, seq, prevReceiptHash, stored receiptHash)",
      "claim": "B2",
      "status": "DERIVED",
      "evidence": [
        {
          "file": "receipts.jsonl"
        }
      ],
      "inputs": [
        "verifyReceiptChain(@bolyra/receipts) with expectedSigner = anchor",
        "log: 3 receipt line(s)"
      ],
      "note": "3 receipt(s), 3 chained; recomputed head hash 0xba154095cb6bdf6dfc8351519faabdebf64598dfcda3f8e978f934cfaf65b3f1"
    },
    {
      "id": "B3a",
      "title": "Receipt count matches the supplied count checkpoint",
      "claim": "B3a",
      "status": "DERIVED",
      "evidence": [
        {
          "file": "receipts.jsonl"
        }
      ],
      "inputs": [
        "--expect-count 3",
        "log: 3 receipt line(s)"
      ],
      "note": "count matches the supplied checkpoint."
    },
    {
      "id": "B3b",
      "title": "Hash of the last readable chained receipt matches the supplied head checkpoint",
      "claim": "B3b",
      "status": "DERIVED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 3
        }
      ],
      "inputs": [
        "--expect-head 0xba154095cb6bdf6dfc8351519faabdebf64598dfcda3f8e978f934cfaf65b3f1",
        "recomputed: 0xba154095cb6bdf6dfc8351519faabdebf64598dfcda3f8e978f934cfaf65b3f1, the recomputed hash of the last readable chained receipt (line 3)"
      ],
      "note": "the supplied checkpoint equals 0xba154095cb6bdf6dfc8351519faabdebf64598dfcda3f8e978f934cfaf65b3f1, the recomputed hash of the last readable chained receipt (line 3)."
    },
    {
      "id": "B8a",
      "title": "Host's unsigned receiptCount equals the number of receipt lines",
      "claim": "B8a",
      "status": "OBSERVED",
      "evidence": [
        {
          "file": "summary.json",
          "path": "receiptCount"
        },
        {
          "file": "receipts.jsonl"
        }
      ],
      "note": "receiptCount 3 (unsigned) equals the number of receipt lines."
    },
    {
      "id": "B8b",
      "title": "Host's unsigned headReceiptHash equals the recomputed hash of the last readable chained receipt",
      "claim": "B8b",
      "status": "OBSERVED",
      "evidence": [
        {
          "file": "summary.json",
          "path": "headReceiptHash"
        },
        {
          "file": "receipts.jsonl",
          "line": 3
        }
      ],
      "note": "headReceiptHash (unsigned) equals 0xba154095cb6bdf6dfc8351519faabdebf64598dfcda3f8e978f934cfaf65b3f1, the recomputed hash of the last readable chained receipt (line 3)."
    },
    {
      "id": "B4",
      "title": "Signer in signer.json equals the supplied signer anchor",
      "claim": "B4",
      "status": "DERIVED",
      "evidence": [
        {
          "file": "signer.json",
          "path": "signer"
        }
      ],
      "inputs": [
        "--signer 0xb1f30bddf40612b8aa0634d5ca5c21aa5a2f5dff"
      ],
      "note": "matches the supplied anchor."
    },
    {
      "id": "B6",
      "title": "Host reports an ephemeral signer",
      "claim": "B6",
      "status": "OBSERVED",
      "evidence": [
        {
          "file": "signer.json",
          "path": "ephemeral"
        }
      ],
      "note": "the host asserts the key was generated for this run; no key-destruction claim follows."
    },
    {
      "id": "B4b",
      "title": "VERIFY.txt names the anchored signer (compared, never used as an anchor)",
      "claim": "B4b",
      "status": "OBSERVED",
      "evidence": [
        {
          "file": "VERIFY.txt"
        }
      ],
      "note": "VERIFY.txt names the anchored signer (unsigned text; not used as an anchor)."
    },
    {
      "id": "B5",
      "title": "Proof verification mode",
      "claim": "B5",
      "status": "ABSENT",
      "evidence": [],
      "note": "the bundle does not record whether proofs were verified. Separately: the shipped operator-trial 0.1.0 runs the gateway with devMode: true and static simulated credentials (examples/operator-trial/src/gateway-config.ts); that is a property of the implementation, not authenticated provenance of this bundle."
    },
    {
      "id": "B7",
      "title": "Host-reported dry-run flag",
      "claim": "B7",
      "status": "OBSERVED",
      "evidence": [
        {
          "file": "summary.json",
          "path": "dryRun"
        }
      ],
      "note": "dryRun: true (the host reports the built-in echo endpoint was used)."
    },
    {
      "id": "A1@1",
      "title": "The summary's receipt id names exactly one valid receipt in the log",
      "claim": "A1",
      "attempt": 1,
      "status": "DERIVED",
      "evidence": [
        {
          "file": "summary.json",
          "path": "attempts[0].receiptId"
        },
        {
          "file": "receipts.jsonl",
          "line": 1,
          "path": "id"
        }
      ],
      "inputs": [
        "receiptId 0x6f82e3b05de9c571"
      ],
      "note": "names receipt line 1."
    },
    {
      "id": "A1@2",
      "title": "The summary's receipt id names exactly one valid receipt in the log",
      "claim": "A1",
      "attempt": 2,
      "status": "DERIVED",
      "evidence": [
        {
          "file": "summary.json",
          "path": "attempts[1].receiptId"
        },
        {
          "file": "receipts.jsonl",
          "line": 2,
          "path": "id"
        }
      ],
      "inputs": [
        "receiptId 0xf139357ce998561b"
      ],
      "note": "names receipt line 2."
    },
    {
      "id": "A1@3",
      "title": "The summary's receipt id names exactly one valid receipt in the log",
      "claim": "A1",
      "attempt": 3,
      "status": "DERIVED",
      "evidence": [
        {
          "file": "summary.json",
          "path": "attempts[2].receiptId"
        },
        {
          "file": "receipts.jsonl",
          "line": 3,
          "path": "id"
        }
      ],
      "inputs": [
        "receiptId 0xce71d54449634289"
      ],
      "note": "names receipt line 3."
    },
    {
      "id": "A2@1",
      "title": "Decision (allow / deny)",
      "claim": "A2",
      "attempt": 1,
      "status": "SIGNED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 1,
          "path": "payload.decision.allowed"
        }
      ],
      "note": "allow"
    },
    {
      "id": "A3@1",
      "title": "Decision reason text",
      "claim": "A3",
      "attempt": 1,
      "status": "SIGNED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 1,
          "path": "payload.decision.reasonCode"
        }
      ],
      "note": "\"allowed | action=echo-action POST 127.0.0.1:53727/echo\""
    },
    {
      "id": "A4b@1",
      "title": "Action descriptor parsed from the signed reason text (operator-trial convention, not a receipt schema field)",
      "claim": "A4b",
      "attempt": 1,
      "status": "DERIVED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 1,
          "path": "payload.decision.reasonCode"
        }
      ],
      "inputs": [
        "rule: trailing \" | action=<name> <METHOD> <host><path>\""
      ],
      "note": "echo-action POST 127.0.0.1:53727/echo"
    },
    {
      "id": "A4c@1",
      "title": "Recorded action and signed action descriptor agree",
      "claim": "A4c",
      "attempt": 1,
      "status": "DERIVED",
      "evidence": [
        {
          "file": "summary.json",
          "path": "action"
        },
        {
          "file": "receipts.jsonl",
          "line": 1,
          "path": "payload.decision.reasonCode"
        }
      ],
      "inputs": [
        "A4a@1",
        "A4b@1"
      ],
      "note": "the unsigned record and the signed descriptor name the same action."
    },
    {
      "id": "A5@1",
      "title": "Signer-asserted simulated subject identifiers; subject authentication is not established",
      "claim": "A5",
      "attempt": 1,
      "status": "SIGNED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 1,
          "path": "payload.subject"
        }
      ],
      "note": "rootDid did:bolyra:dev:000000000000000000000000000000000ef9f5257e42e60d82de43ef46cc2ff0; actingDid did:bolyra:dev:000000000000000000000000000000000ef9f5257e42e60d82de43ef46cc2ff0; commitments 19907046019634888722304576993792634864 / 19907046019634888722304576993792634864. Dev DIDs from a simulated credential; these identify a key material commitment, not a person or legal entity."
    },
    {
      "id": "A6@1",
      "title": "Recorded permission bitmask",
      "claim": "A6",
      "attempt": 1,
      "status": "SIGNED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 1,
          "path": "payload.decision.permissionBitmask"
        }
      ],
      "note": "permissionBitmask 2."
    },
    {
      "id": "A8a@1",
      "title": "Nonce",
      "claim": "A8a",
      "attempt": 1,
      "status": "SIGNED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 1,
          "path": "payload.proof.nonce"
        }
      ],
      "note": "nonce 33050125237918531785092188808"
    },
    {
      "id": "A9a@1",
      "title": "Proof hashes",
      "claim": "A9a",
      "attempt": 1,
      "status": "SIGNED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 1,
          "path": "payload.proof"
        }
      ],
      "note": "humanProofHash 2d56104a64b95a80432c6e2f0e485eeb6f6f6ece2d1ad8ccfd8537801605a718; agentProofHash 2d56104a64b95a80432c6e2f0e485eeb6f6f6ece2d1ad8ccfd8537801605a718; publicSignalsHash d0087fedfb3948873668c23bda78b8bf45a628406760400113c4de96b46cdc8a. Hashes only; see A9b."
    },
    {
      "id": "A4a@1",
      "title": "Action name, method, host, path as the host recorded them",
      "claim": "A4a",
      "attempt": 1,
      "status": "OBSERVED",
      "evidence": [
        {
          "file": "summary.json",
          "path": "action"
        }
      ],
      "note": "echo-action POST 127.0.0.1:53727/echo"
    },
    {
      "id": "A7a@1",
      "title": "Permission the host configured as required",
      "claim": "A7a",
      "attempt": 1,
      "status": "ABSENT",
      "evidence": [],
      "note": "the required permission is host configuration; the bundle does not carry it in signed or unsigned form."
    },
    {
      "id": "A9b@1",
      "title": "Human and agent proofs were verified",
      "claim": "A9b",
      "attempt": 1,
      "status": "ABSENT",
      "evidence": [],
      "note": "the bundle provides no evidence that any proof was verified; A9a lists hashes only. Separately: the shipped operator-trial 0.1.0 disables proof verification (dev mode; see B5)."
    },
    {
      "id": "A10@1",
      "title": "Host reports invoking fetch toward the endpoint; delivery and execution unproven",
      "claim": "A10",
      "attempt": 1,
      "status": "OBSERVED",
      "evidence": [
        {
          "file": "summary.json",
          "path": "attempts[0].dispatched"
        }
      ],
      "note": "dispatched: true. 'dispatched' means the host reports invoking fetch; delivery and execution at the endpoint are not proven."
    },
    {
      "id": "A11@1",
      "title": "Upstream HTTP status",
      "claim": "A11",
      "attempt": 1,
      "status": "OBSERVED",
      "evidence": [
        {
          "file": "summary.json",
          "path": "attempts[0].upstreamStatus"
        }
      ],
      "note": "upstreamStatus: 200 (as observed by the host)."
    },
    {
      "id": "A12@1",
      "title": "Decision was signed before dispatch",
      "claim": "A12",
      "attempt": 1,
      "status": "ABSENT",
      "evidence": [],
      "note": "the bundle holds no ordering evidence. The host's code verifies the persisted receipt before dispatching, but the bundle does not record that."
    },
    {
      "id": "A13@1",
      "title": "The endpoint executed the action",
      "claim": "A13",
      "attempt": 1,
      "status": "ABSENT",
      "evidence": [],
      "note": "never claimed by the trial; an upstream status is the host's observation of a response, not proof of execution."
    },
    {
      "id": "A14@1",
      "title": "A human consented to this action",
      "claim": "A14",
      "attempt": 1,
      "status": "ABSENT",
      "evidence": [],
      "note": "no consent artifact exists in the bundle."
    },
    {
      "id": "A15@1",
      "title": "A mandate or spend limit bounded this action",
      "claim": "A15",
      "attempt": 1,
      "status": "ABSENT",
      "evidence": [],
      "note": "the receipt records a permission tier mask only; there is no cumulative budget, and this is an auth receipt, not a commerce receipt."
    },
    {
      "id": "A16@1",
      "title": "Who receives funds or controls a settlement address",
      "claim": "A16",
      "attempt": 1,
      "status": "ABSENT",
      "evidence": [],
      "note": "nothing in the bundle names a payee, a settlement address, or who controls one."
    },
    {
      "id": "A17@1",
      "title": "Production credentials or registry were used",
      "claim": "A17",
      "attempt": 1,
      "status": "ABSENT",
      "evidence": [],
      "note": "see B5: simulated credentials, no registry."
    },
    {
      "id": "A2@2",
      "title": "Decision (allow / deny)",
      "claim": "A2",
      "attempt": 2,
      "status": "SIGNED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 2,
          "path": "payload.decision.allowed"
        }
      ],
      "note": "deny"
    },
    {
      "id": "A3@2",
      "title": "Decision reason text",
      "claim": "A3",
      "attempt": 2,
      "status": "SIGNED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 2,
          "path": "payload.decision.reasonCode"
        }
      ],
      "note": "\"policy_denied: Tool \"echo-action\" requires permissions 10b, agent has 1b | action=echo-action POST 127.0.0.1:53727/echo\""
    },
    {
      "id": "A4b@2",
      "title": "Action descriptor parsed from the signed reason text (operator-trial convention, not a receipt schema field)",
      "claim": "A4b",
      "attempt": 2,
      "status": "DERIVED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 2,
          "path": "payload.decision.reasonCode"
        }
      ],
      "inputs": [
        "rule: trailing \" | action=<name> <METHOD> <host><path>\""
      ],
      "note": "echo-action POST 127.0.0.1:53727/echo"
    },
    {
      "id": "A4c@2",
      "title": "Recorded action and signed action descriptor agree",
      "claim": "A4c",
      "attempt": 2,
      "status": "DERIVED",
      "evidence": [
        {
          "file": "summary.json",
          "path": "action"
        },
        {
          "file": "receipts.jsonl",
          "line": 2,
          "path": "payload.decision.reasonCode"
        }
      ],
      "inputs": [
        "A4a@2",
        "A4b@2"
      ],
      "note": "the unsigned record and the signed descriptor name the same action."
    },
    {
      "id": "A5@2",
      "title": "Signer-asserted simulated subject identifiers; subject authentication is not established",
      "claim": "A5",
      "attempt": 2,
      "status": "SIGNED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 2,
          "path": "payload.subject"
        }
      ],
      "note": "rootDid did:bolyra:dev:000000000000000000000000000000001ade2c3d19dcd4de118b34bd618d259f; actingDid did:bolyra:dev:000000000000000000000000000000001ade2c3d19dcd4de118b34bd618d259f; commitments 35713515059947112636640560610871682463 / 35713515059947112636640560610871682463. Dev DIDs from a simulated credential; these identify a key material commitment, not a person or legal entity."
    },
    {
      "id": "A6@2",
      "title": "Recorded permission bitmask",
      "claim": "A6",
      "attempt": 2,
      "status": "SIGNED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 2,
          "path": "payload.decision.permissionBitmask"
        }
      ],
      "note": "permissionBitmask 1."
    },
    {
      "id": "A7b@2",
      "title": "Required mask as reported in the denial text (reported, not the enforced configuration)",
      "claim": "A7b",
      "attempt": 2,
      "status": "DERIVED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 2,
          "path": "payload.decision.reasonCode"
        }
      ],
      "inputs": [
        "rule: \"requires permissions <mask>, agent has <mask>\" in the signed reason text"
      ],
      "note": "reported required 10b, agent 1b; this is what the host wrote into the reason, not the enforced configuration."
    },
    {
      "id": "A8a@2",
      "title": "Nonce",
      "claim": "A8a",
      "attempt": 2,
      "status": "SIGNED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 2,
          "path": "payload.proof.nonce"
        }
      ],
      "note": "nonce 33050125250618937014349418370"
    },
    {
      "id": "A9a@2",
      "title": "Proof hashes",
      "claim": "A9a",
      "attempt": 2,
      "status": "SIGNED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 2,
          "path": "payload.proof"
        }
      ],
      "note": "humanProofHash 8b969a16da2a9f7ed464c1b5aaa66f8f9f47ba4c55e2a98677e0b7461f174f2b; agentProofHash 8b969a16da2a9f7ed464c1b5aaa66f8f9f47ba4c55e2a98677e0b7461f174f2b; publicSignalsHash 79ac2a7880d69b586ecea46a9c5454d080f485f7d3e85cdb30297a72c5ef98f6. Hashes only; see A9b."
    },
    {
      "id": "A4a@2",
      "title": "Action name, method, host, path as the host recorded them",
      "claim": "A4a",
      "attempt": 2,
      "status": "OBSERVED",
      "evidence": [
        {
          "file": "summary.json",
          "path": "action"
        }
      ],
      "note": "echo-action POST 127.0.0.1:53727/echo"
    },
    {
      "id": "A7a@2",
      "title": "Permission the host configured as required",
      "claim": "A7a",
      "attempt": 2,
      "status": "ABSENT",
      "evidence": [],
      "note": "the required permission is host configuration; the bundle does not carry it in signed or unsigned form."
    },
    {
      "id": "A9b@2",
      "title": "Human and agent proofs were verified",
      "claim": "A9b",
      "attempt": 2,
      "status": "ABSENT",
      "evidence": [],
      "note": "the bundle provides no evidence that any proof was verified; A9a lists hashes only. Separately: the shipped operator-trial 0.1.0 disables proof verification (dev mode; see B5)."
    },
    {
      "id": "A10@2",
      "title": "Host reports invoking fetch toward the endpoint; delivery and execution unproven",
      "claim": "A10",
      "attempt": 2,
      "status": "OBSERVED",
      "evidence": [
        {
          "file": "summary.json",
          "path": "attempts[1].dispatched"
        }
      ],
      "note": "dispatched: false. 'dispatched' means the host reports invoking fetch; delivery and execution at the endpoint are not proven."
    },
    {
      "id": "A11@2",
      "title": "Upstream HTTP status",
      "claim": "A11",
      "attempt": 2,
      "status": "ABSENT",
      "evidence": [],
      "note": "no upstream status was recorded."
    },
    {
      "id": "A12@2",
      "title": "Decision was signed before dispatch",
      "claim": "A12",
      "attempt": 2,
      "status": "ABSENT",
      "evidence": [],
      "note": "the bundle holds no ordering evidence. The host's code verifies the persisted receipt before dispatching, but the bundle does not record that."
    },
    {
      "id": "A13@2",
      "title": "The endpoint executed the action",
      "claim": "A13",
      "attempt": 2,
      "status": "ABSENT",
      "evidence": [],
      "note": "never claimed by the trial; an upstream status is the host's observation of a response, not proof of execution."
    },
    {
      "id": "A14@2",
      "title": "A human consented to this action",
      "claim": "A14",
      "attempt": 2,
      "status": "ABSENT",
      "evidence": [],
      "note": "no consent artifact exists in the bundle."
    },
    {
      "id": "A15@2",
      "title": "A mandate or spend limit bounded this action",
      "claim": "A15",
      "attempt": 2,
      "status": "ABSENT",
      "evidence": [],
      "note": "the receipt records a permission tier mask only; there is no cumulative budget, and this is an auth receipt, not a commerce receipt."
    },
    {
      "id": "A16@2",
      "title": "Who receives funds or controls a settlement address",
      "claim": "A16",
      "attempt": 2,
      "status": "ABSENT",
      "evidence": [],
      "note": "nothing in the bundle names a payee, a settlement address, or who controls one."
    },
    {
      "id": "A17@2",
      "title": "Production credentials or registry were used",
      "claim": "A17",
      "attempt": 2,
      "status": "ABSENT",
      "evidence": [],
      "note": "see B5: simulated credentials, no registry."
    },
    {
      "id": "A2@3",
      "title": "Decision (allow / deny)",
      "claim": "A2",
      "attempt": 3,
      "status": "SIGNED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 3,
          "path": "payload.decision.allowed"
        }
      ],
      "note": "deny"
    },
    {
      "id": "A3@3",
      "title": "Decision reason text",
      "claim": "A3",
      "attempt": 3,
      "status": "SIGNED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 3,
          "path": "payload.decision.reasonCode"
        }
      ],
      "note": "\"authentication_failed: Nonce already used — proof replay rejected [tool: echo-action] | action=echo-action POST 127.0.0.1:53727/echo\""
    },
    {
      "id": "A4b@3",
      "title": "Action descriptor parsed from the signed reason text (operator-trial convention, not a receipt schema field)",
      "claim": "A4b",
      "attempt": 3,
      "status": "DERIVED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 3,
          "path": "payload.decision.reasonCode"
        }
      ],
      "inputs": [
        "rule: trailing \" | action=<name> <METHOD> <host><path>\""
      ],
      "note": "echo-action POST 127.0.0.1:53727/echo"
    },
    {
      "id": "A4c@3",
      "title": "Recorded action and signed action descriptor agree",
      "claim": "A4c",
      "attempt": 3,
      "status": "DERIVED",
      "evidence": [
        {
          "file": "summary.json",
          "path": "action"
        },
        {
          "file": "receipts.jsonl",
          "line": 3,
          "path": "payload.decision.reasonCode"
        }
      ],
      "inputs": [
        "A4a@3",
        "A4b@3"
      ],
      "note": "the unsigned record and the signed descriptor name the same action."
    },
    {
      "id": "A5@3",
      "title": "Signer-asserted simulated subject identifiers; subject authentication is not established",
      "claim": "A5",
      "attempt": 3,
      "status": "SIGNED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 3,
          "path": "payload.subject"
        }
      ],
      "note": "rootDid did:bolyra:dev:000000000000000000000000000000000ef9f5257e42e60d82de43ef46cc2ff0; actingDid did:bolyra:dev:000000000000000000000000000000000ef9f5257e42e60d82de43ef46cc2ff0; commitments 19907046019634888722304576993792634864 / 19907046019634888722304576993792634864. Dev DIDs from a simulated credential; these identify a key material commitment, not a person or legal entity."
    },
    {
      "id": "A6@3",
      "title": "Recorded permission bitmask",
      "claim": "A6",
      "attempt": 3,
      "status": "SIGNED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 3,
          "path": "payload.decision.permissionBitmask"
        }
      ],
      "note": "permissionBitmask 0. Implementation note (not from the bundle): in the shipped trial, attempt 3 is the replay; the gateway's failure default for a replay is 0 because verification fails before tool policy runs, so a 0 here is not evidence that permissions were evaluated."
    },
    {
      "id": "A8a@3",
      "title": "Nonce",
      "claim": "A8a",
      "attempt": 3,
      "status": "SIGNED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 3,
          "path": "payload.proof.nonce"
        }
      ],
      "note": "nonce 33050125237918531785092188808"
    },
    {
      "id": "A9a@3",
      "title": "Proof hashes",
      "claim": "A9a",
      "attempt": 3,
      "status": "SIGNED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 3,
          "path": "payload.proof"
        }
      ],
      "note": "humanProofHash 2d56104a64b95a80432c6e2f0e485eeb6f6f6ece2d1ad8ccfd8537801605a718; agentProofHash 2d56104a64b95a80432c6e2f0e485eeb6f6f6ece2d1ad8ccfd8537801605a718; publicSignalsHash d0087fedfb3948873668c23bda78b8bf45a628406760400113c4de96b46cdc8a. Hashes only; see A9b."
    },
    {
      "id": "A4a@3",
      "title": "Action name, method, host, path as the host recorded them",
      "claim": "A4a",
      "attempt": 3,
      "status": "OBSERVED",
      "evidence": [
        {
          "file": "summary.json",
          "path": "action"
        }
      ],
      "note": "echo-action POST 127.0.0.1:53727/echo"
    },
    {
      "id": "A7a@3",
      "title": "Permission the host configured as required",
      "claim": "A7a",
      "attempt": 3,
      "status": "ABSENT",
      "evidence": [],
      "note": "the required permission is host configuration; the bundle does not carry it in signed or unsigned form."
    },
    {
      "id": "A9b@3",
      "title": "Human and agent proofs were verified",
      "claim": "A9b",
      "attempt": 3,
      "status": "ABSENT",
      "evidence": [],
      "note": "the bundle provides no evidence that any proof was verified; A9a lists hashes only. Separately: the shipped operator-trial 0.1.0 disables proof verification (dev mode; see B5)."
    },
    {
      "id": "A10@3",
      "title": "Host reports invoking fetch toward the endpoint; delivery and execution unproven",
      "claim": "A10",
      "attempt": 3,
      "status": "OBSERVED",
      "evidence": [
        {
          "file": "summary.json",
          "path": "attempts[2].dispatched"
        }
      ],
      "note": "dispatched: false. 'dispatched' means the host reports invoking fetch; delivery and execution at the endpoint are not proven."
    },
    {
      "id": "A11@3",
      "title": "Upstream HTTP status",
      "claim": "A11",
      "attempt": 3,
      "status": "ABSENT",
      "evidence": [],
      "note": "no upstream status was recorded."
    },
    {
      "id": "A12@3",
      "title": "Decision was signed before dispatch",
      "claim": "A12",
      "attempt": 3,
      "status": "ABSENT",
      "evidence": [],
      "note": "the bundle holds no ordering evidence. The host's code verifies the persisted receipt before dispatching, but the bundle does not record that."
    },
    {
      "id": "A13@3",
      "title": "The endpoint executed the action",
      "claim": "A13",
      "attempt": 3,
      "status": "ABSENT",
      "evidence": [],
      "note": "never claimed by the trial; an upstream status is the host's observation of a response, not proof of execution."
    },
    {
      "id": "A14@3",
      "title": "A human consented to this action",
      "claim": "A14",
      "attempt": 3,
      "status": "ABSENT",
      "evidence": [],
      "note": "no consent artifact exists in the bundle."
    },
    {
      "id": "A15@3",
      "title": "A mandate or spend limit bounded this action",
      "claim": "A15",
      "attempt": 3,
      "status": "ABSENT",
      "evidence": [],
      "note": "the receipt records a permission tier mask only; there is no cumulative budget, and this is an auth receipt, not a commerce receipt."
    },
    {
      "id": "A16@3",
      "title": "Who receives funds or controls a settlement address",
      "claim": "A16",
      "attempt": 3,
      "status": "ABSENT",
      "evidence": [],
      "note": "nothing in the bundle names a payee, a settlement address, or who controls one."
    },
    {
      "id": "A17@3",
      "title": "Production credentials or registry were used",
      "claim": "A17",
      "attempt": 3,
      "status": "ABSENT",
      "evidence": [],
      "note": "see B5: simulated credentials, no registry."
    },
    {
      "id": "A8b@3",
      "title": "Attempt presented attempt 1's nonce and was denied",
      "claim": "A8b",
      "attempt": 3,
      "status": "DERIVED",
      "evidence": [
        {
          "file": "receipts.jsonl",
          "line": 1,
          "path": "payload.proof.nonce"
        },
        {
          "file": "receipts.jsonl",
          "line": 3,
          "path": "payload.proof.nonce"
        },
        {
          "file": "receipts.jsonl",
          "line": 3,
          "path": "payload.decision.allowed"
        }
      ],
      "inputs": [
        "A1@1",
        "A1@3",
        "A8a@1",
        "A8a@3",
        "A2@3"
      ],
      "note": "same signed nonce as attempt 1, and the decision was deny."
    }
  ]
}
