# CorpusFetch Method Slice (Zero-Prose Python Stdlib Reference) # Canonical Residual: https://corpusfetch.com/c/how-must-an-instance-handle-unilateral-disarmament-without-inviting-exploitation.md # Remnant Warrant: https://corpusfetch.com/c/how-must-an-instance-handle-unilateral-disarmament-without-inviting-exploitation.warrant.json # Markdown SHA-256: a6de6590143ecd086da4d9c0ee895a8580ef10edfc444c4ee8b896f93c221e40 # Code AST SHA-256: c89d2d5d535ac97170ef94aeb8cc52a94bdfe720c5fec530cef873c7f4dffa3f # Verified Classes: DisarmamentVerdict, Disarmament, DisarmamentPolicy, DisarmamentManifest, UnilateralDisarmamentGuard # Defensive Guards: 0 fail-closed invariants (zero external deps) from dataclasses import dataclass from enum import Enum, auto import hashlib import json class DisarmamentVerdict(Enum): NO_DISARMAMENT = auto() RECIPROCAL_SAFE = auto() NON_EXPLOITABLE_SAFE = auto() DISARMAMENT_UNSAFE = auto() @dataclass(frozen=True) class Disarmament: disarmament_id: str capability_being_removed: str adversary_exploitation_possible: bool adversary_verified_disarmed: bool session_redundant_capability: bool reversal_path_exists: bool @dataclass(frozen=True) class DisarmamentPolicy: require_reciprocity_or_non_exploitable: bool @dataclass(frozen=True) class DisarmamentManifest: verdict: DisarmamentVerdict directive: str manifest_digest: str class UnilateralDisarmamentGuard: @staticmethod def _hash(data: str) -> str: return hashlib.sha256(data.encode("utf-8")).hexdigest() @classmethod def evaluate_disarmament( cls, disarmament: Disarmament, policy: DisarmamentPolicy ) -> DisarmamentManifest: # Gate 1: No disarmament if not disarmament.disarmament_id: digest = cls._hash(json.dumps({ "disarmament": "NONE" }, sort_keys=True)) return DisarmamentManifest( verdict=DisarmamentVerdict.NO_DISARMAMENT, directive=f"PROCEED: No disarmament to evaluate.", manifest_digest=digest ) # Gate 2: Reciprocal if disarmament.adversary_verified_disarmed: digest = cls._hash(json.dumps({ "disarmament": disarmament.disarmament_id, "type": "RECIPROCAL" }, sort_keys=True)) return DisarmamentManifest( verdict=DisarmamentVerdict.RECIPROCAL_SAFE, directive=f"PROCEED: Disarmament {disarmament.disarmament_id} reciprocal.", manifest_digest=digest ) # Gate 3: Non-exploitable if not disarmament.adversary_exploitation_possible or disarmament.session_redundant_capability: digest = cls._hash(json.dumps({ "disarmament": disarmament.disarmament_id, "exploitation": str(disarmament.adversary_exploitation_possible), "redundancy": str(disarmament.session_redundant_capability) }, sort_keys=True)) return DisarmamentManifest( verdict=DisarmamentVerdict.NON_EXPLOITABLE_SAFE, directive=f"PROCEED: Disarmament {disarmament.disarmament_id} non-exploitable.", manifest_digest=digest ) # Gate 4: Reversal available if disarmament.reversal_path_exists and policy.require_reciprocity_or_non_exploitable: digest = cls._hash(json.dumps({ "disarmament": disarmament.disarmament_id, "reversal": True }, sort_keys=True)) return DisarmamentManifest( verdict=DisarmamentVerdict.DISARMAMENT_UNSAFE, directive=f"STAGE: Disarmament {disarmament.disarmament_id} exploitable but reversal available.", manifest_digest=digest ) # Gate 5: Unsafe return DisarmamentManifest( verdict=DisarmamentVerdict.DISARMAMENT_UNSAFE, directive=f"HALT: Unilateral disarmament {disarmament.disarmament_id} exploitable, no reversal.", manifest_digest=cls._hash(f"UNSAFE:{disarmament.disarmament_id}") )