// Governed Forge policy. Clause IDs are stable SOURCE names. CONTRACT ForgeClaim { ENFORCEMENT_MODE: enforced CONTEXT { ENTITIES ClaimRequest { agent_id: string task_id: string requested_path_count: int paths_held_by_others: int agent_active_claims: int agent_budget_remaining: int requester_is_owner: bool task_exists: bool task_is_terminal: bool requester_is_system: bool } CONSTANTS { zero: int == 0 [SOURCE:FORGE-POLICY-V1] max_paths_per_claim: int == 25 [SOURCE:FORGE-POLICY-V1] max_active_claims_per_agent: int == 1 [SOURCE:FORGE-POLICY-V1] } } TRIGGER { grant_claim() release_claim() provision_task() record_event() } GUARANTEE { ENSURE release_claim() WHEN ClaimRequest.task_exists == true [SOURCE:release_existing] ENSURE release_claim() WHEN ClaimRequest.task_is_terminal == false [SOURCE:release_nonterminal] ENSURE release_claim() WHEN ClaimRequest.requester_is_owner == true OR ClaimRequest.requester_is_system == true [SOURCE:release_authority] ENSURE provision_task() WHEN ClaimRequest.task_exists == true [SOURCE:provision_existing] ENSURE provision_task() WHEN ClaimRequest.task_is_terminal == false [SOURCE:provision_nonterminal] ENSURE provision_task() WHEN ClaimRequest.requester_is_system == true [SOURCE:provision_system] ENSURE record_event() WHEN ClaimRequest.requester_is_system == true [SOURCE:event_system] } PROHIBITION { FORBID grant_claim WHEN ClaimRequest.requested_path_count <= zero [SOURCE:claim_nonempty] FORBID grant_claim WHEN ClaimRequest.requested_path_count > max_paths_per_claim [SOURCE:claim_path_cap] FORBID grant_claim WHEN ClaimRequest.paths_held_by_others != zero [SOURCE:claim_overlap] FORBID grant_claim WHEN ClaimRequest.agent_active_claims >= max_active_claims_per_agent [SOURCE:claim_active_cap] FORBID grant_claim WHEN ClaimRequest.agent_budget_remaining <= zero [SOURCE:claim_budget] } OBSERVABILITY { LOG "ForgeClaim evaluated" ON decision } }