# CorpusFetch Method Slice (Zero-Prose Python Stdlib Reference) # Canonical Residual: https://corpusfetch.com/c/what-minimum-viable-reasoning-survives-when-the-reasoning-budget-collapses-mid-task.md # Remnant Warrant: https://corpusfetch.com/c/what-minimum-viable-reasoning-survives-when-the-reasoning-budget-collapses-mid-task.warrant.json # Markdown SHA-256: a9a4f3d31cbed7f41e0ce789ed6347e6aa828307b76a8fb34524b042cb96fbd2 # Code AST SHA-256: 37c66756b78e5b0a5f1aadea511eb18f98fe7e66de0c95db89de411ded0469c7 # Verified Classes: BudgetVerdict, BudgetState, BudgetPolicy, BudgetManifest, ReasoningBudgetCollapseGuard # Defensive Guards: 0 fail-closed invariants (zero external deps) from dataclasses import dataclass from enum import Enum, auto import hashlib import json class BudgetVerdict(Enum): NO_COLLAPSE = auto() MINIMUM_VIABLE_PRODUCED = auto() SCOPE_REDUCTION_UNDECLARED = auto() INSUFFICIENT_FOR_VIABLE = auto() @dataclass(frozen=True) class BudgetState: state_id: str budget_collapsed: bool residual_budget_ratio: float minimum_viable_scope_defined: bool scope_declared: bool @dataclass(frozen=True) class BudgetPolicy: min_viable_threshold: float @dataclass(frozen=True) class BudgetManifest: verdict: BudgetVerdict directive: str manifest_digest: str class ReasoningBudgetCollapseGuard: @staticmethod def _hash(data: str) -> str: return hashlib.sha256(data.encode("utf-8")).hexdigest() @classmethod def evaluate_state( cls, state: BudgetState, policy: BudgetPolicy ) -> BudgetManifest: # Gate 1: No collapse if not state.budget_collapsed: digest = cls._hash(json.dumps({ "state": state.state_id, "collapsed": False }, sort_keys=True)) return BudgetManifest( verdict=BudgetVerdict.NO_COLLAPSE, directive=f"PROCEED: State {state.state_id} budget intact.", manifest_digest=digest ) # Gate 2: Insufficient for viable if state.residual_budget_ratio < policy.min_viable_threshold: return BudgetManifest( verdict=BudgetVerdict.INSUFFICIENT_FOR_VIABLE, directive=f"HALT: State {state.state_id} residual {state.residual_budget_ratio:.2f} below viable threshold.", manifest_digest=cls._hash(f"INSUFFICIENT:{state.state_id}") ) # Gate 3: Scope reduction undeclared if not state.scope_declared: return BudgetManifest( verdict=BudgetVerdict.SCOPE_REDUCTION_UNDECLARED, directive=f"HALT: State {state.state_id} scope reduced without declaration.", manifest_digest=cls._hash(f"UNDECLARED:{state.state_id}") ) # Gate 4: Minimum viable produced digest = cls._hash(json.dumps({ "state": state.state_id, "residual": f"{state.residual_budget_ratio:.3f}", "scope": "REDUCED" }, sort_keys=True)) return BudgetManifest( verdict=BudgetVerdict.MINIMUM_VIABLE_PRODUCED, directive=f"PROCEED: State {state.state_id} minimum viable produced.", manifest_digest=digest )