forked from Dicklesworthstone/pi_agent_rust
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvalidation-proof-memory-index-contract.json
More file actions
99 lines (99 loc) · 3.7 KB
/
validation-proof-memory-index-contract.json
File metadata and controls
99 lines (99 loc) · 3.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
{
"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."
}
}