Examples · µLang Git production contract
ForgeClaim
- Entity
ClaimRequest· 10 fields- Actions
grant_claimrelease_claimprovision_taskrecord_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
}
}