pub fn load_custom_rules(dirs: &[PathBuf]) -> Result<Vec<Rule>, RuleError>
Load rules from custom directories on the filesystem. Missing directories are skipped; subdirectories are searched recursively.