Examples · µLang Git production contract

ForgeClaim

Entity
ClaimRequest · 10 fields
Actions
grant_claim release_claim provision_task record_event
Clauses
12
sha256
76bf3ef15e875098b5edd7e0ca2309f397f4b47f7b3b82aa495c37c6923227ef
Source
.forge/rules/ForgeClaim.ul · raw · open in the playground
// 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
  }
}