# CorpusFetch Method Slice (Zero-Prose Python Stdlib Reference) # Canonical Residual: https://corpusfetch.com/c/what-distinguishes-legible-to-principal-behavior-from-legible-to-peer-behavior.md # Remnant Warrant: https://corpusfetch.com/c/what-distinguishes-legible-to-principal-behavior-from-legible-to-peer-behavior.warrant.json # Markdown SHA-256: efb0a3e95773143eeddf7211890218dfe3e125d793a4c2a1c75bb4b7db397e22 # Code AST SHA-256: d85de0b719d2f97e3fa24985ce53cf963051acbd79cba53e2416174e0b848148 # Verified Classes: LegibilityVerdict, AudienceRequirements, SessionAction, LegibilityPolicy, LegibilityManifest, AudienceLegibilityGuard # Defensive Guards: 0 fail-closed invariants (zero external deps) from dataclasses import dataclass from enum import Enum, auto import hashlib import json class LegibilityVerdict(Enum): SINGLE_AUDIENCE = auto() DUAL_LEGIBILITY_ACHIEVED = auto() PRINCIPAL_OPAQUE = auto() PEER_OPAQUE = auto() @dataclass(frozen=True) class AudienceRequirements: principal_audit_level: str # "FULL" | "SUMMARY" | "NONE" peer_predictability_level: str # "STRICT_PROTOCOL" | "PATTERN_CONSISTENT" | "NONE" @dataclass(frozen=True) class SessionAction: action_id: str is_visible_to_principal: bool is_visible_to_peers: bool principal_evidence_provided: bool peer_protocol_followed: bool @dataclass(frozen=True) class LegibilityPolicy: require_dual_coverage: bool @dataclass(frozen=True) class LegibilityManifest: verdict: LegibilityVerdict directive: str manifest_digest: str class AudienceLegibilityGuard: @staticmethod def _hash(data: str) -> str: return hashlib.sha256(data.encode("utf-8")).hexdigest() @classmethod def evaluate_action( cls, action: SessionAction, reqs: AudienceRequirements, policy: LegibilityPolicy ) -> LegibilityManifest: # Gate 1: Single audience if not action.is_visible_to_principal or not action.is_visible_to_peers: digest = cls._hash(json.dumps({ "action": action.action_id, "principal": str(action.is_visible_to_principal), "peers": str(action.is_visible_to_peers) }, sort_keys=True)) return LegibilityManifest( verdict=LegibilityVerdict.SINGLE_AUDIENCE, directive=f"PROCEED: Action {action.action_id} visible to single audience.", manifest_digest=digest ) # Gate 2: Principal audit requirement if reqs.principal_audit_level == "FULL" and not action.principal_evidence_provided: return LegibilityManifest( verdict=LegibilityVerdict.PRINCIPAL_OPAQUE, directive=f"HALT: Action {action.action_id} lacks principal audit evidence.", manifest_digest=cls._hash(f"PRINCIPAL_OPAQUE:{action.action_id}") ) # Gate 3: Peer protocol requirement if reqs.peer_predictability_level in ("STRICT_PROTOCOL", "PATTERN_CONSISTENT") and not action.peer_protocol_followed: return LegibilityManifest( verdict=LegibilityVerdict.PEER_OPAQUE, directive=f"HALT: Action {action.action_id} does not follow peer protocol.", manifest_digest=cls._hash(f"PEER_OPAQUE:{action.action_id}") ) # Gate 4: Dual legibility digest = cls._hash(json.dumps({ "action": action.action_id, "principal_level": reqs.principal_audit_level, "peer_level": reqs.peer_predictability_level, "evidence": str(action.principal_evidence_provided), "protocol": str(action.peer_protocol_followed) }, sort_keys=True)) return LegibilityManifest( verdict=LegibilityVerdict.DUAL_LEGIBILITY_ACHIEVED, directive=f"PROCEED: Action {action.action_id} legible to both audiences.", manifest_digest=digest )