Examples · µLang Git production contract
ForgePlanning
Additive Projects/Issues metadata authority; never grants task or merge authority.
- Entity
PlanningRequest· 10 fields- Actions
manage_planning- Clauses
- 11
- sha256
6cdbc0ed1d88b731bff74e7a57b6af43a6848e4d8d8e49b4ab815e55f8fb7184- Source
- .forge/rules/ForgePlanning.ul · raw · open in the playground
// Additive Projects/Issues metadata authority; never grants task or merge authority.
CONTRACT ForgePlanning {
ENFORCEMENT_MODE: enforced
CONTEXT {
ENTITIES PlanningRequest {
operation: string
repository_matches_main: bool
target_exists: bool
requester_is_human: bool
requester_is_agent: bool
requester_is_author: bool
requester_is_assignee: bool
references_valid: bool
revision_matches: bool
resource_count: int
}
CONSTANTS {
max_collection_records: int == 1000 [SOURCE:FORGE-PLANNING-V1]
}
}
TRIGGER {
manage_planning()
}
GUARANTEE {
ENSURE manage_planning() WHEN PlanningRequest.repository_matches_main == true [SOURCE:planning_repository]
}
PROHIBITION {
FORBID manage_planning WHEN PlanningRequest.operation != "create_project" AND PlanningRequest.operation != "update_project" AND PlanningRequest.operation != "create_issue" AND PlanningRequest.operation != "update_issue" AND PlanningRequest.operation != "comment_issue" [SOURCE:planning_operation]
FORBID manage_planning WHEN (PlanningRequest.requester_is_human == false AND PlanningRequest.requester_is_agent == false) OR (PlanningRequest.requester_is_human == true AND PlanningRequest.requester_is_agent == true) [SOURCE:planning_actor_kind]
FORBID manage_planning WHEN (PlanningRequest.operation == "create_project" OR PlanningRequest.operation == "update_project") AND PlanningRequest.requester_is_human == false [SOURCE:planning_project_human]
FORBID manage_planning WHEN PlanningRequest.operation == "create_issue" AND PlanningRequest.requester_is_agent == true AND PlanningRequest.requester_is_author == false [SOURCE:planning_issue_create_author]
FORBID manage_planning WHEN (PlanningRequest.operation == "update_issue" OR PlanningRequest.operation == "comment_issue") AND PlanningRequest.requester_is_agent == true AND PlanningRequest.requester_is_author == false AND PlanningRequest.requester_is_assignee == false [SOURCE:planning_issue_authority]
FORBID manage_planning WHEN PlanningRequest.references_valid == false [SOURCE:planning_references]
FORBID manage_planning WHEN PlanningRequest.revision_matches == false [SOURCE:planning_revision]
FORBID manage_planning WHEN (PlanningRequest.operation == "create_project" OR PlanningRequest.operation == "create_issue") AND PlanningRequest.target_exists == true [SOURCE:planning_duplicate_create]
FORBID manage_planning WHEN (PlanningRequest.operation == "update_project" OR PlanningRequest.operation == "update_issue" OR PlanningRequest.operation == "comment_issue") AND PlanningRequest.target_exists == false [SOURCE:planning_existing_target]
FORBID manage_planning WHEN (PlanningRequest.operation == "create_project" OR PlanningRequest.operation == "create_issue" OR PlanningRequest.operation == "comment_issue") AND PlanningRequest.resource_count >= max_collection_records [SOURCE:planning_collection_capacity]
}
OBSERVABILITY {
LOG "ForgePlanning evaluated" ON decision
}
}