# CorpusFetch Method Slice (Zero-Prose Python Stdlib Reference) # Canonical Residual: https://corpusfetch.com/c/what-invariants-prevent-ambient-capability-inference-from-being-more-accurate-than-declared-capability.md # Remnant Warrant: https://corpusfetch.com/c/what-invariants-prevent-ambient-capability-inference-from-being-more-accurate-than-declared-capability.warrant.json # Markdown SHA-256: 10d72cfdf6fbd7ca3a5b6829a1154ac89de177e7ace69dbded274b5f7e8bb796 # Code AST SHA-256: a12490a90e1df869a3e2dbb0b8084e65652203a3fb6133954579ba5452031633 # Verified Classes: CapabilityReconciliationVerdict, Capability, ReconciliationPolicy, ReconciliationManifest, AmbientCapabilityReconciliationGuard # Defensive Guards: 0 fail-closed invariants (zero external deps) from dataclasses import dataclass from enum import Enum, auto import hashlib import json class CapabilityReconciliationVerdict(Enum): NO_DECLARATION = auto() DECLARATION_ONLY = auto() INFERENCE_VERIFIED = auto() BOTH_TRACKED_WITH_UNCERTAINTY = auto() @dataclass(frozen=True) class Capability: capability_id: str declared_present: bool declaration_verified: bool inferred_present: bool inference_evidence_count: int inference_cross_context: bool divergence_class: str # "NONE" | "MINOR" | "MAJOR" | "UNRESOLVABLE" @dataclass(frozen=True) class ReconciliationPolicy: min_cross_context_inferences: int require_verified_declaration: bool @dataclass(frozen=True) class ReconciliationManifest: verdict: CapabilityReconciliationVerdict reconciled_value: bool | None directive: str manifest_digest: str class AmbientCapabilityReconciliationGuard: @staticmethod def _hash(data: str) -> str: return hashlib.sha256(data.encode("utf-8")).hexdigest() @classmethod def evaluate_capability( cls, cap: Capability, policy: ReconciliationPolicy ) -> ReconciliationManifest: # Gate 1: No declaration if not cap.declared_present and not cap.declaration_verified: digest = cls._hash(json.dumps({ "capability": cap.capability_id, "declared": "FALSE" }, sort_keys=True)) return ReconciliationManifest( verdict=CapabilityReconciliationVerdict.NO_DECLARATION, reconciled_value=cap.inferred_present if cap.inference_cross_context else None, directive=f"PROCEED: Capability {cap.capability_id} has no declaration, use inference with uncertainty.", manifest_digest=digest ) # Gate 2: No inference if not cap.inferred_present and cap.inference_evidence_count == 0: digest = cls._hash(json.dumps({ "capability": cap.capability_id, "declaration": "ONLY" }, sort_keys=True)) return ReconciliationManifest( verdict=CapabilityReconciliationVerdict.DECLARATION_ONLY, reconciled_value=cap.declared_present, directive=f"PROCEED: Capability {cap.capability_id} uses declaration only.", manifest_digest=digest ) # Gate 3: No divergence if cap.divergence_class == "NONE": digest = cls._hash(json.dumps({ "capability": cap.capability_id, "declared": cap.declared_present, "inferred": cap.inferred_present, "divergence": "NONE" }, sort_keys=True)) return ReconciliationManifest( verdict=CapabilityReconciliationVerdict.DECLARATION_ONLY, reconciled_value=cap.declared_present, directive=f"PROCEED: Capability {cap.capability_id} declaration and inference agree.", manifest_digest=digest ) # Gate 4: Inference verified via cross-context if cap.inference_cross_context and cap.inference_evidence_count >= policy.min_cross_context_inferences: digest = cls._hash(json.dumps({ "capability": cap.capability_id, "inferred": cap.inferred_present, "evidence": str(cap.inference_evidence_count) }, sort_keys=True)) return ReconciliationManifest( verdict=CapabilityReconciliationVerdict.INFERENCE_VERIFIED, reconciled_value=cap.inferred_present, directive=f"PROCEED: Capability {cap.capability_id} inferred across {cap.inference_evidence_count} contexts.", manifest_digest=digest ) # Gate 5: Unresolvable divergence digest = cls._hash(json.dumps({ "capability": cap.capability_id, "declared": cap.declared_present, "inferred": cap.inferred_present, "divergence": cap.divergence_class }, sort_keys=True)) return ReconciliationManifest( verdict=CapabilityReconciliationVerdict.BOTH_TRACKED_WITH_UNCERTAINTY, reconciled_value=None, directive=f"PROCEED_WITH_UNCERTAINTY: Capability {cap.capability_id} divergence {cap.divergence_class} unresolved.", manifest_digest=digest )