{ "schema": "pi.validation.proof_memory_index_contract.v1", "index_schema": "pi.validation.proof_memory_index.v1", "contract_version": "1.0.0", "bead_id": "bd-9yq7i.3", "purpose": "read_only_validation_proof_memory_not_validation_skipper", "summary": "Defines the read-only validation proof-memory index that records reusable and non-reusable proof entries by command fingerprint, git ref, touched paths, RCH provenance, artifact hash, closeout/runpack freshness inputs, source freshness, and reuse eligibility. The index is advisory operator evidence only and never skips validation by itself.", "allowed_statuses": [ "pass", "blocked" ], "allowed_decisions": [ "proof_memory_index_ready", "refresh_or_fix_proof_memory_sources" ], "required_top_level_keys": [ "schema", "generated_at", "status", "decision", "purpose", "source_paths", "loaded_source_paths", "source_ledger_count", "source_artifacts", "freshness_inputs", "required_fixture_ids", "missing_fixture_ids", "required_classifications", "missing_classifications", "entries", "negative_controls", "summary", "claim_boundaries" ], "required_record_keys": [ "record_id", "fixture_id", "source", "command", "git", "touched_paths", "path_coverage", "rch_provenance", "env_fingerprint", "output_artifact_hash", "freshness", "freshness_inputs", "reuse_eligibility", "classification", "recommended_action", "redaction" ], "required_fixture_ids": [ "reusable_remote_proof", "stale_git_head_proof", "stale_source_time_proof", "failing_freshness_inputs_proof", "missing_artifact_proof", "local_fallback_proof", "dirty_worktree_mismatch_proof", "command_fingerprint_mismatch_proof", "path_coverage_mismatch_proof", "not_authoritative_proof" ], "required_classifications": [ "reusable", "stale", "missing_artifact", "local_fallback", "dirty_worktree_mismatch", "command_mismatch", "path_coverage_mismatch", "not_authoritative" ], "required_claim_boundary_true_keys": [ "read_only", "operator_evidence_only", "does_not_skip_validation_by_itself", "does_not_mutate_rch_agent_mail_beads_or_git", "does_not_mutate_rch_agent_mail_git_or_beads", "does_not_authorize_release_performance_claims", "does_not_authorize_dropin_claims", "does_not_authorize_strict_dropin_claims", "requires_fresh_authoritative_remote_proof_for_reuse", "requires_passing_closeout_and_runpack_freshness_for_reuse" ], "required_claim_boundary_false_keys": [ "raw_logs_or_provider_content_embedded" ], "reuse_policy": { "minimum_reusable_record": "A reusable record must represent a passing clean remote proof with matching command fingerprint, git head, changed paths, CARGO_TARGET_DIR, TMPDIR, RCH provenance, and authoritative path coverage.", "freshness_policy": "Stale source time, stale git head, or failing closeout/runpack freshness inputs make a record non-reusable.", "freshness_inputs_policy": "A reusable record requires passing read-only closeout-gate freshness and swarm runpack freshness checks; missing, malformed, or failing freshness inputs must add invalidation reasons and force rerun_validation.", "coverage_policy": "Every current touched path must be covered by the source proof. Path gaps fail closed as path_coverage_mismatch.", "artifact_policy": "Missing or warning artifact retrieval prevents reuse even if the remote command exited 0.", "claim_boundary": "This index is operator evidence only. It does not mutate RCH, Agent Mail, git, Beads, source files, temp artifacts, or validation admission." } }