--- title: "SDK: Rule Behavior" slug: "rule-behavior" description: "Learn how to use IRuleBehavior in the Decisions SDK to customize the behavior of the Rule Editor." updated: 2026-04-27T20:46:52Z published: 2026-04-28T14:13:01Z canonical: "documentation.decisions.com/rule-behavior" --- > ## Documentation Index > Fetch the complete documentation index at: https://documentation.decisions.com/llms.txt > Use this file to discover all available pages before exploring further. # SDK: Rule Behavior IRuleBehavior, much like IFlowBehavior allows for the customization of the behavior of the rule editor. ``` public interface IRuleBehavior { string Name { get; } bool IsUserSettable { get; } string RewriteSubject(Rule r, string subject); string RewriteVerb(Rule r, string verb); string RewritePredicate(Rule r, IRuleStep step, DataDescription anchorData, IInputMapping[] mappings, string predicate); DataDescription[] ProcessTreeInputDeclaration(Rule r, string path, DataDescription[] inputs); DataDescription[] ProcessStepInputDeclaration(RuleStep step, DataDescription[] inputs); DataDescription[] ProcessInputDeclaration(Rule r, DataDescription[] inputData); FlowStepToolboxInformation[] ProcessSteps(Rule r, DataDescription anchorData, string[] nodes, FlowStepToolboxInformation[] steps); ValidationIssue[] RunRuleValidation(Rule rule); void ProcessInputValues(Rule r, FlowStateData data); string OverrideDebugUIClassName { get; } string OverrideRunUIClassName { get; } AllowUserToEditRuleInputData { get; } void OnBehaviorAssigned(Rule r); bool CanChangeBehavior { get; } bool CanChangeRuleType { get; } bool AllowDirectServiceCall { get; } } ```