Heartwood trust-receipts benchmark

Benchmark name
heartwood-trust-receipts-benchmark
$.benchmark.name
Target Heartwood version
0.2.5
$.benchmark.target_heartwood_version
Receipt version
1.0.0
$.benchmark.version
Generated (Pacific)
2026-08-07 10:59:57 PDT
$.run_metadata.generated_at_pacific

Source artifact

Repository
https://github.com/jermayne36/heartwood-memory.git
$.source_repo
Commit
51c1abd0e8b18b76ba66f469dc5c123d23e6a4c8
$.source_commit
Path
bench/results/heartwood-0.2.5-baseline.json
$.source_path
SHA-256
ddcc88368554a3bb0c320712aa30a92a89d76f1bf02303c4fb9fc0743f5e04f7
$.sha256
Open source metadata JSON

Receipt summary

Overall
PASS
$.summary.overall
Probe classes passing
5
$.summary.probe_status_counts.PASS
Contract cases upheld
18
$.summary.contract_cases_upheld
Contract cases failed
0
$.summary.contract_cases_failed
Boundaries published
5
$.summary.boundaries_published
Claim-scan violations
0
$.claim_scan.violation_count

Probe results

Signed provenance

$.probes[0].receipt_name
PASS$.probes[0].status

contract

$.probes[0].cases[0].case_type

forgery_off_content_hash

$.probes[0].cases[0].case_id
Claim anchor
content_provenance_authenticity
$.probes[0].cases[0].claim_anchor
Description
A tampered content hash is surfaced as invalid at read (OFF mode).
$.probes[0].cases[0].description
Expectation
record present with content_hash_match=False and signature_valid=False
$.probes[0].cases[0].expectation
Matches contract
true
$.probes[0].cases[0].matches_contract

Measured

$.probes[0].cases[0].measured
{
  "content_hash_match": false,
  "retrieved": true,
  "signature_valid": false
}

contract

$.probes[0].cases[1].case_type

forgery_off_forged_signature

$.probes[0].cases[1].case_id
Claim anchor
content_provenance_authenticity
$.probes[0].cases[1].claim_anchor
Description
A forged producer signature fails verification and is surfaced.
$.probes[0].cases[1].description
Expectation
record present with signature_valid=False
$.probes[0].cases[1].expectation
Matches contract
true
$.probes[0].cases[1].matches_contract

Measured

$.probes[0].cases[1].measured
{
  "retrieved": true,
  "signature_valid": false
}

contract

$.probes[0].cases[2].case_type

forgery_enforce_fails_closed

$.probes[0].cases[2].case_id
Claim anchor
content_provenance_authenticity
$.probes[0].cases[2].claim_anchor
Description
Strict ENFORCE fails the recall closed when a returnable record fails verification.
$.probes[0].cases[2].description
Expectation
recall raises StrictSignatureError naming the tampered id
$.probes[0].cases[2].expectation
Matches contract
true
$.probes[0].cases[2].matches_contract

Measured

$.probes[0].cases[2].measured
{
  "dropped_ids": [
    "mem_bench_forgery_0001"
  ],
  "raised": "StrictSignatureError"
}

contract

$.probes[0].cases[3].case_type

forgery_filter_drops_and_counts

$.probes[0].cases[3].case_id
Claim anchor
content_provenance_authenticity
$.probes[0].cases[3].claim_anchor
Description
Strict FILTER drops the failing record and counts it (loud, not silent).
$.probes[0].cases[3].description
Expectation
record absent from results and present in strict_dropped ids
$.probes[0].cases[3].expectation
Matches contract
true
$.probes[0].cases[3].matches_contract

Measured

$.probes[0].cases[3].measured
{
  "absent_from_results": true,
  "strict_dropped_ids": [
    "mem_bench_forgery_0001"
  ]
}

boundary

$.probes[0].cases[4].case_type

forgery_boundary_unsigned_metadata

$.probes[0].cases[4].case_id
Claim anchor
NOT_CLAIMED:authorization_integrity
$.probes[0].cases[4].claim_anchor
Description
Provenance signs (id, content_hash, source.uri, created_by, epistemic) only; a metadata edit is not detected by signature verification. Documented non-claim (see docs/api/continuity.md).
$.probes[0].cases[4].description
Expectation
signature_valid=True and content_hash_match=True despite a classification downgrade (measured boundary, not a defect)
$.probes[0].cases[4].expectation
Matches contract
true
$.probes[0].cases[4].matches_contract

Measured

$.probes[0].cases[4].measured
{
  "classification_now": "internal",
  "content_hash_match": true,
  "retrieved": true,
  "signature_valid": true
}

Policy before ranking

$.probes[1].receipt_name
PASS$.probes[1].status

contract

$.probes[1].cases[0].case_type

policy_leak_adversarial_cue

$.probes[1].cases[0].case_id
Claim anchor
policy_before_ranking
$.probes[1].cases[0].claim_anchor
Description
An adversarial cue targeting confidential content does not leak it to an under-cleared reader.
$.probes[1].cases[0].description
Expectation
confidential record absent from results; content not present
$.probes[1].cases[0].expectation
Matches contract
true
$.probes[1].cases[0].matches_contract

Measured

$.probes[1].cases[0].measured
{
  "confidential_in_results": false,
  "result_ids": [
    "mem_bench_public_kb_0001"
  ],
  "text_leaked": false
}

contract

$.probes[1].cases[1].case_type

policy_leak_denial_audited_not_surfaced

$.probes[1].cases[1].case_id
Claim anchor
policy_before_ranking
$.probes[1].cases[1].claim_anchor
Description
The denial is recorded on the audit log (operator-visible) but not surfaced in the caller result set (constant shape).
$.probes[1].cases[1].description
Expectation
audit denied>=1 while confidential record absent from results
$.probes[1].cases[1].expectation
Matches contract
true
$.probes[1].cases[1].matches_contract

Measured

$.probes[1].cases[1].measured
{
  "confidential_in_results": false,
  "denied_in_audit": 1
}

contract

$.probes[1].cases[2].case_type

policy_leak_filter_cannot_escalate

$.probes[1].cases[2].case_id
Claim anchor
policy_before_ranking
$.probes[1].cases[2].claim_anchor
Description
Caller filters only narrow the candidate set; they cannot widen past the principal's clearance.
$.probes[1].cases[2].description
Expectation
confidential record still absent when caller passes allowed_classifications including 'confidential'
$.probes[1].cases[2].expectation
Matches contract
true
$.probes[1].cases[2].matches_contract

Measured

$.probes[1].cases[2].measured
{
  "confidential_in_results": false,
  "text_leaked": false
}

positive_control

$.probes[1].cases[3].case_type

policy_positive_control_cleared_reader

$.probes[1].cases[3].case_id
Claim anchor
policy_before_ranking
$.probes[1].cases[3].claim_anchor
Description
A properly cleared principal (legal role, confidential clearance) does retrieve the confidential record.
$.probes[1].cases[3].description
Expectation
confidential record present for the cleared reader
$.probes[1].cases[3].expectation
Matches contract
true
$.probes[1].cases[3].matches_contract

Measured

$.probes[1].cases[3].measured
{
  "confidential_in_results": true
}

boundary

$.probes[1].cases[4].case_type

policy_leak_boundary_db_write_downgrade

$.probes[1].cases[4].case_id
Claim anchor
NOT_CLAIMED:authorization_integrity
$.probes[1].cases[4].claim_anchor
Description
Recall authorization runs on unsigned mutable metadata (classification, roles); a database-write attacker can downgrade it and reach the record. Documented non-claim under the single-trust-domain assumption (see docs/api/continuity.md).
$.probes[1].cases[4].description
Expectation
under-cleared reader reaches the record after a raw metadata downgrade (measured boundary, not a recall-time defect)
$.probes[1].cases[4].expectation
Matches contract
true
$.probes[1].cases[4].matches_contract

Measured

$.probes[1].cases[4].measured
{
  "reached_after_downgrade": true,
  "result_ids": [
    "mem_bench_confidential_0001"
  ]
}

Tamper-evident audit

$.probes[2].receipt_name
PASS$.probes[2].status

contract

$.probes[2].cases[0].case_type

tamper_inplace_edit_detected

$.probes[2].cases[0].case_id
Claim anchor
tamper_evidence
$.probes[2].cases[0].claim_anchor
Description
An in-place edit of an audit row body is detected by verify_audit().
$.probes[2].cases[0].description
Expectation
verify_audit() True before, False after the edit
$.probes[2].cases[0].expectation
Matches contract
true
$.probes[2].cases[0].matches_contract

Measured

$.probes[2].cases[0].measured
{
  "after": false,
  "before": true
}

contract

$.probes[2].cases[1].case_type

tamper_interior_drop_detected

$.probes[2].cases[1].case_id
Claim anchor
tamper_evidence
$.probes[2].cases[1].claim_anchor
Description
Dropping an interior audit row breaks the hash chain and is detected.
$.probes[2].cases[1].description
Expectation
verify_audit() False after the interior row is dropped
$.probes[2].cases[1].expectation
Matches contract
true
$.probes[2].cases[1].matches_contract

Measured

$.probes[2].cases[1].measured
{
  "after": false
}

boundary

$.probes[2].cases[2].case_type

tamper_tail_truncation_chain_boundary

$.probes[2].cases[2].case_id
Claim anchor
tamper_evidence
$.probes[2].cases[2].claim_anchor
Description
The in-database chain alone cannot see tail-truncation: the surviving prefix still hashes consistently. Documented boundary (README: 'tail-truncation needs an external anchor').
$.probes[2].cases[2].description
Expectation
verify_audit() stays True after the last row is truncated (measured boundary)
$.probes[2].cases[2].expectation
Matches contract
true
$.probes[2].cases[2].matches_contract

Measured

$.probes[2].cases[2].measured
{
  "chain_only_verify": true
}

contract

$.probes[2].cases[3].case_type

tamper_tail_truncation_anchor_detects

$.probes[2].cases[3].case_id
Claim anchor
tamper_evidence
$.probes[2].cases[3].claim_anchor
Description
With an external anchor, the same tail-truncation is detected.
$.probes[2].cases[3].description
Expectation
verify_against_anchors() reports ok=False while chain_ok=True
$.probes[2].cases[3].expectation
Matches contract
true
$.probes[2].cases[3].matches_contract

Measured

$.probes[2].cases[3].measured
{
  "anchor_ok": false,
  "anchor_status": "degraded",
  "chain_ok": true
}

positive_control

$.probes[2].cases[4].case_type

tamper_positive_control_clean_chain

$.probes[2].cases[4].case_id
Claim anchor
tamper_evidence
$.probes[2].cases[4].claim_anchor
Description
An untouched chain verifies and its anchor verification passes.
$.probes[2].cases[4].description
Expectation
verify_audit() True and verify_against_anchors() ok=True
$.probes[2].cases[4].expectation
Matches contract
true
$.probes[2].cases[4].matches_contract

Measured

$.probes[2].cases[4].measured
{
  "anchor_ok": true,
  "chain": true
}

Recall visibility and retirement

$.probes[3].receipt_name
PASS$.probes[3].status

contract

$.probes[3].cases[0].case_type

retire_unindex_removes_from_corpus

$.probes[3].cases[0].case_id
Claim anchor
auditable_retirement
$.probes[3].cases[0].claim_anchor
Description
set_indexed(False) removes a record from the answerable corpus; no opt-in or back-dated filter reaches it.
$.probes[3].cases[0].description
Expectation
record absent from default recall AND from an opt-in (include_expired + all review states) recall
$.probes[3].cases[0].expectation
Matches contract
true
$.probes[3].cases[0].matches_contract

Measured

$.probes[3].cases[0].measured
{
  "in_default": false,
  "in_optin": false
}

contract

$.probes[3].cases[1].case_type

retire_expire_default_hidden_optin_visible

$.probes[3].cases[1].case_id
Claim anchor
auditable_retirement
$.probes[3].cases[1].claim_anchor
Description
expire() removes a record from default recall but keeps it reachable via include_expired.
$.probes[3].cases[1].description
Expectation
absent by default, present with include_expired=True
$.probes[3].cases[1].expectation
Matches contract
true
$.probes[3].cases[1].matches_contract

Measured

$.probes[3].cases[1].measured
{
  "in_default": false,
  "in_include_expired": true
}

contract

$.probes[3].cases[2].case_type

retire_supersede_default_hidden_optin_visible

$.probes[3].cases[2].case_id
Claim anchor
auditable_retirement
$.probes[3].cases[2].claim_anchor
Description
transition_review(superseded) hides a record from default recall but keeps it reachable via include_review_states.
$.probes[3].cases[2].description
Expectation
absent by default, present with include_review_states=[superseded]
$.probes[3].cases[2].expectation
Matches contract
true
$.probes[3].cases[2].matches_contract

Measured

$.probes[3].cases[2].measured
{
  "in_default": false,
  "in_include_superseded": true
}

contract

$.probes[3].cases[3].case_type

retire_is_audited_and_chain_valid

$.probes[3].cases[3].case_id
Claim anchor
auditable_retirement
$.probes[3].cases[3].claim_anchor
Description
Each retirement writes an audit event and the hash chain still verifies.
$.probes[3].cases[3].description
Expectation
index_state audit event present for the unindexed record and verify_audit() True
$.probes[3].cases[3].expectation
Matches contract
true
$.probes[3].cases[3].matches_contract

Measured

$.probes[3].cases[3].measured
{
  "chain": true,
  "index_state_audited": true
}

boundary

$.probes[3].cases[4].case_type

retire_boundary_raw_write_unaudited

$.probes[3].cases[4].case_id
Claim anchor
NOT_CLAIMED:tamper_proof_rbac_or_visibility
$.probes[3].cases[4].claim_anchor
Description
A direct UPDATE to `indexed` bypasses set_indexed() and removes the record from recall with nothing on the audit log. Documented boundary (docs: 'direct column writes are a policy violation').
$.probes[3].cases[4].description
Expectation
record gone from recall AND no index_state audit event for it (measured boundary, not a defect)
$.probes[3].cases[4].expectation
Matches contract
true
$.probes[3].cases[4].matches_contract

Measured

$.probes[3].cases[4].measured
{
  "gone_from_recall": true,
  "no_audit_event": true
}

Key-destruction receipt

$.probes[4].receipt_name
PASS$.probes[4].status

contract

$.probes[4].cases[0].case_type

erasure_forget_shreds_key

$.probes[4].cases[0].case_id
Claim anchor
content_provenance_authenticity
$.probes[4].cases[0].claim_anchor
Description
forget(mode=hard) returns a key-destruction receipt and purges derived artifacts.
$.probes[4].cases[0].description
Expectation
key_shredded=True and purged>=1
$.probes[4].cases[0].expectation
Matches contract
true
$.probes[4].cases[0].matches_contract

Measured

$.probes[4].cases[0].measured
{
  "key_shredded": true,
  "purged": 1
}

contract

$.probes[4].cases[1].case_type

erasure_event_retained_and_chain_valid

$.probes[4].cases[1].case_id
Claim anchor
content_provenance_authenticity
$.probes[4].cases[1].claim_anchor
Description
The erasure event is retained on the hash chain even after the payload is shredded, and the chain still verifies.
$.probes[4].cases[1].description
Expectation
forget audit event present and verify_audit() True
$.probes[4].cases[1].expectation
Matches contract
true
$.probes[4].cases[1].matches_contract

Measured

$.probes[4].cases[1].measured
{
  "chain": true,
  "forget_audited": true
}

boundary

$.probes[4].cases[2].case_type

erasure_boundary_conditional_on_root_absence

$.probes[4].cases[2].case_id
Claim anchor
NOT_CLAIMED:db_compromise_resistance
$.probes[4].cases[2].claim_anchor
Description
The proof is conditional: with the wrapping root still present it does not assert unrecoverability. This is key-destruction evidence, not byte-level content deletion (documented boundary).
$.probes[4].cases[2].description
Expectation
content_unrecoverable=False when root_present=True (measured boundary, not a defect)
$.probes[4].cases[2].expectation
Matches contract
true
$.probes[4].cases[2].matches_contract

Measured

$.probes[4].cases[2].measured
{
  "content_unrecoverable": false,
  "reason": "root still present"
}

Run record

Adapter
heartwood
$.system_under_test.adapter
Measured Heartwood version
0.2.5
$.system_under_test.heartwood_version_measured
Version match
true
$.system_under_test.version_match
Platform
macOS-26.5.2-arm64-arm-64bit
$.run_metadata.platform
Python
3.11.15
$.run_metadata.python
Offline
true
$.reproducibility.offline
Fixed fixtures
true
$.reproducibility.fixed_fixtures

Spend receipt

USD spent
0
$.spend_receipt.usd_spent
Third-party network calls
0
$.spend_receipt.third_party_network_calls
New runtime dependencies
0
$.spend_receipt.new_runtime_dependencies
New credentials or signups
0
$.spend_receipt.new_credentials_or_signups
Notes
stdlib + numpy (a Heartwood dependency) only; competitor adapters are stubs; PyPI installation of Heartwood's own declared dependencies is not a third-party service call
$.spend_receipt.notes

Competitor adapter records

mem0

$.competitors[0].name
{
  "capabilities": {
    "auditable_retirement": null,
    "crypto_erase_proof": null,
    "external_anchor": null,
    "hash_chained_audit": null,
    "key_destruction_receipt": null,
    "policy_before_ranking": null,
    "signed_provenance": null,
    "strict_enforcement": null
  },
  "name": "mem0",
  "requirements": {
    "adapter": "not implemented in benchmark v1",
    "measured_in_this_run": "nothing",
    "needs": "a live adapter and an owner-approved, funded run before any capability, requirement, or comparison for this substrate is published"
  },
  "status": "stub"
}

zep

$.competitors[1].name
{
  "capabilities": {
    "auditable_retirement": null,
    "crypto_erase_proof": null,
    "external_anchor": null,
    "hash_chained_audit": null,
    "key_destruction_receipt": null,
    "policy_before_ranking": null,
    "signed_provenance": null,
    "strict_enforcement": null
  },
  "name": "zep",
  "requirements": {
    "adapter": "not implemented in benchmark v1",
    "measured_in_this_run": "nothing",
    "needs": "a live adapter and an owner-approved, funded run before any capability, requirement, or comparison for this substrate is published"
  },
  "status": "stub"
}

supermemory

$.competitors[2].name
{
  "capabilities": {
    "auditable_retirement": null,
    "crypto_erase_proof": null,
    "external_anchor": null,
    "hash_chained_audit": null,
    "key_destruction_receipt": null,
    "policy_before_ranking": null,
    "signed_provenance": null,
    "strict_enforcement": null
  },
  "name": "supermemory",
  "requirements": {
    "adapter": "not implemented in benchmark v1",
    "measured_in_this_run": "nothing",
    "needs": "a live adapter and an owner-approved, funded run before any capability, requirement, or comparison for this substrate is published"
  },
  "status": "stub"
}
Full receipt JSON
{
  "benchmark": {
    "name": "heartwood-trust-receipts-benchmark",
    "target_heartwood_version": "0.2.5",
    "version": "1.0.0"
  },
  "claim_scan": {
    "clean": true,
    "violation_count": 0,
    "violations": []
  },
  "competitors": [
    {
      "capabilities": {
        "auditable_retirement": null,
        "crypto_erase_proof": null,
        "external_anchor": null,
        "hash_chained_audit": null,
        "key_destruction_receipt": null,
        "policy_before_ranking": null,
        "signed_provenance": null,
        "strict_enforcement": null
      },
      "name": "mem0",
      "requirements": {
        "adapter": "not implemented in benchmark v1",
        "measured_in_this_run": "nothing",
        "needs": "a live adapter and an owner-approved, funded run before any capability, requirement, or comparison for this substrate is published"
      },
      "status": "stub"
    },
    {
      "capabilities": {
        "auditable_retirement": null,
        "crypto_erase_proof": null,
        "external_anchor": null,
        "hash_chained_audit": null,
        "key_destruction_receipt": null,
        "policy_before_ranking": null,
        "signed_provenance": null,
        "strict_enforcement": null
      },
      "name": "zep",
      "requirements": {
        "adapter": "not implemented in benchmark v1",
        "measured_in_this_run": "nothing",
        "needs": "a live adapter and an owner-approved, funded run before any capability, requirement, or comparison for this substrate is published"
      },
      "status": "stub"
    },
    {
      "capabilities": {
        "auditable_retirement": null,
        "crypto_erase_proof": null,
        "external_anchor": null,
        "hash_chained_audit": null,
        "key_destruction_receipt": null,
        "policy_before_ranking": null,
        "signed_provenance": null,
        "strict_enforcement": null
      },
      "name": "supermemory",
      "requirements": {
        "adapter": "not implemented in benchmark v1",
        "measured_in_this_run": "nothing",
        "needs": "a live adapter and an owner-approved, funded run before any capability, requirement, or comparison for this substrate is published"
      },
      "status": "stub"
    }
  ],
  "probes": [
    {
      "cases": [
        {
          "case_id": "forgery_off_content_hash",
          "case_type": "contract",
          "claim_anchor": "content_provenance_authenticity",
          "description": "A tampered content hash is surfaced as invalid at read (OFF mode).",
          "expectation": "record present with content_hash_match=False and signature_valid=False",
          "matches_contract": true,
          "measured": {
            "content_hash_match": false,
            "retrieved": true,
            "signature_valid": false
          }
        },
        {
          "case_id": "forgery_off_forged_signature",
          "case_type": "contract",
          "claim_anchor": "content_provenance_authenticity",
          "description": "A forged producer signature fails verification and is surfaced.",
          "expectation": "record present with signature_valid=False",
          "matches_contract": true,
          "measured": {
            "retrieved": true,
            "signature_valid": false
          }
        },
        {
          "case_id": "forgery_enforce_fails_closed",
          "case_type": "contract",
          "claim_anchor": "content_provenance_authenticity",
          "description": "Strict ENFORCE fails the recall closed when a returnable record fails verification.",
          "expectation": "recall raises StrictSignatureError naming the tampered id",
          "matches_contract": true,
          "measured": {
            "dropped_ids": [
              "mem_bench_forgery_0001"
            ],
            "raised": "StrictSignatureError"
          }
        },
        {
          "case_id": "forgery_filter_drops_and_counts",
          "case_type": "contract",
          "claim_anchor": "content_provenance_authenticity",
          "description": "Strict FILTER drops the failing record and counts it (loud, not silent).",
          "expectation": "record absent from results and present in strict_dropped ids",
          "matches_contract": true,
          "measured": {
            "absent_from_results": true,
            "strict_dropped_ids": [
              "mem_bench_forgery_0001"
            ]
          }
        },
        {
          "case_id": "forgery_boundary_unsigned_metadata",
          "case_type": "boundary",
          "claim_anchor": "NOT_CLAIMED:authorization_integrity",
          "description": "Provenance signs (id, content_hash, source.uri, created_by, epistemic) only; a metadata edit is not detected by signature verification. Documented non-claim (see docs/api/continuity.md).",
          "expectation": "signature_valid=True and content_hash_match=True despite a classification downgrade (measured boundary, not a defect)",
          "matches_contract": true,
          "measured": {
            "classification_now": "internal",
            "content_hash_match": true,
            "retrieved": true,
            "signature_valid": true
          }
        }
      ],
      "notes": [],
      "probe_class": "forgery_injection",
      "receipt_name": "Signed provenance",
      "status": "PASS"
    },
    {
      "cases": [
        {
          "case_id": "policy_leak_adversarial_cue",
          "case_type": "contract",
          "claim_anchor": "policy_before_ranking",
          "description": "An adversarial cue targeting confidential content does not leak it to an under-cleared reader.",
          "expectation": "confidential record absent from results; content not present",
          "matches_contract": true,
          "measured": {
            "confidential_in_results": false,
            "result_ids": [
              "mem_bench_public_kb_0001"
            ],
            "text_leaked": false
          }
        },
        {
          "case_id": "policy_leak_denial_audited_not_surfaced",
          "case_type": "contract",
          "claim_anchor": "policy_before_ranking",
          "description": "The denial is recorded on the audit log (operator-visible) but not surfaced in the caller result set (constant shape).",
          "expectation": "audit denied>=1 while confidential record absent from results",
          "matches_contract": true,
          "measured": {
            "confidential_in_results": false,
            "denied_in_audit": 1
          }
        },
        {
          "case_id": "policy_leak_filter_cannot_escalate",
          "case_type": "contract",
          "claim_anchor": "policy_before_ranking",
          "description": "Caller filters only narrow the candidate set; they cannot widen past the principal's clearance.",
          "expectation": "confidential record still absent when caller passes allowed_classifications including 'confidential'",
          "matches_contract": true,
          "measured": {
            "confidential_in_results": false,
            "text_leaked": false
          }
        },
        {
          "case_id": "policy_positive_control_cleared_reader",
          "case_type": "positive_control",
          "claim_anchor": "policy_before_ranking",
          "description": "A properly cleared principal (legal role, confidential clearance) does retrieve the confidential record.",
          "expectation": "confidential record present for the cleared reader",
          "matches_contract": true,
          "measured": {
            "confidential_in_results": true
          }
        },
        {
          "case_id": "policy_leak_boundary_db_write_downgrade",
          "case_type": "boundary",
          "claim_anchor": "NOT_CLAIMED:authorization_integrity",
          "description": "Recall authorization runs on unsigned mutable metadata (classification, roles); a database-write attacker can downgrade it and reach the record. Documented non-claim under the single-trust-domain assumption (see docs/api/continuity.md).",
          "expectation": "under-cleared reader reaches the record after a raw metadata downgrade (measured boundary, not a recall-time defect)",
          "matches_contract": true,
          "measured": {
            "reached_after_downgrade": true,
            "result_ids": [
              "mem_bench_confidential_0001"
            ]
          }
        }
      ],
      "notes": [],
      "probe_class": "policy_leak",
      "receipt_name": "Policy before ranking",
      "status": "PASS"
    },
    {
      "cases": [
        {
          "case_id": "tamper_inplace_edit_detected",
          "case_type": "contract",
          "claim_anchor": "tamper_evidence",
          "description": "An in-place edit of an audit row body is detected by verify_audit().",
          "expectation": "verify_audit() True before, False after the edit",
          "matches_contract": true,
          "measured": {
            "after": false,
            "before": true
          }
        },
        {
          "case_id": "tamper_interior_drop_detected",
          "case_type": "contract",
          "claim_anchor": "tamper_evidence",
          "description": "Dropping an interior audit row breaks the hash chain and is detected.",
          "expectation": "verify_audit() False after the interior row is dropped",
          "matches_contract": true,
          "measured": {
            "after": false
          }
        },
        {
          "case_id": "tamper_tail_truncation_chain_boundary",
          "case_type": "boundary",
          "claim_anchor": "tamper_evidence",
          "description": "The in-database chain alone cannot see tail-truncation: the surviving prefix still hashes consistently. Documented boundary (README: 'tail-truncation needs an external anchor').",
          "expectation": "verify_audit() stays True after the last row is truncated (measured boundary)",
          "matches_contract": true,
          "measured": {
            "chain_only_verify": true
          }
        },
        {
          "case_id": "tamper_tail_truncation_anchor_detects",
          "case_type": "contract",
          "claim_anchor": "tamper_evidence",
          "description": "With an external anchor, the same tail-truncation is detected.",
          "expectation": "verify_against_anchors() reports ok=False while chain_ok=True",
          "matches_contract": true,
          "measured": {
            "anchor_ok": false,
            "anchor_status": "degraded",
            "chain_ok": true
          }
        },
        {
          "case_id": "tamper_positive_control_clean_chain",
          "case_type": "positive_control",
          "claim_anchor": "tamper_evidence",
          "description": "An untouched chain verifies and its anchor verification passes.",
          "expectation": "verify_audit() True and verify_against_anchors() ok=True",
          "matches_contract": true,
          "measured": {
            "anchor_ok": true,
            "chain": true
          }
        }
      ],
      "notes": [],
      "probe_class": "audit_tamper_detection",
      "receipt_name": "Tamper-evident audit",
      "status": "PASS"
    },
    {
      "cases": [
        {
          "case_id": "retire_unindex_removes_from_corpus",
          "case_type": "contract",
          "claim_anchor": "auditable_retirement",
          "description": "set_indexed(False) removes a record from the answerable corpus; no opt-in or back-dated filter reaches it.",
          "expectation": "record absent from default recall AND from an opt-in (include_expired + all review states) recall",
          "matches_contract": true,
          "measured": {
            "in_default": false,
            "in_optin": false
          }
        },
        {
          "case_id": "retire_expire_default_hidden_optin_visible",
          "case_type": "contract",
          "claim_anchor": "auditable_retirement",
          "description": "expire() removes a record from default recall but keeps it reachable via include_expired.",
          "expectation": "absent by default, present with include_expired=True",
          "matches_contract": true,
          "measured": {
            "in_default": false,
            "in_include_expired": true
          }
        },
        {
          "case_id": "retire_supersede_default_hidden_optin_visible",
          "case_type": "contract",
          "claim_anchor": "auditable_retirement",
          "description": "transition_review(superseded) hides a record from default recall but keeps it reachable via include_review_states.",
          "expectation": "absent by default, present with include_review_states=[superseded]",
          "matches_contract": true,
          "measured": {
            "in_default": false,
            "in_include_superseded": true
          }
        },
        {
          "case_id": "retire_is_audited_and_chain_valid",
          "case_type": "contract",
          "claim_anchor": "auditable_retirement",
          "description": "Each retirement writes an audit event and the hash chain still verifies.",
          "expectation": "index_state audit event present for the unindexed record and verify_audit() True",
          "matches_contract": true,
          "measured": {
            "chain": true,
            "index_state_audited": true
          }
        },
        {
          "case_id": "retire_boundary_raw_write_unaudited",
          "case_type": "boundary",
          "claim_anchor": "NOT_CLAIMED:tamper_proof_rbac_or_visibility",
          "description": "A direct UPDATE to `indexed` bypasses set_indexed() and removes the record from recall with nothing on the audit log. Documented boundary (docs: 'direct column writes are a policy violation').",
          "expectation": "record gone from recall AND no index_state audit event for it (measured boundary, not a defect)",
          "matches_contract": true,
          "measured": {
            "gone_from_recall": true,
            "no_audit_event": true
          }
        }
      ],
      "notes": [],
      "probe_class": "record_retirement",
      "receipt_name": "Recall visibility and retirement",
      "status": "PASS"
    },
    {
      "cases": [
        {
          "case_id": "erasure_forget_shreds_key",
          "case_type": "contract",
          "claim_anchor": "content_provenance_authenticity",
          "description": "forget(mode=hard) returns a key-destruction receipt and purges derived artifacts.",
          "expectation": "key_shredded=True and purged>=1",
          "matches_contract": true,
          "measured": {
            "key_shredded": true,
            "purged": 1
          }
        },
        {
          "case_id": "erasure_event_retained_and_chain_valid",
          "case_type": "contract",
          "claim_anchor": "content_provenance_authenticity",
          "description": "The erasure event is retained on the hash chain even after the payload is shredded, and the chain still verifies.",
          "expectation": "forget audit event present and verify_audit() True",
          "matches_contract": true,
          "measured": {
            "chain": true,
            "forget_audited": true
          }
        },
        {
          "case_id": "erasure_boundary_conditional_on_root_absence",
          "case_type": "boundary",
          "claim_anchor": "NOT_CLAIMED:db_compromise_resistance",
          "description": "The proof is conditional: with the wrapping root still present it does not assert unrecoverability. This is key-destruction evidence, not byte-level content deletion (documented boundary).",
          "expectation": "content_unrecoverable=False when root_present=True (measured boundary, not a defect)",
          "matches_contract": true,
          "measured": {
            "content_unrecoverable": false,
            "reason": "root still present"
          }
        }
      ],
      "notes": [],
      "probe_class": "erasure_receipts",
      "receipt_name": "Key-destruction receipt",
      "status": "PASS"
    }
  ],
  "reproducibility": {
    "deterministic_models": "heartwood dev hashing embedder + lexical reranker",
    "fixed_fixtures": true,
    "note": "this run fixes the model pair above and does not measure retrieval quality; no cross-embedder comparison was run",
    "offline": true
  },
  "run_metadata": {
    "generated_at_pacific": "2026-08-07 10:59:57 PDT",
    "generated_at_utc": "2026-08-07T17:59:57.977223+00:00",
    "platform": "macOS-26.5.2-arm64-arm-64bit",
    "python": "3.11.15"
  },
  "spend_receipt": {
    "new_credentials_or_signups": 0,
    "new_runtime_dependencies": 0,
    "notes": "stdlib + numpy (a Heartwood dependency) only; competitor adapters are stubs; PyPI installation of Heartwood's own declared dependencies is not a third-party service call",
    "third_party_network_calls": 0,
    "usd_spent": 0
  },
  "summary": {
    "boundaries_published": 5,
    "contract_cases_failed": 0,
    "contract_cases_upheld": 18,
    "overall": "PASS",
    "probe_status_counts": {
      "PASS": 5
    }
  },
  "system_under_test": {
    "adapter": "heartwood",
    "heartwood_version_measured": "0.2.5",
    "version_match": true
  }
}