Repository navigation
test status tree binding
title: Test-Status Tree Binding and Vault Evidence acronyms: [] created: 2026-08-13 updated: 2026-09-01 type: concept tags: [provenance, compliance, infrastructure] confidence: high source_files:
- scripts/tree_hash.py
- scripts/record_test_status.py
- scripts/test_status_schema.py
- scripts/vault_commit_leaf.py
- PRODUCTION_GAPS.md
A local test result must not be attached to a different source tree. The test-status recorder and
Trust Vault leaf writer therefore share scripts/tree_hash.py rather than maintaining separate
fingerprint algorithms.
tree_hash(repo) hashes the path and SHA-256 digest of every tracked file and returns a
Keccak-256 fingerprint. Untracked files are excluded because they are not part of the committed
tree being attested. Both record_test_status.py and vault_commit_leaf.py import this function.
make test starts an explicit schema-v2 run with a unique run identifier and names all eight
expected suites. Each suite result stores the tree hash observed when that suite finishes;
finalization succeeds only when the exact expected suite set exists and every result names the
current tracked tree. Suite failures are recorded without aborting later suites, then finalization
returns a failing exit after the complete result set is persisted. File locking, run-identifier
matching, and atomic replacement prevent concurrent invocations from mixing or exposing partial
JSON. Finalization never re-stamps an older suite result onto a newer tree. Legacy, malformed,
partial, mixed-tree, cross-run, and unknown-tree status documents fail closed rather than being
silently migrated. The leaf consumer accepts only the shared integrity-core-root-v1 profile and
its exact eight-suite set; internally consistent custom or reduced runs remain unverified.
At leaf creation, the consumer independently revalidates schema version, finalization state,
expected-suite completeness, per-suite tree binding, outcomes, and the derived overall result. A
missing or invalid status is recorded as unverified; an explicit status for a different tree is
recorded as unverified:stale; only a consistent finalized status file is hashed into the leaf.
The deterministic tree-hash self-test recorded on 2026-08-13 passed 4/4:
python3 scripts/tree_hash.py --self-test
4/4 passed
The test covers commit-boundary stability, untracked-file exclusion, tracked-content sensitivity, and stability across a second commit. This verifies the local fingerprint algorithm only. It does does not establish external anchoring, successful remote delivery, or that every historical leaf was created from a matching test status. Focused schema-v2 regressions additionally cover mixed-tree rejection, complete-run finalization, incomplete and legacy documents, invalid outcomes, post-finalize invalidation, consumer-side consistency checks, and explicit stale classification.
Generated from integrity-core/docs/wiki. Edit the canonical repository files, not this mirror.
- A2A Negotiation Protocol [PLANNED]
- AIS API — Versioned Wire Spec
- Agent Integrity Score (AIS)
- Agent Primitives (Self-Sovereign Identity)
- Behavioral Commitment Chain (BCC)
- ComplianceGate & Integrity Health
- Cross-Chain Reputation Sync [PLANNED]
- Decentralized Identifier (DID)
- Identity Ceiling & Verification Ladder [BUILT]
- Integrity Market (Prediction Markets, Binary Options, A2A Capital Allocation)
- Local Metrology (Client-Side AIS Signal Derivation)
- Merkle Batching & Anchoring Convention
- Observability & PHI Safety Pipeline
- On-Chain Governance
- Persistent Memory Bridge
- Persistent Memory, Genesis Root & Lineage [PARTIALLY BUILT]
- Smart BAA (On-Chain Business Associate Agreement Escrow)
- Telemetry Ingestion Pipeline
- Test-Status Tree Binding and Vault Evidence
- Testing Strategy
- The Four Foundational Primitives
- Xibalba Agent Operating Model
- ZK-ML Model-Inference Verification [PLANNED]
- Zero-Knowledge Proving Pipeline