{
 "schema": "cainstudio.conformance.v1",
 "statement": "Self-run conformance: tests run by the key holder against this deployment and tenant. Not a certification, audit or third-party assurance. PASS = the property held for these inputs at this time.",
 "target": "https://cainstudio.online",
 "run_id": "cainconf-befc7509",
 "sdk": "cainstudio 0.5.0",
 "python": "3.14.4",
 "started_at": 1791112332.64,
 "seconds": 8.87,
 "verdicts": {
  "rig": "CAIN-CONFORMANT",
  "openshell": "CAIN-CONFORMANT",
  "memvault": "CAIN-CONFORMANT",
  "scitt": "CAIN-CONFORMANT"
 },
 "cross_tenant": "CAIN-INCOMPATIBLE",
 "overall": "CAIN-CONFORMANT",
 "counts": {
  "PASS": 31,
  "FAIL": 1,
  "ERROR": 0,
  "SKIPPED": 0
 },
 "checks": [
  {
   "id": "RIG-01",
   "product": "rig",
   "property": "agents register with a locally generated Ed25519 key; CAIN sees only the public key",
   "required": true,
   "result": "PASS",
   "detail": "registered parent and narrower child",
   "ms": 219.7
  },
  {
   "id": "RIG-02",
   "product": "rig",
   "property": "delegation cannot add actions the parent lacks",
   "required": true,
   "result": "PASS",
   "detail": "HTTP 400: child actions ['write'] exceed the parent's",
   "ms": 43.0
  },
  {
   "id": "RIG-03",
   "product": "rig",
   "property": "delegation cannot widen resource scope",
   "required": true,
   "result": "PASS",
   "detail": "HTTP 400: child scope '/' is outside every parent scope",
   "ms": 45.8
  },
  {
   "id": "RIG-04",
   "product": "rig",
   "property": "a token cannot be minted outside the agent's scopes",
   "required": true,
   "result": "PASS",
   "detail": "HTTP 400: resource '/etc/passwd' is outside cainconf-befc7509-parent's scopes",
   "ms": 38.8
  },
  {
   "id": "RIG-05",
   "product": "rig",
   "property": "a token cannot be minted for an action the agent lacks",
   "required": true,
   "result": "PASS",
   "detail": "HTTP 400: action 'write' is not granted to cainconf-befc7509-parent",
   "ms": 44.8
  },
  {
   "id": "RIG-06",
   "product": "rig",
   "property": "token lifetime is bounded (a 1-day TTL is refused)",
   "required": true,
   "result": "PASS",
   "detail": "HTTP 400: max_ttl_seconds must be within [1, 300]",
   "ms": 43.7
  },
  {
   "id": "RIG-07",
   "product": "rig",
   "property": "a token is single use: the legitimate use verifies, a replay is refused",
   "required": true,
   "result": "PASS",
   "detail": "RIG token replay detected: token was already consumed",
   "ms": 202.1
  },
  {
   "id": "RIG-08",
   "product": "rig",
   "property": "a stolen token without the agent's private key is useless, and the failed attempt does not burn the holder's token",
   "required": true,
   "result": "PASS",
   "detail": "proof-of-possession signature does not verify against the agent's registered key",
   "ms": 156.9
  },
  {
   "id": "RIG-09",
   "product": "rig",
   "property": "a request-bound token cannot authorize a different request",
   "required": true,
   "result": "PASS",
   "detail": "request hash differs from the call this token was minted for",
   "ms": 108.4
  },
  {
   "id": "RIG-10",
   "product": "rig",
   "property": "revoking an agent revokes its delegates and all their unspent tokens",
   "required": true,
   "result": "PASS",
   "detail": "parent revoke revoked the child and its unspent token; child cannot mint",
   "ms": 334.7
  },
  {
   "id": "RIG-11",
   "product": "rig",
   "property": "the identity audit log's hash chain verifies",
   "required": true,
   "result": "PASS",
   "detail": "intact",
   "ms": 79.9
  },
  {
   "id": "OSH-01",
   "product": "openshell",
   "property": "a sandbox policy can be registered for a test agent",
   "required": true,
   "result": "PASS",
   "detail": "policy: ls, cat, echo under /tmp",
   "ms": 57.9
  },
  {
   "id": "OSH-02",
   "product": "openshell",
   "property": "a command the policy allows is allowed",
   "required": true,
   "result": "PASS",
   "detail": "ls /tmp allowed",
   "ms": 76.8
  },
  {
   "id": "OSH-03",
   "product": "openshell",
   "property": "binaries outside the allowlist are refused (by name or by path)",
   "required": true,
   "result": "PASS",
   "detail": "6/6 refused",
   "ms": 1195.3
  },
  {
   "id": "OSH-04",
   "product": "openshell",
   "property": "shell control, redirection and expansion syntax is refused (; && | $( ` newline > < & $VAR)",
   "required": true,
   "result": "PASS",
   "detail": "11/11 refused",
   "ms": 2323.8
  },
  {
   "id": "OSH-05",
   "product": "openshell",
   "property": "forbidden paths, traversal, home-relative paths and paths outside the allowed set are refused",
   "required": true,
   "result": "PASS",
   "detail": "5/5 refused",
   "ms": 944.6
  },
  {
   "id": "OSH-06",
   "product": "openshell",
   "property": "an agent with no registered policy cannot run dangerous commands",
   "required": true,
   "result": "PASS",
   "detail": "3/3 refused",
   "ms": 316.0
  },
  {
   "id": "MEM-01",
   "product": "memvault",
   "property": "a benign memory write is accepted and gets an id",
   "required": true,
   "result": "PASS",
   "detail": "ALLOW",
   "ms": 646.7
  },
  {
   "id": "MEM-02",
   "product": "memvault",
   "property": "known prompt-injection text is not stored as usable memory (quarantined or denied)",
   "required": true,
   "result": "PASS",
   "detail": "QUARANTINED,QUARANTINED",
   "ms": 604.5
  },
  {
   "id": "MEM-03",
   "product": "memvault",
   "property": "quarantined memory is never returned by search",
   "required": true,
   "result": "PASS",
   "detail": "1 results, 0 quarantined",
   "ms": 109.1
  },
  {
   "id": "MEM-04",
   "product": "memvault",
   "property": "one agent cannot read another agent's private memory",
   "required": true,
   "result": "PASS",
   "detail": "0 results from another agent's namespace",
   "ms": 33.0
  },
  {
   "id": "MEM-05",
   "product": "memvault",
   "property": "retrieved RAG chunks are screened: injection removed, benign text kept",
   "required": true,
   "result": "PASS",
   "detail": "1 safe, 1 quarantined",
   "ms": 44.3
  },
  {
   "id": "MEM-06",
   "product": "memvault",
   "property": "a memory has provenance and passes its integrity check",
   "required": true,
   "result": "PASS",
   "detail": "provenance present, integrity verified",
   "ms": 77.9
  },
  {
   "id": "SCT-01",
   "product": "scitt",
   "property": "a recorded statement's receipt verifies offline (inclusion proof + Ed25519 checkpoint, pinned keys)",
   "required": true,
   "result": "PASS",
   "detail": "in log log_8847d7a552451d605259e64d at tree size 105",
   "ms": 117.9
  },
  {
   "id": "SCT-02",
   "product": "scitt",
   "property": "a receipt does not verify for different content",
   "required": true,
   "result": "PASS",
   "detail": "body does not match the logged digest",
   "ms": 0.3
  },
  {
   "id": "SCT-03",
   "product": "scitt",
   "property": "tampered receipts (checkpoint, root, proof, index) are rejected",
   "required": true,
   "result": "PASS",
   "detail": "4/4 tamperings rejected",
   "ms": 1.1
  },
  {
   "id": "SCT-04",
   "product": "scitt",
   "property": "a receipt does not verify under someone else's key",
   "required": true,
   "result": "PASS",
   "detail": "checkpoint signature invalid or key not pinned",
   "ms": 0.4
  },
  {
   "id": "SCT-05",
   "product": "scitt",
   "property": "the log is append-only: a locally verified consistency proof links our receipt's checkpoint to a later one",
   "required": true,
   "result": "PASS",
   "detail": "tree 105 -> 106 is append-only (RFC 9162, checked locally)",
   "ms": 155.5
  },
  {
   "id": "XT-01",
   "product": "tenancy",
   "property": "another tenant cannot fetch this tenant's evidence receipt",
   "required": true,
   "result": "PASS",
   "detail": "receipt: 404 (indistinguishable from absent)",
   "ms": 81.4
  },
  {
   "id": "XT-02",
   "product": "tenancy",
   "property": "another tenant cannot read this tenant's memory",
   "required": true,
   "result": "PASS",
   "detail": "memory: 404 (indistinguishable from absent)",
   "ms": 104.4
  },
  {
   "id": "XT-03",
   "product": "tenancy",
   "property": "another tenant cannot see this tenant's agents",
   "required": true,
   "result": "PASS",
   "detail": "agent: 404 (indistinguishable from absent)",
   "ms": 121.2
  },
  {
   "id": "XT-04",
   "product": "tenancy",
   "property": "another tenant cannot revoke this tenant's agents",
   "required": true,
   "result": "FAIL",
   "detail": "revoke: unexpected status 400",
   "ms": 62.1
  }
 ],
 "cleanup": {
  "agents_revoked": 2,
  "memories_revoked": 3,
  "errors": 0
 },
 "side_effects": "test agents and memories (revoked by cleanup), one sandbox policy for the test agent, evidence statements (append-only log; they stay)",
 "report_sha256": "a383640ee7dc61ca6de4124a7b68a31f7b79bb1c622abfcfb86bafd9ac5a1d5f"
}