// Governed Forge policy. Clause IDs are stable SOURCE names. CONTRACT ForgePolicyActivation { ENFORCEMENT_MODE: enforced CONTEXT { ENTITIES RuleSetActivation { rule_set_hash: string landed_on_main: bool compiled_ok: bool unsupported_clause_count: int all_contracts_enforce_mode: bool clause_count: int human_approvals: int requester_is_genesis_authority: bool active_policy_exists: bool requester_is_owner: bool } CONSTANTS { zero: int == 0 [SOURCE:FORGE-POLICY-V1] max_clauses: int == 200 [SOURCE:FORGE-POLICY-V1] } } TRIGGER { activate_rules() initialize_forge() } PROHIBITION { FORBID activate_rules WHEN RuleSetActivation.landed_on_main == false [SOURCE:activation_landed] FORBID activate_rules WHEN RuleSetActivation.compiled_ok == false [SOURCE:activation_compiled] FORBID activate_rules WHEN RuleSetActivation.unsupported_clause_count != zero [SOURCE:activation_supported] FORBID activate_rules WHEN RuleSetActivation.all_contracts_enforce_mode == false [SOURCE:activation_enforced] FORBID activate_rules WHEN RuleSetActivation.clause_count > max_clauses [SOURCE:activation_clause_cap] FORBID activate_rules WHEN RuleSetActivation.clause_count <= zero [SOURCE:activation_nonempty] FORBID activate_rules WHEN RuleSetActivation.requester_is_owner == false [SOURCE:activation_owner] FORBID initialize_forge WHEN RuleSetActivation.requester_is_genesis_authority == false [SOURCE:genesis_authority] FORBID initialize_forge WHEN RuleSetActivation.active_policy_exists == true [SOURCE:genesis_once] FORBID initialize_forge WHEN RuleSetActivation.compiled_ok == false [SOURCE:genesis_compiled] FORBID initialize_forge WHEN RuleSetActivation.unsupported_clause_count != zero [SOURCE:genesis_supported] FORBID initialize_forge WHEN RuleSetActivation.all_contracts_enforce_mode == false [SOURCE:genesis_enforced] FORBID initialize_forge WHEN RuleSetActivation.clause_count > max_clauses [SOURCE:genesis_clause_cap] FORBID initialize_forge WHEN RuleSetActivation.clause_count <= zero [SOURCE:genesis_nonempty] } OBSERVABILITY { LOG "ForgePolicyActivation evaluated" ON decision } }