CerbIA processes entries through a short pipeline: loaders produce input, preprocessors transform it, and a configured gate returns a verdict. The runner collects those verdicts into the scan result. Configuration selects either a simple gate or a cascade once when the runner is constructed.
Entry and result flow
Loaders run in configuration order and their entry lists are combined. Each
preprocessor receives the current list in turn. The runner calls the selected
gate once for every resulting entry and pairs each verdict with its entry in an
EntryResult; the ScanResult collects those entry results. A preprocessor may
change the number or order of entries, so results correspond to entries after
preprocessing.
The gate decides how an individual entry is evaluated and returns its verdict. See Gates for simple and cascade behavior, and Configuration for the YAML shapes.
Component boundaries
Loaders and preprocessors prepare entries; scanners inspect them; the gate turns scanner findings into a verdict; score aggregators combine eligible blocking scores. Factories construct configured components, while the runner coordinates the pipeline. Component references describe their own options and extension contracts: