If you would like to provide a custom rule independant from the module load order, give it a priority, i.e.
function CustomRuleProvider() {
// 1000 is the default priority
this.addRule('foo.bar', 1100, function(context) {
// say yes or no via return
});
}
If that is not enough, simply replace the BpmnRules
with whatever suites your domain best.
Rules can never filter, they can just say yes, no or I don’t care by design. Otherwise the rule evaluation gets much more complicated for no big gain.